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
テスト済みバージョンの組み合わせ
- Mac OS: 10.13 (High Sierra)
- virtualbox: 5.1.34
- Vagrant: 2.0.1
- Ansible Tower: 3.2.3
- Ansible Engine: 2.4.3(Ansible Coreです。Towerのインストーラに内包。)
自分の環境に合わせて調整
Vagrantfile
を自分の環境に合わせて変更します。
vi Vagrantfile
Ansible Tower v3.2.3(2018/4/3時点最新版)をインストールするなら、
$hostname
と$private_ip
だけを変えれば良い。
異なるバージョンをインストールするなら、download_url
とinstall_file
も変更してください。
$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でも見えるになります。
以下のコンテンツを参考しながら、練習しましょう。
仮想マシンが不要になったら
-
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