AWXをインストールするとプロジェクトが保存される
/var/lib/awx/projects
ディレクトリがdockerを動作させているホスト側には標準でありません。その解決方法について書いておきます。
事象
ホスト側に /var/lib/awx/projects
ディレクトリが無かったのでprojectsディレクトリと、その配下に手動でPlaybookを作りました。
SCMタイプ
を手動にしても手動で作成したプロジェクトが表示されませんでした。
原因
原因は、インストールで使用する inventoryファイル
で明示的に指定しないとコンテナ内にボリュームをマウントしてくれないためです。
Playbookを見ると project_data_dir
が定義されていない場合は空になっていることが分かります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
(snip) - name: Activate AWX Web Container docker_container: name: awx_web state: started restart_policy: unless-stopped image: "{{ awx_web_docker_actual_image }}" volumes: > {{ [project_data_dir + ':/var/lib/awx/projects:rw'] if project_data_dir is defined else [] + [ca_trust_dir + ':/etc/pki/ca-trust:ro'] if ca_trust_dir is defined else [] }} (snip) - name: Activate AWX Task Container docker_container: name: awx_task state: started restart_policy: unless-stopped image: "{{ awx_task_docker_actual_image }}" volumes: > {{ [project_data_dir + ':/var/lib/awx/projects:rw'] if project_data_dir is defined else [] + [ca_trust_dir + ':/etc/pki/ca-trust:ro'] if ca_trust_dir is defined else [] }} (snip) |
解決
(1) project_data_dir
のコメントアウトを削除します。
1 2 3 4 5 6 7 8 9 |
[root@localhost awx]# cd installer/ [root@localhost installer]# vi inventory (snip) # AWX project data folder. If you need access to the location where AWX stores the projects # it manages from the docker host, you can set this to turn it into a volume for the container. #project_data_dir=/var/lib/awx/projects project_data_dir=/var/lib/awx/projects (snip) |
(2) install.yml
を実行します。
1 2 |
[root@localhost installer]# ansible-playbook install.yml -i inventory |
(3) これで手動作成のPlaybookが登録できます 🙂