Ansible Tower 升級 Ansible Automation Platform 2.0 作法
隨著 Ansible Automation Platform 2.0
於今年七月中釋出 Early Access
版本,我之後會寫一篇文章介紹與大家之前比較熟悉的 Ansible Tower
在特性上有什麼差別,有興趣的朋友可以先在新的環境玩玩看,先不要急著升級,因為之後會有更多新功能,也會在之後的文章一併介紹。
本篇主要是介紹升級 Ansible Tower 3.8.4
(Ansible Tower
的最後一版) 到 Ansible Automation Platform 2.0
的作法。
之所以會有這篇文章的出現,主要是因為 Ansible Automation Platform 2.0
以及之後的版本對於 RHEL
作業系統和 Ansible-core
的版本都會有一些限制,所以先寫篇文章記錄一下,之後有朋友想升級也可以當個參考 。
♖ 環境
- RHEL 7.9
- RHEL 8.4
- Ansible Tower 3.8.4
- Ansible Automation Platform 2.0 Early Access
(以下簡稱 AAP2.0)
♖ Ansible Tower 的升級路線
Ansible Tower
升級可以參考 Upgrading an Existing Tower Installation,並且分為以下兩種情況:
(1) 假設您的 Ansible Tower
版本在 3.7 以上基本上可以總結為以下三步驟:
- 使用官方下載連結下載目標版本
Ansible Tower
壓縮檔並解壓縮 - 備份舊版本的
Ansible Tower
資料(包含Templates
,Projects
等設定),備份步驟可以參考 Backing Up and Restoring Tower - 複製備份檔案到目標版本的
Ansible Tower
目錄下 - 執行目標版本的安裝流程
- 還原備份檔案
(2) 假設您的版本在 3.7 以下,則可以參考 Red Hat Ansible Tower Upgrade from 3.5 to 3.8 – when running setup.sh is not enough – or: I have made fire!
最保險的升級建議是升級到目前版本的最新小版本,再升級到下一個中版本,比方說目前版本是 3.7.2
,就建議升級到 3.7.5 (3.7系列的最後一版)
再往上升到 3.8.4
。
♖ Ansible Tower 到 Ansible Automation Platform 2.0 的升級路線
老實說 Ansible Tower
本身升級過程沒什麼問題,就是 Ansible-core
的版本問題和 AAP2.0
對 RHEL
的版本限制花了點時間。
先講一下我的升級路徑:
步驟 | Ansible Tower / AAP 版本 | 作業系統版本 | Ansible-core 版本 |
---|---|---|---|
1 | Ansible Tower 3.8.4 | RHEL7 | Ansible core 2.9.X |
2 | Ansible Tower 3.8.4 | RHEL8 | Ansible core 2.9.X |
3 | Ansible Automation Platform 2.0 | RHEL8 | Ansible core 2.11.X |
這邊如果有實驗精神的朋友想要跟我一樣試著退版從 RHEL7 試驗重裝,也可以參考 How to uninstall Ansible Tower,另外附帶一提,安裝 Ansible Tower 會需要用到兩個 package rhel-7-server-extras-rpms
& rhel-server-rhscl-7-rpms
,這兩個 package 都會需要安裝 epel-release
,可參考以下指令:
1 | rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm |
如果安裝時跑出一堆奇怪的 ansible playbook 語法錯誤,請參照上面表格中的 Ansible-core 版本
安裝對應的版本。使用錯誤的 Ansible-core
版本會連安裝腳本都跑不起來,pip
安裝指令如下:
1 | # Ansible Tower 3.8.4 |
這邊我的做法是:
- 把
RHEL7
上面的Ansible Tower
備份起來 - 備份檔傳到
RHEL8
這台主機的Ansible Tower 3.8.4
資料夾底下 - 在
RHEL8
這台主機的Ansible Tower 3.8.4
資料夾底下跑還原命令
就可以看到安裝好的 Ansible Tower 3.8.4
,裡面所有在 RHEL7
這台機器上的 Ansible Tower
設定好的 templates
都完好如初。
接下來照著我上述所提的安裝步驟,在 RHEL8
這台機器上下載 AAP2.0
安裝檔,使用跑 ./setup.sh
的方式安裝到 AAP2.0
,這邊連資料庫都不用備份還原。
可能會有朋友疑問:AAP2.0
限制一定要安裝在 RHEL8
上面嗎?
因為 Ansible Playbook
執行環境在 AAP2.0
上預設都是用容器去跑,原因會在之後的介紹文分享,總之這個環境要能夠透過 podman
指令去拉 Red Hat images
,更多的安裝條件可以參考這份安裝指南: Ansible Automation Platform 2.0 ea Installation Guide。
直接透過安裝的方式升級為 AAP2.0
會遇到第一個問題,就是 TLS
證書要重簽,不然打開瀏覽器會看到以下畫面:

使用 OpenSSL 自建 CA,然後簽發憑證,我是參考 [Centos7] SSL自簽憑證+APACHE+Selinux 重新複習如何在地端環境自簽憑證的,
在 Mac OS 的Chrome 瀏覽器還是不允許自簽憑證,所以會看到這個 error: NET::ERR_CERT_INVALID
,如果是要長期使用的環境,會建議把憑證匯進瀏覽器的 憑證管理小精靈
,允許這個憑證,詳情請參考我之前寫過的 vcenter 上傳失敗解法。
但是這邊因為我太懶了只想快點看到畫面,所以我參考了這篇 No “Proceed Anyway” option on NET::ERR_CERT_INVALID in Chrome on MacOS ,解決方式如下:
1 | * Right click, select inspect element |

讚啦!直接可以看到跟 Ansible Tower 3.8.4
一樣的 Templates
,連資料庫 restore
都不用做,因為資料庫的欄位和結構都是一樣的。
今天的分享就到這裡,感謝收看。
♞ Reference
♞ Automation Controller
♞ How to uninstall Ansible Tower
♞ Ansible Automation Platform 2.0 ea Installation Guide
♞ Red Hat Ansible Tower Upgrade from 3.5 to 3.8 – when running setup.sh is not enough – or: I have made fire!
♞ Upgrading an Existing Tower Installation
♞ Backing Up and Restoring Tower
♞ Centos7 SSL自簽憑證+APACHE+Selinux
♞ vcenter 上傳失敗解法
♞ No “Proceed Anyway” option on NET::ERR_CERT_INVALID in Chrome on MacOS