iT邦幫忙

2023 iThome 鐵人賽

DAY 17
0

前情提要

  1. adhoc 寫一個 Python FastAPI 範例 + Dockerfile
  2. 用 Ansible 遠端部署
  3. 用 Ansible AWX 自動部署 <- 現在在這裡

今天一口氣把核心設定講完吧,
講完你會發現…呃…怎麼那麼簡單
就是有些小坑避開就好

沒錯,主打就是一個簡單,
你都會寫 Ansible playbook 了,
為什麼串 CI 還要另外再學一套 Jenkins、TavisCI、GitlabCI、XXXCI…你有想過為什麼嗎?

進入正題,
我們所有要進行的設定都在 [Resources]
img

不過順序上是
[Credentials] -> [Inventories] -> [Hosts] -> [Projects] -> [Template]

  • Credentials 就是把你用的 private key 存在 AWX 的 database
  • Inventories 與 Hosts 就是 Ansible 的 Inventories 與 Hosts
  • Projects 就是設定 git repository
  • Templates 集以上之大成,集成一個 Job 所需要的各種設定與 source code 來源

當 template 設定完,按下小火箭,就可以到 [Views] -> [Jobs] 去看執行中的 playbook 的 log
img

這邊要再補充一個關於 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
img

  • awx_task
  • awx_web
  • awx_postgres
  • awx_redis

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


上一篇
開始使用 Ansible AWX!!
下一篇
如何設定 Ansible AWX Credentials
系列文
我只是想自動執行 Ansible ,一定要用 Jenkins 嗎30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言