本站介紹

本網站以 GitLab Pages / Hugo 建置。

介紹 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 的安裝腳本。