saltstack簡介
1.是一個基礎平臺管理工具
2.是一個配置配置管理系統,可以維護預約義狀態的遠程節點
3.是一個分佈式遠程執行系統,用來在遠程節點上執行命令和查詢數據
三大功能
遠程執行
配置管理(狀態)
雲管理
![Saltstack批量部署apache](http://static.javashuo.com/static/loading.gif)
實驗環境
master 192.168.13.131
web01 192.168.13.132
web02 192.168.13.133
1,配置三臺服務器,安裝epel源
##添加主機名,三臺機器都要添加,而且主機要改爲相應的名稱
[root@master ~]# vim /etc/hosts
192.168.13.131 master.saltstack.com
192.168.13.132 web01.saltstack.com
192.168.13.133 web02.saltstack.com
#每臺都須要關閉防火牆
[root@master ~]# systemctl stop firewalld.service
[root@master ~]# setenforce 0
[root@master ~]# vim /etc/hostname
master.saltstack.com
[root@web01 ~]# vim /etc/hostname
web01.saltstack.com
[root@web02 ~]# vim /etc/hostname
web02.saltstack.com
#安裝epel源(三臺都要裝)
[root@master ~]# yum install -y epel-release
2,配置master服務salt-master
[root@master ~]# yum -y install salt-master
[root@master ~]# vim /etc/salt/master ##修改配置文件
15行 interface: 192.168.13.131 //監聽地址
215行 auto_accept: True //避免要運行salt-key來確認證書認證
416行 file_roots:
base:
- /srv/salt //saltstack文件根目錄位置,目錄須要建立
710行 組分類:
nodegroups:
group1: 'web01.saltstack.com' ##後端服務器域名
group2: 'web02.saltstack.com'
552行 pillar_opts: True //開啓pillar功能,同步文件功能
529行
pillar_roots:
base:
- /srv/pillar //pillar的主目錄,須要建立
[root@master ~]# mkdir /srv/salt ##建立saltstack文件根目錄
[root@master ~]# mkdir /srv/pillar ##建立pillar的主目錄
[root@master ~]# systemctl start salt-master.service ##開啓服務
[root@master ~]# netstat -ntap | egrep '4505|4506' ##查看端口
tcp 0 0 192.168.13.131:4505 0.0.0.0:* LISTEN 45899/python
tcp 0 0 192.168.13.131:4506 0.0.0.0:* LISTEN 45915/python
3,配置web01,web02端salt-minion
[root@web01 ~]# yum -y install salt-minion ##安裝salt-minion
[root@web01 ~]# vim /etc/salt/minion ##修改配置文件
16行 master: 192.168.13.131 //指定主控端IP
78行 id: web01.saltstack.com //指定被控端主機名(web2就寫web02.saltstack.com)
[root@web01 ~]# systemctl start salt-minion.service ##開啓服務
4,在master上測試通訊狀態
[root@master ~]# salt '*' test.ping
web02.saltstack.com:
True
web01.saltstack.com:
True
5,用master進行管理
[root@master ~]# salt '*' cmd.run 'df -h' ##查看後臺web的掛載狀況
查看被控主機上grains全部值:(每次minion在啓動是都會獲取客戶端信息)
[root@master ~]# salt 'web01.saltstack.com' grains.items (靜態數據信息)
[root@master ~]# salt 'web01.saltstack.com' pillar.items (動態數據信息)
[root@master ~]# salt-key ##查看認證的主機信息
Accepted Keys:
web01.saltstack.com
web02.saltstack.com
Denied Keys:
Unaccepted Keys:
Rejected Keys:
6,配置管理安裝apache
##修改配置文件
vim /etc/salt/master // 打開下面的選項,以前已經開啓而且建立過目錄
file_roots:
base:
- /srv/salt/
mkdir /srv/salt
注意:環境: base、dev(開發環境)、test(測試環境)、prod(生產環境)。
[root@master ~]# vim /srv/salt/top.sls ##編寫管理性文件
base:
'*': ##全部主機
- apache ##指定apache文件
[root@master ~]# vim /srv/salt/apache.sls
apache-service:
pkg.installed:
- names: ##安裝的服務
- httpd
- httpd-devel
service.running:
- name: httpd ##服務開啓
- enable: True
[root@master ~]# systemctl restart salt-master.service ##重啓服務
[root@master ~]# salt '*' state.highstate ##執行操做
7,在web端查看是否安裝httpd服務
[root@web01 ~]# rpm -q httpd
httpd-2.4.6-90.el7.centos.x86_64
[root@web01 ~]# netstat -ntap | grep 80
tcp6 0 0 :::80 :::* LISTEN 6786/httpd
[root@web02 ~]# rpm -q httpd
httpd-2.4.6-90.el7.centos.x86_64
[root@web02 ~]# netstat -ntap | grep 80
tcp6 0 0 :::80 :::* LISTEN 6759/httpd
謝謝閱讀!