Memo/Ansible/AWX

http://dexlab.net/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の背後に置く場合


バージョンアップ

  1. # 既存コンテナの停止とイメージ削除
  2. sudo docker stop $(sudo docker ps -aq)
  3. sudo docker rm $(sudo docker ps -aq)
  4. sudo docker rmi -f $(sudo docker images | grep awx | awk '{ print $3 }')
  5.  
  6. # 再インストール
  7. cd /opt/awx/
  8.  
  9. # 最新のリリースバージョンを確認
  10. sudo git fetch
  11. sudo git tag
  12. # git repoの更新をする場合(同じバージョンを使いたい場合はしない)
  13. sudo git checkout 1.0.6
  14. dockerhub_version="1.0.5"
  15. postgres_data_dir="/var/lib/pgdocker"
  16. 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のバックアップ後、初期化
    1. # docker停止
    2. sudo docker stop $(sudo docker ps -aq)
    3. # DBディレクトリをバックアップ
    4. sudo mv /var/lib/pgdocker /var/lib/pgdocker.$(date +%Y%m%d-%H%M%S)
    5. # installer/install.yml を再実行

バックアップ

  • PostgreSQLのバックアップ
  1. sudo docker exec postgres bash -c "pg_dump --clean --create -U awx -d awx | gzip > /var/lib/postgresql/data/awx.pg.$(date +%w).gz"
  2. # /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
  • 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認証に失敗する場合、以下を見ると分かる
  1. sudo docker logs -f awx_web

ログを見る

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

Docker Container

  • 以下のコンテナが起動した
  1. sudo docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Ports}}"
  2. CONTAINER ID        IMAGE                        PORTS
  3. 6679d27d96c0        ansible/awx_task:1.0.5       8052/tcp
  4. a641e866bcae        ansible/awx_web:1.0.5        0.0.0.0:80->8052/tcp
  5. 909dc2f013aa        memcached:alpine             11211/tcp
  6. 179ed843c916        ansible/awx_rabbitmq:3.7.4   4369/tcp, 5671-5672/tcp, 15671-15672/tcp, 25672/tcp
  7. 5f12da648e69        postgres:9.6                 5432/tcp
  • 何らかの理由でコンテナが落ちてしまった場合に、再起動させる
    1. cd /opt/awx/
    2. 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」がデフォルトだが、動作しない事も多い。
  1. awx_repo_dir: /opt/awxpostgres_data_dir: /var/lib/pgdockerdockerhub_version: 1.0.5 # OR 1.0.5.32

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-08-17 (金) 14:26:05 (4d)