saltstack快速入門

saltstack使用python語言寫的。

3種運行方式:

local

master/Minion(奴才)

salt  SSH

3大功能:

遠程執行

配置管理     就是將安裝的配置文件放到指定文件上,然後在所有主機上執行

雲管理     支持雲上面的操作


saltstack低層使用zeroMQ通信:MQ消息的發佈與訂閱特徵。


安裝:

首先在所有的minion和master上面執行:

 yum install https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el7.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是很重要的,後面執行的遠程命令有點依靠它的。

好了執行幾個遠程命令:

image.png

命令分解:

"*":表示主機,此處匹配所有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是重載這個服務。

image.png

下面是執行這個文件:#salt  '*'  state.sls apache

  image.png

這樣只是安裝一個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高級匹配

image.png

報錯不影響,外面匹配了所有,裏面匹配web:apache,所以第一個node報錯。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章