天天看點

《Puppet實戰手冊》——1.6 編寫papply腳本

本節書摘來自異步社群《puppet實戰手冊》一書中的第1章,第1.6節,作者:【英】john arundel著,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視

人們希望可以盡量簡單和簡單地将puppet配置應用到主機上,是以,通常會寫一個腳本,它包含puppet apply指令和所需要的參數。要部署這個腳本到需要它的地方,除了puppet,還有什麼更好的工具嗎?

操作步驟

具體步驟如下。

1. 在puppet倉庫目錄中建立puppet子產品必需的目錄。

2. 參照下面的内容,建立modules/puppet/files/papply.sh檔案,sudo puppet apply指令應該全部寫在同一行中(修改/home/ubuntu/puppet目錄為puppet倉庫所在的目錄),内容如下:

3. 建立modules/puppet/manifests/init.pp檔案,内容如下:

4. 修改manifests/node.pp檔案,内容如下:

5. 應用這些修改。

6. 測試腳本是否工作正常。

現在,當需要運作puppet時,隻需要簡單運作papply即可。将來需要應用puppet變更時,也隻需要運作papply而不是運作完整的puppet apply指令。

工作原理

可以看到,在一台機器上運作puppet和應用指定的清單檔案,隻需要運作puppet apply指令。

<code>puppet apply manifests/site.pp</code>

使用子產品(如剛剛建立的puppet子產品)時,還需要告訴puppet去哪裡搜尋子產品,使用modulepath參數指定子產品搜尋目錄。

為了使用root權限運作puppet,必須在指令前使用sudo。

最後,通過添加$*參數,任何傳遞給papply的額外參數都會傳遞給puppet。

由于需要輸入太多字元,可以把它們寫進一個腳本以簡化操作。同時,添加一個puppet file資源,用來部署papply腳本到/usr/local/bin目錄并使其執行。

最後,需要在cookbook節點聲明中包括include puppet:

讀者可以在puppet管理其他任何節點中使用同樣的方法來部署papply腳本。