1.需求
使用sls安装nginx并管理nginx的配置文件,当nginx配置文件被修改时,自动更新配置文件,并重启nginx。
2.配置
1.在master端上写好nginx.sls文件
mkdir -p /srv/salt/nginx
cd /srv/salt/nginx
vim init.sls
nginx:
pkg:
- installed
service:
- running
- enable: True
- reload: True
- watch:
- pkg: nginx
- file: /etc/nginx/nginx.conf
- file: /etc/nginx/conf.d/default.conf
/etc/nginx/nginx.conf:
file.managed:
- source: salt://etc/nginx/nginx.conf
- user: root
- group: root
- mode: 644
/etc/nginx/conf.d/default.conf:
file.managed:
- source: salt://etc/nginx/conf.d/default.conf
- user: root
- group: root
- mode: 644
保存退出
2.在master端上安装nginx,方便生成nginx的配置文件(生产环境中其实是不需要安装的)
yum -y install nginx
3.创建nginx同步目录
mkdir /srv/salt/etc/nginx/conf.d -p
4.拷贝nginx的配置文件到/srv/salt/etc/nginx/目录下
cp /etc/nginx/nginx.conf /srv/salt/etc/nginx/
5.拷贝default.conf配置文件到/srv/salt/nginx/conf.d/目录下
cp /etc/nginx/conf.d/default.conf /srv/salt/etc/nginx/conf.d/
6.下发安装指令[root@Admin1-saltstack nginx]# salt '*' state.sls nginx
Admin3-saltstack.littlebee.com:
----------
ID: nginx
Function: pkg.installed
Result: True
Comment: The following packages were installed/updated: nginx
Started: 16:00:54.241160
Duration: 100771.423 ms
Changes:
----------
GeoIP:
----------
new:
1.6.5-1.el6
old:
GeoIP-GeoLite-data:
----------
new:
2015.04-2.el6
old:
GeoIP-GeoLite-data-extra:
----------
new:
2015.04-2.el6
old:
gd:
----------
new:
2.0.35-11.el6
old:
geoipupdate:
----------
new:
2.2.1-2.el6
old:
libXpm:
----------
new:
3.5.10-2.el6
old:
libxslt:
----------
new:
1.1.26-2.el6_3.1
old:
nginx:
----------
new:
1.0.15-11.el6
old:
nginx-filesystem:
----------
new:
1.0.15-11.el6
old:
----------
ID: /etc/nginx/nginx.conf
Function: file.managed
Result: True
Comment: File /etc/nginx/nginx.conf is in the correct state
Started: 16:02:35.422030
Duration: 3.826 ms
Changes:
----------
ID: /etc/nginx/conf.d/default.conf
Function: file.managed
Result: True
Comment: File /etc/nginx/conf.d/default.conf is in the correct state
Started: 16:02:35.430801
Duration: 2.863 ms
Changes:
----------
ID: nginx
Function: service.running
Result: True
Comment: Service nginx has been enabled, and is running
Started: 16:02:35.440698
Duration: 583.024 ms
Changes:
----------
nginx:
True
Summary
------------
Succeeded: 4 (changed=2)
Failed: 0
------------
Total states run: 4
Admin2-saltstack.littlebee.com:
----------
ID: nginx
Function: pkg.installed
Result: True
Comment: The following packages were installed/updated: nginx
Started: 16:00:53.829498
Duration: 145884.537 ms
Changes:
----------
GeoIP:
----------
new:
1.6.5-1.el6
old:
GeoIP-GeoLite-data:
----------
new:
2015.04-2.el6
old:
GeoIP-GeoLite-data-extra:
----------
new:
2015.04-2.el6
old:
gd:
----------
new:
2.0.35-11.el6
old:
geoipupdate:
----------
new:
2.2.1-2.el6
old:
libXpm:
----------
new:
3.5.10-2.el6
old:
libxslt:
----------
new:
1.1.26-2.el6_3.1
old:
nginx:
----------
new:
1.0.15-11.el6
old:
nginx-filesystem:
----------
new:
1.0.15-11.el6
old:
----------
ID: /etc/nginx/nginx.conf
Function: file.managed
Result: True
Comment: File /etc/nginx/nginx.conf is in the correct state
Started: 16:03:20.181447
Duration: 5.708 ms
Changes:
----------
ID: /etc/nginx/conf.d/default.conf
Function: file.managed
Result: True
Comment: File /etc/nginx/conf.d/default.conf is in the correct state
Started: 16:03:20.198217
Duration: 4.887 ms
Changes:
----------
ID: nginx
Function: service.running
Result: True
Comment: Service nginx has been enabled, and is running
Started: 16:03:20.214405
Duration: 340.608 ms
Changes:
----------
nginx:
True
Summary
------------
Succeeded: 4 (changed=2)
Failed: 0
------------
Total states run: 4
出现上面的信息则表示安装成功了
也可以在minion端看服务是否起来:
[root@Admin2-saltstack tmp]# /etc/init.d/nginx status
nginx (pid 3046) is running...
[root@Admin3-saltstack nginx]# /etc/init.d/nginx status
nginx (pid 2876) is running...