saltstack快速入門
3種運行方式:
local
master/Minion(奴才)
salt SSH
3大功能:
遠程執行
配置管理 就是將安裝的配置文件放到指定文件上,然後在所有主機上執行
雲管理 支持雲上面的操作
saltstack低層使用zeroMQ通信:MQ消息的發布與訂閱特征。
安裝:
首先在所有的minion和master上面執行:
yum install http://mirrors.sohu.com/fedora-epel/7/x86_64/e/epel-release-7-8.noarch.rpm
由於我們是測試環境,打算將使用兩臺,第一臺上安裝master和minion,第二臺上安裝minion
所以:
在第一臺上面執行:
yum install salt-master salt-minion -y
在第二臺上執行:
yum install salt-minion -y
將服務加入開機自啟動,然後啟動master服務,修改minion配置文件中master相關的配置,將ip指定master就好,大概在文件的16行,然後啟動就好了;
當然還需要認證:
master:/etc/salt/pki/master
minion:/etc/salt/pki/minion
還可以使用tree命令在master這個目錄路徑下執行。查看相關的公鑰在那個文件,在minion將自己的公鑰發送給master的過程中,master也會將自己的公鑰發送給minion。
可以使用salt-key -A:同意所以minion認證
到此認證完成。
需要註意的是上面認證的文件名是根據server_id,這個文件是在/etc/salt/minion_id這個文件中,默認是主機的ip,不過可以個人修改。修改server_id必須要將/etc/salt/pki這個目錄下清空。然後修改server_id,然後重啟服務。
這個server_id是很重要的,後面執行的遠程命令有點依靠它的。
好了執行幾個遠程命令:
命令分解:
"*":表示主機,此處匹配所有minion
"cmd.run" 表示使用cmd模塊裏面的run方法
屏幕上的結果是返回。
如上只能在salt執行命令,如果我們想要遠程安裝一個軟件,那麽就要寫配置文件,文件的路徑就需要打開,在master端上打開配置文件的file_roots, 下面的路徑也是基礎路徑。
下來試試使用master在minion安裝httpd服務。
下來試著安裝一個apache,在/srv/salt目錄下面編輯文件apache.sls,sls這是安裝apache的固定格式;
書寫格式如下:apache這個服務已經封裝好了,centos使用yum安裝,ubuntu使用的時apt安裝;
書寫第二部分的含義是啟動服務,service.running是一個模塊裏面的方法
enable是開機啟動,reload是重載這個服務。
下面是執行這個文件:#salt '*' state.sls apache
這樣只是安裝一個apache狀態,如果我們要安裝多個狀態,就要使用高級狀態,定義入口文件:topfile
入口文件默認是/srv/salt/top.sls,可以修改,但是建議不要修改,並且這個入口文件要放到base下面,此時的base是/srv/salt文件下(master配置文件中定義過的):
*:表示在所有主機上執行
[root@localhost salt]# cat top.sls base: 'web:tomcat': #這裏如果寫成*,代表的是所有,此處是使用grain進行匹配鍵值是web:tomcat,然後給匹配到的安裝apache - match: grain - apache
然後執行salt '*' state.highstate高級匹配
報錯不影響,外面匹配了所有,裏面匹配web:apache,所以第一個node報錯。
saltstack快速入門