Saltstack 安裝配置 及 簡單操作示例
阿新 • • 發佈:2018-08-05
服務器 信任 accep 客戶服務 通過 角色 提高 cmd.run 範圍 Saltstack 介紹
通過部署 Saltstack環境,可以在成千上萬臺服務器上批量執行命令。對於不同的業務進行集中管理、分發文件、采集數據、軟件包管理等,有利於運維人員提高工作效率,規範業務配置和操作。
Saltstack由 Master和 Minion構成, Master是服務端,表示一臺服務器; Minion
是客戶服務端,表示多臺服務器。在 Master上發送命令給符合條件的 Minion, Minion
就會執行相應的命令, Master和 Minion之間是通過 Zeromq(消息隊列)進行通信的。
Saltstack的 Master端監聽4505與4506端口,4505為 Master和 Minion認證通信端口,4506為 Master用來發送命令或者接收 Minion的命令執行返回信息。
當客戶端啟動後,會主動連接Master端註冊,然後一直保持該TCP連接,而Master通過這條TCP連接對客戶端進行控制。如果連接斷開, Master對客戶端將不能進行控制。但是,當客戶端檢查到連接斷開後,會定期向 Master端請求註冊連接。
saltstack安裝
本篇安裝一臺master服務器 (192.168.100.101) 以及兩臺 minion服務器 (192.168.100.102 192.168.100.103) 分別修改各自的主機名 vim /etc/hostname master服務器: master.saltstack.com minion服務器: web01.saltstack.com web02.saltstack.com 並配置主機文件 (三臺都需要配置) vim /etc/hosts 192.168.100.101 master.saltstack.com 192.168.100.102 web01.saltstack.com 192.168.100.103 web02.saltstack.com 配置完成 重啟生效 ------------在 master服務器上----------- yum install epel-release -y ##配置epel源 yum install salt-master -y 安裝主服務器 vim /etc/salt/master interface: 192.168.100.101 ##第15行,修改監聽地址為本機地址 auto_accept: True ##第215行,主服務器會自動認證被控端的認證,只要被控端在設置完主服務器的IP地址後啟動服務,主服務器就會允許被控端自動認證,以避免以後每次都要運行salt-key來確認認證書信任。 file_roots: base: - /srv/sale ##第416行,去掉註釋。開啟saltstack文件根目錄位置,註意這個目錄默認沒有創建,需要自己手動創建。 nodegroups: group1: ‘web01.saltstack.com‘ group2: ‘web02.saltstack.com‘ ##第710行,配置組分類 pillar_opts: True ##第552行,開啟pillar功能,同步文件功能 pillar_roots: base: - /srv/pillar ##第529行,去掉註釋,pillar的主目錄,需要自己創建 接下來就是創建salt與pillar文件根目錄 mkdir /srv/salt mkdir /srv/pillar systemctl start salt-master systemctl enabled salt-master -------------在 minion服務器上(兩臺一樣) ------------------ yum install epel-release -y ##配置epel源 yum install salt-minion -y vim /etc/salt/minion master: 192.168.100.101 ##第16行,指定主服務器的IP id: web01.saltstack.com ##第78行,指定被控端主機名 systemctl start salt-minion -----------安裝完成---------------------- 在主服務器端進行操作 salt ‘*‘ test.ping ##測試連接 web01.saltstack.com: True web02.saltstack.com: True ## 說明配置成功 * 代表所有服務器,如需指定某一臺,換成該服務器的主機名 salt ‘*‘ cmd.run ‘xxx‘ ##遠程執行命令 salt-key ##查看在主服務器上已經被接受過的客戶端 salt ‘*‘ grains.items ##查看被控端上grains所有值(靜態數據) salt ‘*‘ pillar.items ##查看被控端上pillar所有值(動態數據)
grains和 pillar都是采集被控端數據的,但是 grains的特性在每次啟動後匯報,沒有pillar靈活,要知道 pillar是隨時可變的,只要在master端修改了,一般都會立刻生效。所以 grains更適合做一些靜態的屬性值的采集,例如設備的角色、磁盤個數等諸如此類非常固定的屬性。那麽我們就可以得到一個大致的判斷,如果你想定義的屬性值是經常變化的,就采用pillar:如果很固定、不易變,就采用 grains。
示例
通過saltstack遠程安裝apache mkdir /srv/salt ##配置文件中需要開啟 vim /srv/salt/top.sls ##創建入口文件,入口文件的作用是定義pillar 的數據覆蓋被控主機的有效範圍 base: ‘*‘: - apache vim /srv/salt/apache.sls apache: ##這裏是自定義的名稱 pkg.installed: ##安裝包 - names: - httpd - httpd-devel service.running: - name: httpd - enable: True systemctl restart salt-master salt ‘*‘ state.highstate ##執行並刷新state配置命令 這樣就可遠程安裝apache服務了
Saltstack 安裝配置 及 簡單操作示例