ansible.builtin.copy
copy 可以把檔案複製到連線的主機去。
copy 可以把檔案複製到連線的主機去。
Inventory 就是主機清單,裏面描述主機的連線資訊,一般文件常用的是 ini 格式。
但在 DO447 的第二章有提到 inventory 格式的轉換,我自己是比較熟悉 ini 格式的 inventory,所以對於要轉換為 YAML 格式的地方就覺得比較卡頓。
那該怎麼克服呢?我臨機一動,想到 ansible 有提供 ansible-inventory 指令,用這個就可以解決我的問題。
這是我在前兩天在寫 DO447 練習題時所發現的一個小技巧,覺得非常實用,特別是在無法上網查詢的時候。
ansible.cfg 是 ansible 預設會去讀取的設定檔,裏面可以設定很多,例如:
lookup 是很方便的查詢函式,第一個參數是 ‘password’ 的時候,可以用來產生密碼。
Inventory 就是主機清單,Ansible 要連到哪些主機做操作,就是依據這個檔案。
Inventory 可以使用很多種格式,每種格式的處理都依靠 Plugin,這可以在 ansible.cfg 裡去啟用跟關閉。
shell 是用來執行指令用的,等等,command 不也一樣嗎?。
對,其實大同小異,但有個很重要的差別,就是 pipe 或重導向 。 command 只能執行單一個指令,若需要作 pipe 串接或重導向時,就需要用到 shell 了。
lookup 是很方便的查詢函式,第一個參數是 ’template’ 的時候,可以把範本檔案放到第二個參數,然後 lookup 會把範本內容替換變數以後,再傳回字串。
command 是用來執行指令用的。
lookup 函式的第一個參數可以填哪些項目,又能拿到什麼樣的資訊呢?你可以參考下面的一覽表。
你可以使用 ansible-doc -t lookup -l
列出所有可用的 lookup plugins。
找到以後,就可以用 ansible-doc -t lookup <the_plugin>
來看它的用法。