你是否厌倦了每次在Ansible主控制器上手动运行Ansible playbooks和Ansible命令?为什么不使用Web界面,通过Ansible AWX使生活变得更轻松呢?
AWX是由Red Hat赞助的开源Web应用程序,提供用户界面和API来执行所有Ansible任务。在本教程中,您将学会在Ubuntu系统上安装Ansible AWX,并使用Ansible AWX管理清单。
通过Ansible AWX,提升您的自动化效率吧!
先决条件
本教程包含逐步说明。如果您想一起操作,请确保您已经准备好以下内容:
- An Ansible控制器主机 – 本教程使用Ubuntu 20.04.4 LTS版本上的Ansible v2.11.7。
- Docker – 本教程在Ubuntu 20.04.4 LTS版本上使用Docker v19.03.11。
- Python v3.6 或更新版本已安裝在您的 Ansible 控制主機上 – 本教程使用 Python v3.8.10。
- A GitHub account with one private and one public repository created in GitHub that you will use to store Ansible Playbook.
安裝依賴項並配置 Ansible AWX
Ansible AWS 是建立 Ansible Tower 的基礎。Ansible AWX 使 IT 團隊更容易使用 Ansible 進行測試;在實驗室、開發或其他 POC 環境 中。
由於 Ansible AWS 預設不會安裝在您的 Linux 系統上,因此您首先必須安裝 Ansible AWS,以便您可以將其作為 Ansible Playbook 使用的多容器運行。
1. 執行下面的每個命令以更新系統套件並安裝 docker-compose-plugin。

2. 接下來,執行以下命令來驗證安裝在您的機器上的 Docker Compose 版本。
下面的輸出顯示最新的 Docker Compose 版本 v2.5.0 已安裝,確認 Docker Compose 已正確安裝。

3. 執行下面的每個命令來安裝作為與 Ansible AWX 一起工作的先決條件的套件。



4. 現在,執行以下命令從公共 Git 存儲庫下載 (wget) AWX 套件存檔,然後解壓縮該套件。

5. 執行以下命令更改 (cd) 到 AWX 安裝目錄 (awx-17.1.0/installer/),並生成隨機密碼 (pwgen)。
您的 AWX 安裝目錄 (awx-17.1.0/installer/) 可能因您機器上安裝的 Ansible AWX 版本而異。
記下生成的密碼,因為您將在 AWX 控制台中將其用作秘密金鑰。

6. 最後,在您的文本編輯器中,打開 AWX 安裝程序目錄內的 inventory 檔案(awx-17.1.0/installer/)。inventory 檔案包含 AWX 的配置,將在登錄 AWX UI 時使用。
在 inventory 檔案中,將 admin_password 的值更改為 password,將 secret_key 更改為在第五步生成的隨機密碼。

使用Ansible Playbook安裝和啟動Ansible AWX
您已經正確配置了Ansible AWX,現在可以使用Ansible Playbook(install.yml)來安裝它。 install.yml是您提取的Ansible AWX套件中附帶的Ansible Playbook。此Playbook包含執行命令以構建Docker映像和運行多個容器的任務。
1. 調用下面的ansible-playbook命令來運行install.yml Ansible Playbook。
如下所示,一些任務的狀態已更改,表明AWX主機未處於正確狀態並已修改為運行該命令。
相反,其他任務顯示為ok狀態,這表示它們不需要進行任何更改。

2. 接下來,運行下面的docker命令以列出所有可用的Docker容器。
下面的輸出顯示運行中的容器(awx_tasks,awx_redis,awx_web和awx_postgres),確認AWX已正確安裝。

