Saltstack是Python開發的,上千台的伺服器都可以管理。 運維重覆性工作:系統安裝、環境部署、添加監控、代碼發佈(基於git或svn二次開發)、項目遷移、計劃任務。 salt是一個新的基礎平臺管理工具。只需花費數分鐘即可運行起來,擴展性足以支撐管理上萬台伺服器,數秒即可完成數據傳遞。 sa... ...
Saltstack是Python開發的,上千台的伺服器都可以管理。
運維重覆性工作:系統安裝、環境部署、添加監控、代碼發佈(基於git或svn二次開發)、項目遷移、計劃任務。
salt是一個新的基礎平臺管理工具。只需花費數分鐘即可運行起來,擴展性足以支撐管理上萬台伺服器,數秒即可完成數據傳遞。
salt可以做配置管理、遠程命令、包管理。
salt配置
準備3台虛擬機,按照規範修改主機名:test-c2c-console01、test-c2c-php01、test-c2c-php02。
- [root@test-c2c-console01 ~]# cat /etc/sysconfig/network
- NETWORKING=yes
- HOSTNAME=test-c2c-console01.bj
- [root@test-c2c-console01 ~]# cat /etc/hosts
- 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 oldboylinux
- ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 oldboylinux
- 192.168.31.138 test-c2c-php01
- 192.168.31.137 test-c2c-php02
- 192.168.31.128 test-c2c-console01.bj
配置yum源
- [root@test-c2c-console01 ~]# cd /etc/yum.repos.d/
- [root@test-c2c-console01 yum.repos.d]# ls
- CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo
- CentOS-Base.repo.20161216.oldboy CentOS-fasttrack.repo CentOS-Vault.repo
- rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
- wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
- [root@test-c2c-console01 yum.repos.d]# ls
- CentOS6-Base-163.repo CentOS-Debuginfo.repo CentOS-Vault.repo
- CentOS-Base.repo CentOS-fasttrack.repo epel.repo
- CentOS-Base.repo.20161216.oldboy CentOS-Media.repo epel-testing.repo
服務端
yum install salt-master –y
/etc/init.d/salt-master start
chkconfig salt-master on
客戶端
yum install salt-minion -y
vim /etc/salt/minion
master: 192.168.31.128 #master端地址
cachedir: /etc/salt/modules #模塊目錄
log_file: /var/log/salt/minion.log #日誌路徑
log_level: warning #日誌級別
/etc/init.d/salt-minion start
chkconfig salt-minion on
key管理
- [root@test-c2c-console01 ~]# salt-key -L
- Accepted Keys: #已認證
- Denied Keys: #未認證
- Unaccepted Keys:
- test-c2c-php01
- test-c2c-php02
- Rejected Keys: #被吊銷
- [root@test-c2c-console01 ~]# salt-key -A
- The following keys are going to be accepted:
- Unaccepted Keys:
- test-c2c-php01
- test-c2c-php02
- Proceed? [n/Y] y
- Key for minion test-c2c-php01 accepted.
- Key for minion test-c2c-php02 accepted.
- [root@test-c2c-console01 ~]# salt-key -L
- Accepted Keys:
- test-c2c-php01
- test-c2c-php02
- Denied Keys:
- Unaccepted Keys:
- Rejected Keys:
- [root@test-c2c-console01 ~]# salt '*' test.ping
- test-c2c-php02:
- True
- test-c2c-php01:
- True
常用參數:
-L:查看key狀態
-A:允許所有
-D:刪除所有
-a:認證指定的key
-d:刪除指定的key
-r:註銷指定的key(該key狀態為未認證)
管理
分組
[root@test-c2c-console01 salt]# pwd
/etc/salt
[root@test-c2c-console01 salt]# vim master
nodegroups:
#dev:'[email protected],ops-dev02.bj' #列表匹配
dev:'E@ops-dev0[1-9].bj' #正則匹配
- [root@test-c2c-console01 salt]# salt -N 'php' test.ping #ping php組的機器
- test-c2c-php02:
- True
- test-c2c-php01:
- True
- [root@test-c2c-console01 salt]# salt -N 'php' cmd.run 'uptime' #查看php組機器的負載
- test-c2c-php01:
- 11:45:01 up 1:45, 2 users, load average: 0.00, 0.00, 0.00
- test-c2c-php02:
- 11:44:20 up 1:46, 2 users, load average: 0.00, 0.00, 0.00
環境配置
file_roots:
base: #測試環境
-/srv/salt
dev: #開發環境
- /srv/salt/dev/services
- /srv/salt/dev/states
prod: #生產環境
- /srv/salt/prod/services
- /srv/salt/prod/states
即時管理
salt -N 'dev' test.ping #匹配分組主機,即時ping
salt -N 'dev' cmd.run 'uptime' #執行命令
salt -N 'ops-dev(02|03)' test.ping #正則匹配主機,即時ping
salt '*' cmd.run "ab -n 10 -c 2 http://www.google.com/" #匹配所有機器做壓力測試
salt -N 'dev' sys.doc cmd #查看模塊文檔
salt -N 'dev' saltutil.sync_all #同步到dev分組
salt -N 'dev' sys.doc mi #查看模塊使用幫助
salt -N 'dev' mi.sshkey #執行該模塊
salt -N 'dev' state.sls yum -v test=true #同步指定配置模塊
salt -N 'dev' state.hightstate -v test=true #同步所有模塊