CentOS 7.9に AWX 19.5.0導入試みたところ、とても苦戦している。
⇒ 諦めて17.1.0に切り替えたので、以下の内容は最新版と格闘して敗北したただの日記です。
苦戦ポイント
- Python3.8問題
- Python3.8以上を求めてくるので、最新のPython3.9.9を導入するも
Makefile中に「python3.8」と決め打ちされているため イメージビルドでこけた- Makefile中の3.8⇒3.9に書き換えたらうまくいくかと思ったけれど、全然うまくいかず…
結局3.8インストールしたらすんなりうまくいったので、最初からそうすればよかった。
- Makefile中の3.8⇒3.9に書き換えたらうまくいくかと思ったけれど、全然うまくいかず…
- Python3.8以上を求めてくるので、最新のPython3.9.9を導入するも
- GitLabとの同期うまくいかない件
- 格闘中
- アングリーポテトさんこわいので変えたい
- awx-logosのSVGファイルと差し替え
Playbook
私の中で空前のAnsibleブームなので、Playbook作って構築。
※Docker、Python3.8、Ansibleは別roleで導入。
awx/README.md at devel · ansible/awx · GitHub
UIクリーンアップはPlaybookから外した方がいいカモ。
- name: check awx image exists
shell:
cmd: "docker image ls -a | grep quay.io/awx/awx_devel"
changed_when : false
failed_when: false
register: check_awx_exist
- name: install awx
include_tasks: awx_install.yml
when: check_awx_exist.rc != 0
- name: run awx
shell:
cmd: |
export PATH=${PATH}:/usr/local/bin ; \
make docker-compose COMPOSE_UP_OPTS=-d COMPOSE_TAG={{ awx.version }}\
&& docker exec tools_awx_1 make clean-ui ui-devel
chdir: "{{ awx.directory }}"
---
- name: create awx directory
file:
path: '{{ item }}'
mode: 0775
state: directory
with_items:
- "{{ awx.directory }}"
- name: clone awx_repos
git:
clone: yes
dest: "{{ awx.directory }}"
repo: "{{ awx.repo }}"
version: "{{ awx.version }}"
force: yes
- name: set inventory
lineinfile:
dest: "{{ awx.directory }}/tools/docker-compose/inventory"
regexp: "{{ item.regexp }}"
line: "{{ item.line }}"
with_items:
- { regexp: "^pg_password=", line: "pg_password={{ awx.pg_password }}" }
- { regexp: "^broadcast_websocket_secret=", line: "broadcast_websocket_secret={{ awx.broadcast_websocket_secret }}" }
- { regexp: "^secret_key", line: "secret_key={{ awx.secret_key }}" }
- { regexp: "^awx_image=", line: "awx_image=quay.io/awx/awx_devel:{{ awx.version }}" }
- name: build docker image
shell:
cmd: |
export DEVEL_IMAGE_NAME=quay.io/awx/awx_devel:{{ awx.version }} ; \
export PATH=${PATH}:/usr/local/bin; \
make docker-compose-build
chdir: "{{ awx.directory }}"
管理ユーザ作成
構築後、adminってユーザが自動的に作成されているのだが、パスワードが不明(設定方法も不明)のため、
一旦別の管理アカウントを作成してからadminのパスワードを変更。
[root@***** awx]# docker exec -ti tools_awx_1 awx-manage createsuperuser
Username (leave blank to use 'root'): admin
Error: That username is already taken.
Username (leave blank to use 'root'): root
Email address:
Password:
Password (again):
Superuser created successfully.
[root@***** awx]#
SVG差し替え
GitHub – ansible/awx-logos から差し替え用のSVGファイルを入手して差し替え
さよならアングリーポテト🥔
Gitlab 連携失敗
Gitlabとの連携設定をして、同期を試みるもエラーが出力されて同期できない。
ERRO[0000] error loading cached network config: network "podman" not found in CNI cache
WARN[0000] falling back to loading from existing plugins on disk
Error: error configuring network namespace for container 3b9c65f4536052019093a7e194bbc87f731c1fc4cab4d11df4eb9d406f64ceb6: error adding pod ansible_runner_4_ansible_runner_4 to CNI network "podman": running [/usr/sbin/iptables -t nat -A POSTROUTING -s 10.88.0.4 -j CNI-9f694cc5d9444c8816fff2f0 -m comment --comment name: "podman" id: "3b9c65f4536052019093a7e194bbc87f731c1fc4cab4d11df4eb9d406f64ceb6" --wait]: exit status 4: iptables v1.8.4 (nf_tables): RULE_APPEND failed (Invalid argument): rule in chain POSTROUTING
解釈あっていれば、コンテナ内でFirewallの設定がうまくいってない様子?
ひとまず AWXコンテナの中のPodmanが悪いみたいなので、AWXコンテナに入ってみるも。
うーん。なるほどよくわからん状態。
bash-4.4# uname -n
awx_1
bash-4.4#
bash-4.4# podman network ls
NETWORK ID NAME VERSION PLUGINS
2f259bab93aa podman 0.4.0 bridge,portmap,firewall,tuning
bash-4.4#
bash-4.4# podman container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bash-4.4#
bash-4.4# podman image ls -a
REPOSITORY TAG IMAGE ID CREATED SIZE
quay.io/ansible/awx-ee latest 9d3863f11a61 2 days ago 1.39 GB
bash-4.4#
bash-4.4# cat /etc/cni/net.d/87-podman.conflist
{
"cniVersion": "0.4.0",
"name": "podman",
"plugins": [
{
"type": "bridge",
"bridge": "cni-podman0",
"isGateway": true,
"ipMasq": true,
"hairpinMode": true,
"ipam": {
"type": "host-local",
"routes": [{ "dst": "0.0.0.0/0" }],
"ranges": [
[
{
"subnet": "10.88.0.0/16",
"gateway": "10.88.0.1"
}
]
]
}
},
{
"type": "portmap",
"capabilities": {
"portMappings": true
}
},
{
"type": "firewall"
},
{
"type": "tuning"
}
]
}
bash-4.4#