Ansible: AWX導入(19.5.0) 【諦め】

RedHatのセンス??????

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インストールしたらすんなりうまくいったので、最初からそうすればよかった。
  • GitLabとの同期うまくいかない件
    • 格闘中
  • アングリーポテトさんこわいので変えたい

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#