Saltstck做爲服務器基礎架構集中化管理平臺,具有配置管理,遠程執行,監控等功能。能夠簡單地理解爲簡化版的puppet,增強版的func。廢話很少說,直接上手。php
安裝所須要的組件:
主控端:salt-master
被控端:salt-minionnginx
一、安裝所須要的epel做爲部署saltstack的yum源:
yum install -y epelweb二、安裝salt-master/salt-minion:
yum install -y salt-master
yum install -y salt-minion服務器三、設置服務開機啓動:
systemctl enable salt-master / systemctl enable salt-minion網絡四、主控端添加防火牆
iptables -A INPUT -p tcp --dport 4405 -j ACCEPT
iptables -A INPUT -p tcp --dport 4406 -j ACCEPT架構五、修改服務端配置和客戶端配置
修改主控端配置(/etc/salt/master):app
interface: 192.168.118.132 #綁定Master通訊IP auto_accept: True #自動認證 file_roots: base: - /srv/salt #指定SaltStack文件目錄
重啓主控端端SaltStack: service restart salt-mastertcp
修改被控端配置(/etc/salt/minion)ide
master:192.168.118.132 #指定Master主機IP地址 id:mbb_server #被控主機端識別ID
重啓被控端SaltStack:service restart salt-minion工具
檢驗安裝結果:salt '*' test.ping
saltstack 提供了很是豐富的功能模塊,涉及到了操做系統的基礎功能,經常使用工具的支持。
import salt.client
client = salt.client.LocalClient()
一、功能:實現系統層面的壓縮包調用,支持gunzip,gzip,rar,tar,unrar
解壓操做: salt ‘*’ archive.gunzip /tmp/mbb.txt.gz 壓縮操做 salt ‘*’ archive.gzip /tmp/mbb.txt
二、API調用
client.cmd(‘*’,’archive.gzip’,[‘/tmp/mbb.txt’])
一、功能:實現遠程的命令行調用執行(默認具有root操做權限,使用時須要評估風險)
模塊示例: salt ‘*’ cmd.run 「free -m」
二、API調用
client.cmd(‘*’,’cmd.run’,[‘free -m’])
一、功能:實現遠程文件,目錄的複製,以及下載URL文件等操做
將指定被控端的文件複製到主控端的本地目錄: salt ‘*’ cp.cache_local_file /etc/hosts
一、功能:實現被控主機的crontab操做
查看指定被控主機 salt ‘mbb_208’ cron.raw_cron root 未指定的被控端、root用戶添加echo 1 > mbb.txt任務做業 salt ‘mbb_208’ cron.set_job root ‘*’ ‘*’ ‘*’ ‘*’ 1 「echo 1 > mbb.txt」 刪除指定的被控端,root用戶crontab的echo 1 > mbb.txt 任務做業 salt 'mbb_208' cron.rm_job root "echo 1 > lsk.txt"
二、API調用
client.cnd(‘mbb_208’,’cron.rm_job’,[‘root’*’,’*’,’*’,’*’,1,」echo 1 > mbb.txt」])
一、實現被控主機的iptables操做
添加iptables規則 salt 'mbb_208' iptables.insert filter INPUT position=1 rule="-p tcp --dport 4405 -j ACCEPT" salt 'mbb_208' iptables.append filter INPUT rule="-p tcp --dport 4406 -j ACCEPT" 刪除iptables規則 salt 'mbb_208' iptables.delete filter INPUT position=1
二、API調用
client.cmd('mbb_208','iptables.insert',['filter','INPUT','position=1','rule=\'-p tcp --dport 21 -j ACCEPT\''])
一、功能:返回被控端的網絡信息
獲取dig,ping,traceroute目錄域名信息 salt 'mbb_208' network.dig www.baidu.com salt 'mbb_208' network.ping www.baidu.com salt 'mbb_208' network.traceroute www.baidu.com 獲取被控端制定網卡綁定的mac地址 salt 'mbb_208' network.hwaddr eth0 獲取被控端網卡配置信息 salt mbb_208' network.interfaces 獲取被控端的ip地址配置信息 salt 'mbb_208' network.ip_addrs 獲取被控的子網信息 salt 'mbb_208' network.subnets
二、API調用
client.cmd('mbb_208','network.interfaces')
一、功能:被控主機的程序管理,如:yum,apt-get
安裝php salt ‘mbb_208’ pkg.install php 卸載php salt ‘mbb_208’ pkg.remove php 升級php salt ‘mbb_208’ pkg.upgrade php
二、API調用
client.cmd(‘mbb_208’,’pkg.install’,[‘php’])
一、功能:被控主機的程序包服務管理
salt 'mbb_208' service.start httpd salt 'mbb_208' service.stop httpd salt 'mbb_208' service.reload httpd salt 'mbb_208' service.restart httpd salt 'mbb_208' service.status httpd salt 'mbb_208' service.enable httpd salt 'mbb_208' service.disable httpd
二、API調用
client.cmd(‘mbb_208’,’service.start’,[‘nginx’])
grains是Saltstack最重要的組件之一,grains的做用是收集被控端的基本信息,這些信息通常都是靜態類的數據,包括CPU,內核,操做系統,虛擬化等
獲取被控主機的全部grains信息 salt ‘*’ grains.items
被控主機端定製特定的granis數據
登陸被控主機端,在/etc/salt/minion.d/ 目錄下,添加」*.conf」配置文件 grains: roles: - webserver - memcache deployment: datacenter4 cabinet: 13 在主控端: salt 'mbb_208' grains.item roles deployment cabinet