分析任務執行時間

在遇到執行 playbook 花費較多時間的情況時,該怎麼去進行分析,找出執行效能瓶頸呢? 在 ansible-core 2.15 版以前,可以在 ansible.cfg 裡加上 callback_whitelist = profile_tasks 來進行分析。 在 ansible-core 2.15 版以後,就強制要使用新的設定 callback_enabled = profile_tasks 了。 ...

April 18, 2022 · 1 min · 425 words · elleryq

Rundeck 的 Ansible 整合

我最早是用 Jenkins + Ansible 來執行 Playbook ,後來才用 AWX/Ansible Tower。最近在 Reddit 上看到有人介紹 Rundeck,想說來試用看看。 在 Rundeck 的文件裡,就有教學文章了:Rundeck and Ansible integration ...

April 3, 2022 · 2 min · 821 words · elleryq

ansible_user 與 remote_user 的差異

有同事問我這兩個變數的差異在哪裡? 我查了之後才知道,其實是一樣的。這部份可以在 ansible 原始碼裏面看到。 ...

March 27, 2022 · 1 min · 146 words · elleryq

Windows-取得本機帳號清單

在 Windows 要取得本機帳號清單,Ansible 沒有這樣的模組,只能透過 win_shell 或 win_powershell 來達成。 PowerShell 要使用的指令是 Get-LocalUser 。 ...

March 11, 2022 · 1 min · 317 words · elleryq

將 List 轉置為 dict 的 list

需求是這樣子的,需要把 List 裡的元素轉置為 dict,再放到 List 裡。 也就是 my_users: - aaa - bbb - ccc 要轉換為 my_users: - Name: aaa - Name: bbb - Name: ccc 用 Ansible 該怎麼做呢?看這篇:Using filters to manipulate data 看了好久,都沒找到適合的 filter… ...

February 25, 2022 · 1 min · 227 words · elleryq

最簡單的 git server

一般來說,Ansible Playbook 要讓 Ansible Tower (或新的名字 Ansible Automation Controller) 或 AWX 使用,有幾種方式: 放在 Ansible Tower / Ansible Automation Controller / AWX 的主機裡,這樣的作法是最簡單,但若需要放新的 playbook 進去,勢必要使用 SSH 登入,然後才能處理。 放在 git server,這是 Best practice,一來 playbook 的變更有紀錄可循,二來也能很方便的取用。但缺點是需要架設 git server,這時候就會自建 gitlab、gitea 或是放在外部的 github、gitlab 。 這裡要介紹一種方式,是我突然想到的,也是我之前忽略的。 git server 本身只要有 SSH server ,其實就可以了,無需額外架設。架設的方法可以參考 Setting up the server 以下紀錄如何進行 ...

February 15, 2022 · 2 min · 738 words · elleryq

研究-ansible_distribution

最近想要試著在 Oracle Linux 上安裝 Ansible Tower,Ansible Tower 的安裝腳本會中止安裝, 因為這並不是 Ansible Tower 所支援的發行版,那我就想是不是可以繞過 Linux 發行版本的檢查。 在 Ansible Tower 的安裝腳本裡去找,有找到,但卻太複雜,改不了,大致知道是依據 facts 來做。 那只好退而求其次,改為修改 ansible_distribution 這變數,看能不能騙過 Ansible Tower 的安裝腳本。 ...

February 11, 2022 · 2 min · 691 words · elleryq

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 這兩個指令。 ...

January 25, 2022 · 2 min · 546 words · elleryq

使用 ara 來側錄 Ansible Playbook

在 Reddit 上看到有趣的標題:Recording Ansible playbooks from AWX with ara 覺得有趣是因為居然可以側錄 Playbook ,而且從文章看起來,可以不需要使用 Ansible Tower / AWX 就可以很方便的去查閱執行結果,這種好東西要找時間來試試看。 ...

January 19, 2022 · 2 min · 960 words · elleryq

如何偵測受管主機上的Python版本

因為需要知道受管主機上的 Python,所以就弄了個簡單的 Playbook 來偵測。 Ansible 因為本身需要 Python 來運行 Playbook,自然會收集 Python 的資訊以作為執行的參考。 ...

January 17, 2022 · 1 min · 478 words · elleryq