saltstack安裝部署與入門使用
一、saltstack簡介
SaltStack 一種基於 C/S 架構的服務器基礎架構集中化管理平臺,管理端稱為 Master,客戶端稱為 Minion。SaltStack 具備配置管理、遠程執行、監控等功能,一般可以理解為是簡化版的 Puppet 和加強版的 Func。SaltStack 本身是基於 Python 語言開發實現,結合了輕量級的消息隊列軟件 ZeroMQ 與 Python 第三方模塊(Pyzmq、PyCrypto、Pyjinjia2、python-msgpack 和 PyYAML 等)構建.
本文不以最新版安裝部署,以CentOS6.8_x64 python2.6.6 環境中 在epel源中穩定的版本進行yum安裝 。如需要安裝最新版本下載地址(readhat/CentOS系)https://repo.saltstack.com/index.html#rhel,
采用兩臺安裝搭建基本的環境。一臺做master/minion 一臺minion
兩臺防火墻要麽關閉 要麽加上允許本地網段白名單類似 :-A INPUT -s 172.16.3.0/24 -j ACCEPT
關閉selinux.
二、安裝
1,安裝epel擴展源
#yum install epel-release -y
2、安裝saltstack master
# yum install salt-master sat-minion -y
修改主配置文件/etc/salt/master 內容如下:
# cat master |egrep -v ‘(^$|^#)‘ interface: 0.0.0.0 #偵聽地址 file_roots: #文件根目錄 base: - /srv/salt # cat minion |egrep -v ‘(^$|^#)‘ default_include: minion.d/*.conf master: 127.0.0.1 #和master在同一臺 id: minion_local #標識
#service salt-master start
#service salt-minion start
2、安裝minion(非master上)
#yum install epel-release -y
#yum install salt-minion -y
修改配置文件cat /etc/salt/minion
# cat minion |egrep -v ‘(^$|^#)‘ default_include: minion.d/*.conf master: 172.16.3.147 #和master在同一臺 id: minion_local #標識
#service salt-minion start
三、master上添加minion
如裏在master配置文件中打開
auto_accept: True
則所有的minon 將會自動被認證加入。自行考量。本次是手工添加
#salt-key -L
如圖:Unaccepted Keys:中出現兩個等待授權認證的minon
#salt-key -A
輸入y
接受所有minion認證
再次salt-key -L 查看已授權的minion會就看到
#salt "*" test.ping #查看所有的活動在線的minion
如圖:
到此基本的saltstack master /minion 環境部署完成
四、saltstack常用操作
除了上面的添加minon和測試minion在線情況外,還有一些其他的模擬提供一些常用操作;
1、salt語法
salt [客戶端id,即目標,支持正規表達式] [模塊名,如state,cmd。其實都是salt的模塊] [動作]
如: salt "*" test.ping 這裏的"*"就是匹配的目標,表示 所有minion test是模塊 ping是動作
目標有以下常用的五種形式:
指定目標主要有五種方式
a)、Global,即salt默認的匹配方式,能識別終端常用的通配符,如*代表所有
如,salt ‘*‘ test.ping
b)、List,列表,需-L指定。
如,salt -L ‘minion_local,minion_152‘ test.ping 其中minion_local,minion_152
是完整的minion_id
c)、-E 正則表達式匹配
如,salt -E ‘pre[1-7]‘ test.ping 會匹配pre1,pre2..pre7,並且匹配到左右minion_id
裏面含有1-7的,如pre-11,pre7也會匹配到,如果只匹配1-7可使用參照下面
如,salt -E ^pre[1-7]$ test.ping或者 salt pre[1-7] test.ping
d)、-C 混合模式,裏面可以既有正則表達式也有列表等
salt -C "minion_* or test_minion" test.ping 匹配所有minion開頭,或者test_minion id的
e)、分組,需要-N指定,其中組名就是上面/etc/salt/master.d/groups.conf文件裏面配置的
配置信息。如,salt -N apache test.ping
2、常用模塊
然後是模塊,主要介紹state,cmd,cp模塊
註:想了解某個模塊的功能或者具體參數可以
salt \* sys.doc [模塊名,如cmd]
a)、cmd模塊
salt ‘*‘ cmd.run "echo $HOSTNAME" 這裏可以遠程執行shell命令,執行結果會返回
b)、文件上傳與下載
salt "minion_152" cp.get_file salt://files/test.txt /tmp/test.txt
將/srv/salt/files/test.txt 推送到minion_152 /tmp/下也叫test.txt
到minion_152 tmp目錄下查看
同理可以通過 cp.push從minion上下載文件
需要修改master中的 file_recv: True
salt "minion_152" cp.push /etc/fstab #默認下到本地
/var/cache/salt/master/minions/minion-id/files目錄
其他的模塊主參考官方文檔。這裏不再多說。
本文出自 “學無止境,學以致用” 博客,請務必保留此出處http://dyc2005.blog.51cto.com/270872/1967147
saltstack安裝部署與入門使用