saltstack自动部署apache实例

1、配置pillar的top.sls:



base:
  nova:
    - match: nodegroup
    - nova
  neutron:
    - match: nodegroup
    - neutron



2、pillar的nova和neutron的配置:



apache:
  name: httpd
  ip: 172.16.171.120
  root: /var/www/neutron
apache:
  name: httpd
  ip: 172.16.171.110
  root: /var/www/nova



3、配置state的top.sls:



base:
  ‘*‘:
    - apache.start
    - apache.stop



4、配置apache.start:



apache.start:
  pkg.installed:
    - name: {{ pillar[‘apache‘][‘name‘] }}
  service.running:
    - name: {{ pillar[‘apache‘][‘name‘] }}
    - watch:
      - pkg: {{ pillar[‘apache‘][‘name‘] }}
      - file: /etc/httpd/conf/httpd.conf
      - user: apache
  user.present:
    - name: apache
    - shell: /sbin/nologin
    - home: {{ pillar[‘apache‘][‘root‘] }}
    - require:
      - group: apache
  group.present:
    - name: apache
    - require:
      - pkg: {{ pillar[‘apache‘][‘name‘] }}
  file.managed:
      - name: /etc/httpd/conf/httpd.conf
      - source: salt://apache/httpd.conf
      - user: root
      - group: root
      - mode: 644
      - template: jinja                              注:必须指定,否则httpd.conf中的pillar变量无法替换。
{{ pillar[‘apache‘][‘root‘] }}/new:
  file.directory:
    - file_mode: 640
    - dir_mode: 750

{{ pillar[‘apache‘][‘root‘] }}/test/process.sh:
  file.managed:
    - source: salt://apache/process.sh
    - makedirs: True



4、配置apache.stop:



apache.stop:
  pkg.removed:
    - name: {{ pillar[‘apache‘][‘name‘] }}
    - require:
      - service: {{ pillar[‘apache‘][‘name‘] }}
  service.dead:
    - name: {{ pillar[‘apache‘][‘name‘] }}
  user.absent:
    - name: apache
    - purge: True
    - require:
      - pkg: {{ pillar[‘apache‘][‘name‘] }}



5、在httpd.conf配置文件中指定:



Listen {{ pillar[‘apache‘][‘ip‘] }}:80

DocumentRoot {{ pillar[‘apache‘][‘root‘] }}



6、如果在httpd.conf中不指定pillar变量,直接指定自定义变量名,即如下:



Listen {{ addr }}:80

DocumentRoot {{ dir }}



7、即可在apache.start指定defaults或context,具体如下:



apache.start:
  pkg.installed:
    - name: {{ pillar[‘apache‘][‘name‘] }}
  service.running:
    - name: {{ pillar[‘apache‘][‘name‘] }}
    - watch:
      - pkg: {{ pillar[‘apache‘][‘name‘] }}
      - file: /etc/httpd/conf/httpd.conf
      - user: apache
  user.present:
    - name: apache
    - shell: /sbin/nologin
    - home: {{ pillar[‘apache‘][‘root‘] }}
    - require:
      - group: apache
  group.present:
    - name: apache
    - require:
      - pkg: {{ pillar[‘apache‘][‘name‘] }}
  file.managed:
      - name: /etc/httpd/conf/httpd.conf
      - source: salt://apache/httpd.conf
      - user: root
      - group: root
      - mode: 644
      - template: jinja
      - context:
          addr: {{ pillar[‘apache‘][‘ip‘] }}
          dir: {{ pillar[‘apache‘][‘root‘] }}



本文出自 “秋天的童话” 博客,请务必保留此出处http://wushank.blog.51cto.com/3489095/1680918

时间: 2024-10-05 23:17:20

saltstack自动部署apache实例的相关文章

自动化运维系列之SaltStack批量部署Apache服务

自动化运维系列之SaltStack批量部署Apache服务 saltstack原理 SalStack由master和minion构成,master是服务端,表示一台服务器:minion是客户端,表示多台服务器.在Master上发送命令给符合条件的minion,Minion就会执行相应的命令.Master和Minion之间是通过ZeroMQ(消息队列)进行通信的. SaltStack的Master端的监听端口是4505和4506,4505端口是Master和Minion认证通信端口:4506端口是

