RHEL 8.6 與 9.0 以後的 Ansible
前兩天是 Red Hat Summit,Red Hat 也趁勢公佈了一個消息: Updates to using Ansible in RHEL 8.6 and 9.0
前兩天是 Red Hat Summit,Red Hat 也趁勢公佈了一個消息: Updates to using Ansible in RHEL 8.6 and 9.0
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
了。
我最早是用 Jenkins + Ansible 來執行 Playbook ,後來才用 AWX/Ansible Tower。最近在 Reddit 上看到有人介紹 Rundeck,想說來試用看看。
在 Rundeck 的文件裡,就有教學文章了:Rundeck and Ansible integration
有同事問我這兩個變數的差異在哪裡?
我查了之後才知道,其實是一樣的。這部份可以在 ansible 原始碼裏面看到。
在 Windows 要取得本機帳號清單,Ansible 沒有這樣的模組,只能透過 win_shell 或 win_powershell 來達成。
PowerShell 要使用的指令是 Get-LocalUser
。
需求是這樣子的,需要把 List 裡的元素轉置為 dict,再放到 List 裡。
也就是
my_users:
- aaa
- bbb
- ccc
要轉換為
my_users:
- Name: aaa
- Name: bbb
- Name: ccc
用 Ansible 該怎麼做呢?看這篇:Using filters to manipulate data 看了好久,都沒找到適合的 filter…
一般來說,Ansible Playbook 要讓 Ansible Tower (或新的名字 Ansible Automation Controller) 或 AWX 使用,有幾種方式:
這裡要介紹一種方式,是我突然想到的,也是我之前忽略的。
git server 本身只要有 SSH server ,其實就可以了,無需額外架設。架設的方法可以參考 Setting up the server
以下紀錄如何進行
最近想要試著在 Oracle Linux 上安裝 Ansible Tower,Ansible Tower 的安裝腳本會中止安裝, 因為這並不是 Ansible Tower 所支援的發行版,那我就想是不是可以繞過 Linux 發行版本的檢查。
在 Ansible Tower 的安裝腳本裡去找,有找到,但卻太複雜,改不了,大致知道是依據 facts 來做。 那只好退而求其次,改為修改 ansible_distribution 這變數,看能不能騙過 Ansible Tower 的安裝腳本。
最近幫同事看 DRBD 還有準備考 RHCSA/RHCE,就想說可以趁這機會來練習如何用 Ansible 來操作磁碟分割區與 LVM。
這邊有個誤會,我一直以來都以為 pvcreate / vgcreate / lvcreate 都有對應的模組可以使用,經過這次研讀後,發現只要用到 lvg 跟 lvol 這兩個模組就可以來建立。
community.general.lvg 是 LVM volume groups 的縮寫, 主要是用來設置 LVM volume groups 的模組。 這個模組包辦了 pvcreate / vgcreate 這兩個指令。