Memo/Ansible/AWX

https://dexlab.net:443/pukiwiki/index.php?Memo/Ansible/AWX
 

AWX: オープンソースのTower

有償のAnsible Towerをstable版とするなら、AWXはdev版。

  • AWX Project FAQ | Ansible.com
  • Aapach 2.0ライセンス
  • Webベースのユーザーインターフェイス
  • REST API
  • Ansibleの上に構築されたタスクエンジン
  • releases バージョンを使うのが良さそうだが、不具合はたくさんある。タグは適当に打ってるようで、変更点等が書いて無い
  • Docker Hub のdocker imageが使われる。
    • ansible/awx_web
    • ansible/awx_task
    • ansible/awx_rabbitmq
    • memcached:alpine
    • postgres
  • 記事
  • Ansible Tower版と異なる点
  • docker-composeで構成されている
  • dockerのため、ログがホストOS上に残らない。dockerコンテナ内で閉じている。

ロードバランサ、proxyの背後に置く場合


バージョンアップ

# 既存コンテナの停止とイメージ削除
sudo docker stop $(sudo docker ps -aq)
sudo docker rm $(sudo docker ps -aq)
sudo docker rmi -f $(sudo docker images | grep awx | awk '{ print $3 }')

# 再インストール
cd /opt/awx/

# 最新のリリースバージョンを確認
sudo git fetch
sudo git tag
# git repoの更新をする場合(同じバージョンを使いたい場合はしない)
sudo git checkout 1.0.6
dockerhub_version="1.0.5"
postgres_data_dir="/var/lib/pgdocker"
sudo ansible-playbook -i installer/inventory installer/install.yml -e "postgres_data_dir=${postgres_data_dir} dockerhub_version=${dockerhub_version}"
  • Upgradingのまま進まない場合は、awx_web,awx_taskコンテナをstop/startしてみる。
  • 不具合でバージョンアップすら出来ない場合、DBのバックアップ後、初期化
    # docker停止
    sudo docker stop $(sudo docker ps -aq)
    # DBディレクトリをバックアップ
    sudo mv /var/lib/pgdocker /var/lib/pgdocker.$(date +%Y%m%d-%H%M%S)
    # installer/install.yml を再実行

バックアップ

  • PostgreSQLのバックアップ
sudo docker exec postgres bash -c "pg_dump --clean --create -U awx -d awx | gzip > /var/lib/postgresql/data/awx.pg.$(date +%w).gz"
# /var/lib/pgdocker/awx.pg.*.gz が出来るので適当にコピー

バージョンの確認

  • Webコンソール > About AWX をクリック

不具合

  • アップデート
  • v1.0.6.5
  • 起動しない
  • v1.0.5.x
    • LDAP認証を使っていても、Basic認証が出る事がある。APIブラウザーのBasic認証が出ているようだ。
    • jobの並列実行は直っている
    • jobのリアルタイム更新もALBを使えばOK
    • jobのリアルタイム更新が止まる事がある。awx_taskを再起動すると直った。
      sudo docker restart awx_task
  • v1.0.2.x
  • v1.0.1.x
  • job結果のリアルタイム更新が動作しない。v1.0.2で直ったかも。
  • playbookの並列実行ができない。
  • jobのslack通知がされない。UIの問題で通知onにしても、リロードするとoffになったままになる。
  • docker PostgreSQLのデータディレクトリが 「/var/lib/postgresql/data」 から 「/var/lib/postgresql/data/pgdata」へ変わった。バージョンアップする時はpg_dump等でバックアップしておこう。
  • データディレクトリを移動すれば起動するようになる
  • docker PostgreSQLのデータディレクトリが「/tmp/pgdocker」に置いてあるせいで、tmpwatch(10日)で消されて壊れる不具合。以下が良いかもしれない。
  • postgres_data_dir: /var/lib/pgdocker

LDAP認証

  • ユーザ/グループをLDAPで管理できる。ユーザ認証だけLDAPで、権限/グループはAWXで管理も可能
  • ユーザの初回ログイン時にLDAPに接続して、AWX上にユーザを作成する。そのため、 LDAP GROUP SEARCHが未設定だとユーザは作成されるが、グループ検索に失敗してログインできなかった
  • LDAP認証に失敗する場合、以下を見ると分かる
sudo docker logs -f awx_web

ログを見る

  • webのアクセスログを見る
sudo docker logs -f awx_web

Docker Container

  • 以下のコンテナが起動した
sudo docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Ports}}"
CONTAINER ID        IMAGE                        PORTS
6679d27d96c0        ansible/awx_task:1.0.5       8052/tcp
a641e866bcae        ansible/awx_web:1.0.5        0.0.0.0:80->8052/tcp
909dc2f013aa        memcached:alpine             11211/tcp
179ed843c916        ansible/awx_rabbitmq:3.7.4   4369/tcp, 5671-5672/tcp, 15671-15672/tcp, 25672/tcp
5f12da648e69        postgres:9.6                 5432/tcp
  • 何らかの理由でコンテナが落ちてしまった場合に、再起動させる
    cd /opt/awx/
    sudo ansible-playbook -i installer/inventory installer/install.yml

インストール

  • デフォルトでは「/root/awx」にgit cloneされるが、「/opt/awx」に変更
  • デフォルトのpostgresql datadirが「/tmp」上にあり10日で削除されて壊れるため、変更
  • デフォルトのBasic認証ID/Pass: admin/password
  • dockerhub_version: ansible/awx_web のバージョン参照。「latest」がデフォルトだが、動作しない事も多い。
awx_repo_dir: /opt/awxpostgres_data_dir: /var/lib/pgdockerdockerhub_version: 1.0.5 # OR 1.0.5.32

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-09-15 (土) 07:31:37 (39d)