VagrantでAnsible Towerの仮想マシンを作りましょう

VagrantでAnsible Towerの仮想マシンを作りましょう

自分の環境に合わせて、Vagrantfileを変更し、vagrant upするだけで
Ansible Towerが使える状態になります。
所要時間、15 - 30分。

ソースはgithub上に公開しましたので、最初にgit cloneしてください。

git clone https://github.com/jian-feng/vagrant-ansible-tower
cd vagrant-ansible-tower

テスト済みバージョンの組み合わせ

自分の環境に合わせて調整

Vagrantfileを自分の環境に合わせて変更します。

vi Vagrantfile

Ansible Tower v3.2.3(2018/4/3時点最新版)をインストールするなら、
$hostname$private_ipだけを変えれば良い。
異なるバージョンをインストールするなら、download_urlinstall_fileも変更してください。

Vagrantfile
$hostname = "tower-3-2-3"
$private_ip = "192.168.33.40"
$tower_bundle_download_url = "https://releases.ansible.com/ansible-tower/setup-bundle/ansible-tower-setup-bundle-3.2.3-1.el7.tar.gz"
$tower_bundle_install_file = "ansible-tower-setup-bundle-3.2.3-1.el7.tar.gz"

試用版ライセンスの準備(後でも良い)

https://www.ansible.com/licenseにアクセスし、試用版ライセンスファイルを申請しましょう。簡単な情報入力して、後ほど、ライセンスファイルがメールで送ってくれます。

Workflow機能を使いたい場合は、"FREE ANSIBLE TOWER TRIAL - ENTERPRISE FEATURES"を選択してください。

Towerエディションの違いは、ここをご参照ください。

ライセンスファイルが届いたら、lisence.txtにリネームして、最初にgit cloneしたディレクトリ(vagrant-ansible-tower)においてください。
自動インストールの際に、このライセンスファイルをTowerにセットしてくれます。

ライセンスファイルの届くのが遅れるかも知れませんので、先に進んでも大丈夫です。あとで、ブラウザでAnsible TowerのWeb GUIにアクセスしてライセンスをアップロードできます。

いよいよ実行です

vagrant upを実行するだけです。

暫く(15 - 30分)すると、メッセージ"The setup process completed successfully"が出れば、Ansible Towerが使える状態となります。

default: PLAY RECAP *********************************************************************
default: localhost                  : ok=131  changed=62   unreachable=0    failed=0
default: The setup process completed successfully.
default: Setup log saved to /var/log/tower/setup-xxxxxx.log

動作確認

  • ブラウザで https://{前述の$private_ip} へアクセスしてください。
    • USER: admin
    • PASS: password

ブラウザでアクセスの際に“この接続ではプライバシーが保護されません”という警告が表示されます。これは、Ansible Towerがデフォルトで自己証明書を使っているから。優しく許可してあげてください。

  • プロジェクトを作成します。

プロジェクトタブにて、新規プロジェクトを以下のように作成します。

項目 設定値
名前 demo
SCMタイプ 手動
PLAYBOOKディレクトリー demo

※記述以外の設定は初期値のままで構いません。

  • ジョブテンプレートを作成します。

テンプレートタブにて、新規ジョブテンプレートを以下のように作成します。

項目 設定値
名前 hello
インベントリ Demo Inventory
プロジェクト demo
PLAYBOOK hello.yml
認証情報 Demo Credential

※記述以外の設定は初期値のままで構いません。

  • ジョブテンプレートを実行します。

テンプレートタブにて、先程作成したジョブテンプレートを実行して、
実行ステータスが”成功”であることを確認します。

続きは...

仮想マシン内のディレクトリ/var/lib/awx/projectsがホスト側の./projectsにSyncしていますので、ホスト側の好きなエディタで./projects/配下にサブディレクトリを作って、Playbookを開発すれば、Ansible Towerでも見えるになります。

以下のコンテンツを参考しながら、練習しましょう。
- 日本語概要:Ansible Tower利用ガイド
- 英語ワークショップ:ansible/lightbulb

仮想マシンが不要になったら

  • vagrant haltを実行して、仮想マシンをシャットダウンします。再度vagrant upで起動できます。
  • vagrant destroyを実行して、仮想マシンを削除します。

補足: Enable remote access to postgresql

You can ssh into guest vm as user vagrant (vagrant ssh), then run command below.

# Enable remote access
echo "host  all  all  0.0.0.0/0  md5" | sudo tee -a /var/lib/pgsql/9.6/data/pg_hba.conf
# Restart service
sudo systemctl restart postgresql-9.6

Now, you can access awx db as from host os.

psql -h {前述の$private_ip} -W awx awx
# Password is password
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.