質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ansible

Ansibleは、Python で書かれたサーバーの設定を管理するための 構成管理ツールです。

Q&A

解決済

1回答

2578閲覧

Ansible TowerへのRoleインストールについて

退会済みユーザー

退会済みユーザー

総合スコア0

Ansible

Ansibleは、Python で書かれたサーバーの設定を管理するための 構成管理ツールです。

0グッド

0クリップ

投稿2020/06/10 08:40

前提・実現したいこと

Ansible Galaxy/GitHubで公開されているRolesをAnsible Towerで利用したいです。
以下の通り、同じRolesを取得してもAnsible Engine/TowerでそれぞれRolesの名前(ディレクトリ名)が異なってしまうことを確認しております。
Ansible Engineで使っていたPlaybookをそのままAnsible Towerで使えるよう、ディレクトリ名を同じにしたいです。

確認したこと、不明点

手元にAnsible Serverが2台あります。1台はAnsible Engineのみ動いており、もう1台ではAnsible Towerが稼働しています。

Ansible Engineの場合

以下でRolesをインストールすると

$ ansible-galaxy install hoge-roles

/root/.ansible/roles/hoge-roles にRolesが配置されました。

https://ansible.github.io/workshops/exercises/ansible_rhel/1.7-role/README.ja.html
→「Roles は定義されたディレクトリ構造に従い、最上位ディレクトリ名で区別されます。」
とあり、PlaybookでRolesを指定する際、以下のような記載になる認識です。

yaml

1 roles: 2 - hoge-roles
Ansible Towerの場合

Ansible Towerの「プロジェクト」でSCMタイプを「Git」にすることで、GitHubからRolesを取得できるかと思います。
ただし私の環境でこれをやるとRolesが以下のpathに配置されます。(Rolesに”12_”が付加されたディレクトリ名になるようです)

 /var/lib/awx/projects/_12__hoge-roles

このため、Ansible Engineで使っていたPlaybookをAnsible Towerで使おうとすると

yaml

1 roles: 2 - _12__hoge-roles

に書き換えなくてはいけなくなるのではないかと考えました。

書き換えずに済むよう、Ansible Towerの「プロジェクト」でのRoles配置先ディレクトリ名に”12_”が付加されないようにする方法はないか?(「/var/lib/awx/projects/_12__hoge-roles」ではなく「/var/lib/awx/projects/hoge-roles」に配置されるようにできないか?)と思いました。

補足情報(FW/ツールのバージョンなど)

Ansible Engineのみのホスト
$ ansible --version ansible 2.9.7 config file = /etc/ansible/ansible.cfg configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules'] ansible python module location = /usr/lib/python2.7/site-packages/ansible executable location = /usr/bin/ansible python version = 2.7.5 (default, Apr 2 2020, 13:16:51) [GCC 4.8.5 20150623 (Red Hat 4.8.5-39)]
Ansible Tower稼働ホスト
< Tower 3.7.0 > --------------- \ ^__^ \ (oo)\_______ (__) A )/\ ||----w | || || Ansible 2.9.7

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

requirements.yml ファイルを使って読み込むようにするのはいかがでしょう。
書き方はこちらのドキュメントをご確認ください。

https://docs.ansible.com/ansible/latest/galaxy/user_guide.html

この role を呼び出す側の playbook 一式も SCM プロジェクトとしまして、
そのプロジェクトに roles/requirements.yml として含めるようにしますと
Tower はジョブテンプレートを実行する際に自動的に ansible-galaxy コマンドを発行して読み込んでくれます。

https://docs.ansible.com/ansible-tower/latest/html/userguide/projects.html#ansible-galaxy-support

投稿2020/06/10 09:38

編集2020/06/10 09:40
SugiTK

総合スコア495

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/06/11 05:30

ご回答ありがとうございます!
SugiTK

2020/06/11 05:34

やってみてうまくいったら教えてください :)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問