Memo/Ansible/AWX

http://dexlab.net/pukiwiki/index.php?Memo%2FAnsible%2FAWX
 

AWX: オープンソースのTower

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

  • ansible/awx: AWX Project
    • 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の背後に置く場合


バージョンアップ

  • PostgreSQLのバックアップ
  • コンテナの更新
    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.  
    15. dockerhub_version="1.0.5"
    16. postgres_data_dir="/var/lib/pgdocker"
    17. 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.  
    4. # DBディレクトリをバックアップ
    5. sudo mv /var/lib/pgdocker /var/lib/pgdocker.$(date +%Y%m%d-%H%M%S)
    6.  
    7. # 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.1.x
    • job結果のリアルタイム更新が動作しない。v1.0.2で直ったかも。
    • playbookの並列実行ができない。
    • jobのslack通知がされない。UIの問題で通知onにしても、リロードするとoffになったままになる。

LDAP認証

  • 15. Setting up LDAP Authentication — Ansible Tower Administration Guide v3.2.0
    • ユーザ/グループを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

インストール

  • geerlingguy/ansible-role-awx: Ansible Role - AWX ansible roleがあるので使わせて頂く
    • デフォルトでは「/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/awx postgres_data_dir: /var/lib/pgdocker dockerhub_version: 1.0.5 # OR 1.0.5.32

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-05-16 (水) 15:55:46 (36d)