ansible

小技巧 - Inventory 格式的轉換

Inventory 就是主機清單,裏面描述主機的連線資訊,一般文件常用的是 ini 格式。

但在 DO447 的第二章有提到 inventory 格式的轉換,我自己是比較熟悉 ini 格式的 inventory,所以對於要轉換為 YAML 格式的地方就覺得比較卡頓。

那該怎麼克服呢?我臨機一動,想到 ansible 有提供 ansible-inventory 指令,用這個就可以解決我的問題。

祕訣 - 關於 ansible.cfg

這是我在前兩天在寫 DO447 練習題時所發現的一個小技巧,覺得非常實用,特別是在無法上網查詢的時候。

ansible.cfg 是 ansible 預設會去讀取的設定檔,裏面可以設定很多,例如:

Inventory - Overview

Inventory 就是主機清單,Ansible 要連到哪些主機做操作,就是依據這個檔案。

Inventory 可以使用很多種格式,每種格式的處理都依靠 Plugin,這可以在 ansible.cfg 裡去啟用跟關閉。

ansible.builtin.shell

shell 是用來執行指令用的,等等,command 不也一樣嗎?。

對,其實大同小異,但有個很重要的差別,就是 pipe 或重導向 。 command 只能執行單一個指令,若需要作 pipe 串接或重導向時,就需要用到 shell 了。

lookup - template

lookup 是很方便的查詢函式,第一個參數是 ’template’ 的時候,可以把範本檔案放到第二個參數,然後 lookup 會把範本內容替換變數以後,再傳回字串。

lookup 一覽

lookup 函式的第一個參數可以填哪些項目,又能拿到什麼樣的資訊呢?你可以參考下面的一覽表。

祕訣 - 關於 lookup

你可以使用 ansible-doc -t lookup -l 列出所有可用的 lookup plugins。

找到以後,就可以用 ansible-doc -t lookup <the_plugin> 來看它的用法。