基於完成安裝的salt master和minion( http://mengsir.blog.51cto.com/2992083/1376071 ),接下來配置它強大的的管理功能。
nginx
需求:分發 從服務器運行指令,例如:能夠指定某客戶端或者全部客戶端運行安裝nginx。vim
Master 與 Minion 認證服務器
1.minion 在第一次啓動時,會在/etc/salt/pki/minion/(該路徑在/etc/salt/minion 裏面 設置)下自動生成 minion.pem(private key)和 minion.pub(public key),而後將 minion.pub 發送給 master。 ide
2.master 在接收到minion的public key後,經過salt-key命令accept minion public key, 這樣在 master 的/etc/salt/pki/master/minions 下的將會存放以 minion id 命名的 public key, 而後 master 就能對 minion 發送指令了。工具
KEY 管理:測試
Salt 在 master 和 minion 數據交換過程當中使用 AES 加密, 爲了保證發送給 minion 的指令不 會被篡改,master 和 minion 之間認證採用信任的接受(trusted, accepted )的 key. 在發送命令到 minion 以前,minion 的 key 須要先被 master 所接受(accepted). 運行 salt-key 能夠列出當前 key 的狀態ui
1. 修改 master 配置, vim /etc/salt/master 去掉前面 #號加密
2. 告訴master 的salt,配置管理文件在哪裏,根據你是如何安裝salt,有時須要自動建立 /srv/salt目錄,而後須要建立一個top.sls 文件,這個也是入口文件,能夠用於做爲其餘服務器的基礎配置文件。spa
vim /srv/salt/top.sls dev: 'minion.hello.com': - nginx
3. 在/srv/salt/ 目錄下,建立 dev目錄,dev 目錄下建立 nginx(這些目錄和文件名,隨意定義,清晰的表示本身安裝什麼服務便可)3d
cd /srv/salt mkdir dev cd dev mkdir nginx
4. 在/srv/salt/dev/nginx 目錄下,指定配置文件內容nginx.sls ( 縮進爲2個空格,冒號後面1個空格)
nginx: pkg: - installed service: - running - enable: Ture - watch: - file: /etc/nginx/nginx.conf - file: /etc/nginx/conf.d/default.conf - require: - pkg: nginx /etc/nginx/nginx.conf: file.managed: - source: salt://nginx/nginx.conf - mode: 664 - user: root - group: root /etc/nginx/conf.d/default.conf: file.managed: - source: salt://nginx/default.conf - mode: 664 - user: root - group: root
解釋說明:
第一行:告訴管理工具,這是一個id說明,如我這是管理nginx配置的,我就寫nginx 第二行:告訴管理工具,這個軟件須要被安裝,若是沒安裝就會執行yum安裝 第三行:須要安裝的軟件名稱 第四行:告訴管理工具,這是服務管理 第五行:告訴管理工具,這個服務需保證是運行狀態 第六行:告訴管理工具,這個服務設置開機啓動 第七-九行:觀察file文件改動,有改動就重啓服務 第十二行:文件標識 第十三行:文件管理 第十四行:指定數據源在哪裏,即服務端的源,當這個文件被改動時,就會觸發包管理工具,更改上面file指定的文件,能夠 當作是同步更新。 第十五行:指定file文件的權限 第十六行:指定文件的所屬用戶 第十七行:指定文件的所屬組 第十八行-第二十三行,請參考 十二——十七行
5. 而後把master上nginx目錄下的 nginx.conf 和 default.conf 複製到salt 的nginx目錄下(/srv/salt/nginx)
如今進行測試吧:
rpm -qa | grep nginx
如今咱們在服務端進行推送管理:
salt 'minion.hello.com' state.highstate
而後再客戶端驗證
到這裏就完成master 指定客戶端安裝nginx服務。若是有幾百臺機器同時須要安裝,豈不是很方便。