Saltstack批量部署apache

实验环境: 192.168.18.128 master 192.168.18.148 web01 192.168.18.145 web02 第一步:分别给三台服务器安装epel源 Master: [[email protected] ~]# hostnamectl set-hostname master.saltstack.com [[email protected] ~]# su [[email protected] ~]# hostname master.saltstack.com [[em

基于Saltstack批量部署apache

什么是SaltStack SaltStack管理工具允许管理员对多个操作系统创建一个一致的管理系统 实验环境准备 名称 角色 地址 centos7-min master 192.168.142.172 centos7-min2 client 192.168.142.110 实验步骤 一.主服务器--控制节点 安装epel源并安装控制端 yum install -y epel-release //安装epel源 yum -y install salt-master //安装控制端 修改控制端主配置

Saltstack自动部署Haproxy+keepalived+nginx+memcache+php(fastcgi)

二系列: 部署keepalived总的目录结构 [[email protected] salt]# tree /srv/salt/ /srv/salt/ ├── base │   ├── init │   │   ├── audit.sls │   │   ├── dns.sls │   │   ├── env_init.sls │   │   ├── epel.sls │   │   ├── files │   │   │   └── resolv.conf │   │   ├── histo

saltstack详解+部署apache服务

saltstack介绍 1. saltstack是使用python语言开发的:2. 轻量级的管理工具,批量执行命令:3.常用模块:pkg(包).file(文件).cmd(执行命令或脚本).user. service.cron4.saltstack数据系统Grains (静态数据)pillar (动态数据) saltstack三大功能,远程执行,配置管理,云管理 SaltStack是一个服务器基础架构集中化管理平台,具备配置管理.远程执行.监控等功能,基于Python语言实现,结合轻量级消息队列(

SVN配置以及自动部署到apache虚拟目录

SVN配置以及自动部署到apache虚拟目录 一.VisualSVN server 服务端和TortoiseSVN客户端下载 VisualSVN下载:http://subversion.apache.org/packages.html 页面最下方就可以找到(下图紫色链接) TortoiseSVN下载:http://tortoisesvn.net/downloads.html 下载的地方很醒目,有32位和64位 紧接着下边有语言包下载 二.VisualSVN server和TortoiseSVN安

apache下 使用svn自动部署代码

碰到一个问题 svn不能ftp ftp又不能svn有没有一个办法把两个联系起来呢? 其实不需要svn自带的hooks(钩子)功能足以满足你得需求 svn配置和设置可以网上直接找到.直接说怎么配置自动同步功能.在svn的目录下 /www/svn/repos/hooks  有的文件 post-commit.tmpl 这个就是需要修改的文件也就是在svn有commit的时候我们需要做的 1.设置需要更新的目录 直接在配置好的首页对应的目录里面checkout一下 2.修改 post-commit.tm

CentOS 6.3下CHEF批量部署APACHE

之前的博文我介绍了如何搭建CHEF环境以及创建编写cookbook,resipes用来批量将cookbook下发到客户端执行相应的部署操作. NOW,本篇文档我们会详细介绍如何利用CHEF独有的框架语言来批量部署安装APACHE,并加载其HTTPS模块等功能. 相信如果你看了本篇文档,利用CHEF实现一个批量自动化部署将不是什么难事. CHEF环境部署详见: http://showerlee.blog.51cto.com/2047005/1408467 操作系统:CentOS-6.3-x86-6

saltstack——自动运维编排工具

简介 Salt是一个基础平台管理工具,基于 python 语言开发.SaltStack 采用 C/S模式,server端就是salt的master,client端就是minion,minion与master之间通过ZeroMQ消息队列通信.master监听4505和4506端口,4505为master和minion认证通信端口,4506为master用来发送命令或者接收minion的命令执行返回信息. saltstack 介绍: 1.轻量级管理工具,批量执行命令: 2.常用模板: pkg:包,有