Ansible-Tower-建置與 Ansible

Ansible Tower and Ansible

Ansible Tower
本文記錄筆者安裝 Ansible Tower 過程以及簡述 Ansible 與他的好夥伴 Ansible Tower 的關係。


Ansible 是什麼? Ansible Tower 和 Ansible 有什麼關係

社群的 Ansible 大大凍仁翔有整組的文章在講 Ansible 是什麼,總之掌握以下兩點:

  1. ssh 會通, Ansible 丟誒通
  2. Shell 會寫,花時間就會寫 Ansible

除了 GitHub 上面可以找到超多 Ansible 範本,作業不怕沒地方抄之外,還有 Ansible 銀河 可以找到更多有系統歸類的 Ansible Playbook !

那 Ansible Tower 到底跟 Ansible 有什麼關係呢? Ansible Tower 就是以 Web 為工具,可以用視覺介面管理你的 Ansible Playbooks。

Ansible Tower 應用場景

舉個應用場景來說,假設今天我想要透過 vSphere API 去開一台新的 VM,我可以寫個 Ansible Playbook,透過提供 vcenter 節點帳號密碼的方式,用 vSphere 的 Ansible 模組去開一台 VM,如下圖右方案一。

可以參考此部落格實踐 Ansible Playbook
upload successful
圖片來源

但是假設我今天要開的機器有一百多種 VM ,每一種 VM 都有各自的設定檔案,此時我就會需要一個介面來幫我納管這些腳本,Ansible Tower 就會是你的豪夥伴。

Ansible Tower 安裝過程

環境
OS version: Red Hat Enterprise Linux release 8.2 (Ootpa)
Ansible Tower version: 3.7.1

可以參考 Ansible Tower 安裝說明文件 完成安裝過程。

1
2
3
4
5
6
7
8
9
10
11
# 拿最新的版本,在這個安裝的網站可以拿到各種版本
[hazel@bastion ansible]$ wget https://releases.ansible.com/ansible-tower/setup/ansible-tower-setup-latest.tar.gz

[hazel@bastion ansible]$ tar xvzf ansible-tower-setup-latest.tar.gz

[hazel@bastion ansible]$ rm ansible-tower-setup-latest.tar.gz

[hazel@bastion ansible]$ cd ansible-tower-setup-3.7.1-1

# 更改設定檔案
[hazel@bastion ansible-tower-setup-3.7.1-1]$ vim inventory

inventory 檔案

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
[tower]
localhost ansible_connection=local

[database]

[all:vars]
admin_password='$<Admin Password 必填>'

pg_host=''
pg_port=''

pg_database='awx'
pg_username='awx'
pg_password='$<Pg Password 必填>'
pg_sslmode='prefer' # set to 'verify-full' for client-side enforced SSL

rabbitmq_username=tower
rabbitmq_password='awx'
rabbitmq_cookie=cookiemonster

# Isolated Tower nodes automatically generate an RSA key for authentication;
# To disable this behavior, set this value to false
# isolated_key_generation=true


# SSL-related variables

# If set, this will install a custom CA certificate to the system trust store.
# custom_ca_cert=/path/to/ca.crt

# Certificate and key to install in nginx for the web UI and API
# web_server_ssl_cert=/path/to/tower.cert
# web_server_ssl_key=/path/to/tower.key

# Server-side SSL settings for PostgreSQL (when we are installing it).
# postgres_use_ssl=False
# postgres_ssl_cert=/path/to/pgsql.crt
# postgres_ssl_key=/path/to/pgsql.key

更改設定後

1
2
# 啟動安裝腳本,這個安裝腳本會跑安裝的 Ansible Playbook
[hazel@bastion ansible-tower-setup-3.7.1-1]$ sudo ./setup.sh

接著打開瀏覽器輸入安裝機器的 IP:443 or FQDN:443 即可看到 Ansible Tower Console:

Ansible Tower Console

Reference