ansible

如何使用debug模組

debug 模組的用途,顧名思義就是除錯用的,一般用來在 playbook 裡列印變數內容,或是指定的訊息。在預設的情況下,模組只會有狀態的輸出, 像是 changed, ignored 等等的,使用 debug 模組,就可以印出變數內容或者是運算式的結果。基本上就把他想做是 bash 裡的 echo,或是 python 裡的 print。

分析任務執行時間

在遇到執行 playbook 花費較多時間的情況時,該怎麼去進行分析,找出執行效能瓶頸呢?

在 ansible-core 2.15 版以前,可以在 ansible.cfg 裡加上 callback_whitelist = profile_tasks 來進行分析。 在 ansible-core 2.15 版以後,就強制要使用新的設定 callback_enabled = profile_tasks 了。

最簡單的 git server

一般來說,Ansible Playbook 要讓 Ansible Tower (或新的名字 Ansible Automation Controller) 或 AWX 使用,有幾種方式:

  1. 放在 Ansible Tower / Ansible Automation Controller / AWX 的主機裡,這樣的作法是最簡單,但若需要放新的 playbook 進去,勢必要使用 SSH 登入,然後才能處理。
  2. 放在 git server,這是 Best practice,一來 playbook 的變更有紀錄可循,二來也能很方便的取用。但缺點是需要架設 git server,這時候就會自建 gitlab、gitea 或是放在外部的 github、gitlab 。

這裡要介紹一種方式,是我突然想到的,也是我之前忽略的。

git server 本身只要有 SSH server ,其實就可以了,無需額外架設。架設的方法可以參考 Setting up the server

以下紀錄如何進行

研究-ansible_distribution

最近想要試著在 Oracle Linux 上安裝 Ansible Tower,Ansible Tower 的安裝腳本會中止安裝, 因為這並不是 Ansible Tower 所支援的發行版,那我就想是不是可以繞過 Linux 發行版本的檢查。

在 Ansible Tower 的安裝腳本裡去找,有找到,但卻太複雜,改不了,大致知道是依據 facts 來做。 那只好退而求其次,改為修改 ansible_distribution 這變數,看能不能騙過 Ansible Tower 的安裝腳本。

LVM - lvg and lvol

最近幫同事看 DRBD 還有準備考 RHCSA/RHCE,就想說可以趁這機會來練習如何用 Ansible 來操作磁碟分割區與 LVM。

這邊有個誤會,我一直以來都以為 pvcreate / vgcreate / lvcreate 都有對應的模組可以使用,經過這次研讀後,發現只要用到 lvg 跟 lvol 這兩個模組就可以來建立。

community.general.lvg 是 LVM volume groups 的縮寫, 主要是用來設置 LVM volume groups 的模組。 這個模組包辦了 pvcreate / vgcreate 這兩個指令。