1. 程式人生 > >saltstack快速入門

saltstack快速入門

必須 建議 stat 入口 cmd 並且 tac oot ase

saltstack使用python語言寫的。

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快速入門