实验主机环境:
master: rhel6.5 x86_64bit 172.25.5.91 rhel65-lockey1
minion: rhel6.5 x86_64bit 172.25.5.92 rhel65-lockey2
1.指定文件目录
vim /etc/salt/master
# Example:
file_roots:
base:
- /srv/salt/
2.创建文件目录并重启服务使配置生效
mkdir /srv/salt
/etc/init.d/salt-master restart
3.配置测试脚本进行环境验证
cd /srv/salt/
mkdir httpd
cd httpd/
vim web.sls
[root@rhel65-lockey1 httpd]# cat web.sls
httpd:
pkg.installed
[root@rhel65-lockey1 httpd]# salt rhel65-lockey2 state.sls
httpd.web test=true
rhel65-lockey2:
----------
ID: httpd
Function: pkg.installed
Result: None
Comment: The following packages would be installed/updated: httpd
Started: 11:47:38.462968
Duration: 666.224 ms
Changes:
Summary for rhel65-lockey2
------------
Succeeded: 1 (unchanged=1)
Failed: 0
------------
Total states run: 1
Total run time: 666.224 ms
在minion端进行检查,自动安装脚本已经同步
[root@rhel65-lockey2 minion]# tree .
.
├── accumulator
├── extmods
├── files
│ └── base
│ └── httpd
│ └── web.sls
├── highstate.cache.p
├── pkg_refresh
├── proc
└── sls.p
[root@rhel65-lockey2 minion]# pwd
/var/cache/salt/minion
4. 配置apache自动安装脚本并进行测试
4.1 简单安装
[root@rhel65-lockey1 httpd]# cat web.sls
apache:
pkg.installed:
- pkgs:
- httpd
- php
[root@rhel65-lockey1 httpd]# salt rhel65-lockey2 state.sls httpd.web
rhel65-lockey2:
----------
ID: apache
Function: pkg.installed
Result: True
Comment: The following packages were installed/updated: httpd, php
Started: 11:54:42.915104
Duration: 5658.2 ms
Changes:
----------
apr:
----------
new:
。。。
old:
Summary for rhel65-lockey2
------------
Succeeded: 1 (changed=1)###表示安装成功
Failed: 0
------------
Total states run: 1
Total run time: 5.658 s###安装所用时间
4.2 设置服务状态
[root@rhel65-lockey1 httpd]# cat web.sls
apache:
pkg.installed:
- pkgs:
- httpd
- php
apache-service:
service.running:
- name: httpd
- enable: true
-
[root@rhel65-lockey1 httpd]# salt rhel65-lockey2 state.sls httpd.web
rhel65-lockey2:
----------
ID: apache
Function: pkg.installed
Result: True
Comment: All specified packages are already installed
Started: 12:00:42.514547
Duration: 634.455 ms
Changes:
----------
ID: apache-service
Function: service.running
Name: httpd
Result: True
Comment: Service httpd has been enabled, and is running
Started: 12:00:43.149922
Duration: 206.696 ms
Changes:
----------
httpd:
True
Summary for rhel65-lockey2
------------
Succeeded: 2 (changed=1)
Failed: 0
------------
Total states run: 2
Total run time: 841.151 ms
在minion端查看httpd的状态:
[root@rhel65-lockey2 minion]# /etc/init.d/httpd status
httpd (pid 3149) is running…
4.3 Apache配置文件推送(以服务端口变更为例)
[root@rhel65-lockey1 httpd]# mkdir files#此目录下放置apache的配置文件httpd.conf
[root@rhel65-lockey1 httpd]# cat web.sls
apache:
pkg.installed:
- pkgs:
- httpd
- php
service.running:
- name: httpd
- enable: true
- reload: true
- watch:
- file: apache
file.managed:#配置文件管理
- name: /etc/httpd/conf/httpd.conf#minion端文件位置
- source: salt://httpd/files/httpd.conf#mater端文件位置(相对路径)
- mode: 644
- user: root
- group: root
[root@rhel65-lockey1 httpd]# salt rhel65-lockey2 state.sls httpd.web test=true###首先进行配置测试正常后再执行
rhel65-lockey2:
----------
。。。
Changes:
----------
diff:
---
+++
@@ -133,7 +133,7 @@
# prevent Apache from glomming onto all bound IP addresses (0.0.0.0)
#
#Listen 12.34.56.78:80
-Listen 80###注意这一行
+Listen 8080###and这一行
#
# Dynamic Shared Object (DSO) Support
----------
。。。
Total states run: 3
Total run time: 741.274 ms
[root@rhel65-lockey1 httpd]# salt rhel65-lockey2 state.sls httpd.web
minion端进行验证:
推送前
[root@rhel65-lockey2 minion]# netstat -anltp | grep 80
tcp 0 0 172.25.5.92:50801 172.25.5.91:4505 ESTABLISHED 2363/python2.6
tcp 0 0 :::80 :::* LISTEN 3149/httpd
推送后
tcp 0 0 172.25.5.92:50801 172.25.5.91:4505 ESTABLISHED 2363/python2.6
tcp 0 0 :::8080 :::* LISTEN 3149/httpd
此文over,下文预告[Saltstack自动化源码编译安装Nginx服务]