3. 最後,打開您喜歡的瀏覽器,導航到Ansible AWX(https://AWX-HOST-IP:80)。請確保用您Ansible主機的IP地址替換AWX-HOST-IP。如果一切順利,您將在瀏覽器上看到Ansible AWX登錄頁面,如下所示。
提供您的用戶名(admin)和密碼(password),然後點擊登錄以訪問Ansible AWX儀表板。這些憑據是您在“安裝依賴項並配置Ansible AWX”部分的最後一步中配置的憑據。
AWX會自動為HTTPS通訊安裝一個自簽名憑證,可能需要您在瀏覽器中接受。

登錄後,您的瀏覽器會重定向到AWX儀表板,如下所示。

創建和管理清單
現在您可以訪問Ansible AWX儀表板,隨時進行任務自動化。在本教程中,您將在Ansible AWX儀表板中管理多個Ansible組件。但首先,您需要創建和管理清單。
1. 在AWX儀表板上,點擊清單,以打開存儲在Ansible AWX中的清單列表。默認情況下,會有一個演示清單,如下所示。
忽略演示清單,並點擊添加下拉按鈕以創建新的清單。

2. 接下來,在“創建新清單”頁面上指定以下參數,以配置您在Ansible AWX儀表板中的第一個清單:
- 名稱 – ATA Learning(您可以根據需要提供名稱)。
- 描述 – 描述清單,這是可選的,但有助於識別許多其他清單。
- 組織 – 選擇默認選項。AWX創建了一個默認組織,但您也可以創建自己的組織。
一旦您指定了上述所有細節,請點擊下面顯示的保存按鈕。

3. 最後,點擊發票存貨選項卡(左側面板)以驗證新建立的存貨(ATA Learning)是否存在,如下所示。

創建並執行 Ansible 任務
您已成功配置您的存貨,但除非您使用工作調用它,否則它現在毫無用處。工作是 AWX 的一個實例,啟動 Ansible playbook 以執行對主機存貨的任務。當然,在您能夠調用工作之前,您首先必須創建一個:
要創建 Ansible 並運行 Ansible 工作:
1. 在 GitHub 存儲庫中創建一個 YML 文件,並複製/粘貼以下 playbook。您可以根據需要命名 YML 文件,但本教程使用名為ata.yml的 playbook。

2. 轉到您的 Ansible AWX 控制台,單擊左側面板上的 Projects 以訪問可用項目的列表。在創建工作之前,您需要一個項目。
忽略 Demo 項目,單擊添加按鈕以創建新項目。

3. 提供新項目的詳細信息,然後單擊保存以保存新項目:
- 名稱 – 專案名稱可以隨意取,但本教程將專案名稱設定為myproject。
- 描述 – 與庫存一樣,添加描述是可選的,但有助於區分不同的專案。
- 組織 – 與庫存類似,只需為組織選擇默認。
- 源代碼控制凭據類型 – 選擇Git作為您的SCM。
- 源代碼控制URL – 指定您的源代碼的GitHub URL。

4. 創建項目後,在左側的側邊欄中單擊“模板”以訪問所有可用模板,如下所示。
在模板頁面上,單擊添加下拉按鈕,選擇添加作業模板選項以創建模板。

5. 現在,按照以下詳細信息進行指定,然後在底部點擊“保存”以保存新的作業模板:
- 名稱 – 將作業模板的名稱設定為您喜歡的名稱,但本教程將作業模板的名稱設定為myjob。
- 作業類型 – 設置作業將採取的操作(運行)。
- 項目 – 選擇您在第三步創建的項目(myproject)。
- 庫存 – 選擇您在“創建和管理庫存”部分的第二步中創建的庫存(ATA Learning)。
- 操作手冊– 選擇您在“創建和運行 Ansible 作業”部分(ata.yml)中創建的操作手冊。

6. 最後,在模板頁面上,使用以下方式啟動新創建的作業:
- 點擊作業(myjob)以訪問作業的信息頁面。
- 切換到 詳細信息 標籤,在那裡您將看到作業的詳細信息。
- 點擊頁面底部的 啟動 以啟動作業。

如下所示,作業在本地主機上成功運行並列出了在操作手冊(ata.yml)中指定的目錄中的所有文件。

結論
在本教程中,您已經利用 Ansible AWX 開源工具來管理 Ansible 操作手冊、庫存和操作手冊,並使用單一 UI 面板。您已經涉及到運行 Ansible 作業,例如在特定目錄中列出文件。
既然您對 Ansible AWX 軟件有了扎實的了解,您是否願意使用 Ansible AWX 來運行所有未來的 Ansible 操作手冊?也許您想通過添加 cron 作業來自動執行任務?