前情提要
今天一口氣把核心設定講完吧,
講完你會發現…呃…怎麼那麼簡單
就是有些小坑避開就好
沒錯,主打就是一個簡單,
你都會寫 Ansible playbook 了,
為什麼串 CI 還要另外再學一套 Jenkins、TavisCI、GitlabCI、XXXCI…你有想過為什麼嗎?
進入正題,
我們所有要進行的設定都在 [Resources]
不過順序上是
[Credentials] -> [Inventories] -> [Hosts] -> [Projects] -> [Template]
當 template 設定完,按下小火箭,就可以到 [Views] -> [Jobs] 去看執行中的 playbook 的 log
這邊要再補充一個關於 Ansible AWX 運作的知識點,
還記得我們之前提到的 安裝 Ansible AWX 嗎?
我們用 docker compose 很輕易的 AWX 架完了,
還多了一些有的沒的文件,
其實是可以不用保留的,那是為了其他的安裝方法 e.g. OpenShift 給的檔案,
最核心的部分是 docker-compose.yml
例如說我的 docker mount 的 volume 是在 ~/awx/awxdata
,
那麼你真的需要保留或修改的檔案都在這了,
例如你可以在 Ansible 首次部署之後,直接手動修改 ~/awx/awxdata/docker-compose.yml
的相關設定
再 docker compose stop -f ~/awx/awxdata/docker-compose.yml
以及 docker compose up -d -f ~/awx/awxdata/docker-compose.yml
將你的 AWX 重啟
我們 docker ps
看一下,主要有這幾個 container
pg 和 redis 是 db 和 cache,大家的老朋友都認識吧,
你的網站主體基本上是 awx_web 這裡問題也不大,
比較值得關注的是 awx_task,
基本上你是從 awx_task 這個 container 發動 ssh 到目標機器去執行工作,
所以如果你的 awx_task 環境要 align 你的開發機 e.g. ubuntu-dev-machine,
例如說 dns service,
可能就需要手動修改 docker-compose.yml
把 /etc/hosts
或是 /etc/resolv.conf
mount 進 container