VagrantとVirtualBoxでAnsible Towerをインストールしてみた

事前にVagrantVirtualboxをインストールしておく。
以下のコマンドを実行し、CentOS7系のboxを入手する。

$ mkdir tower
$ cd tower
$ vagrant init bento/centos-7.2
$ vagrant up

Ansible TowerはRAMが2GB以上でないと動かないのでVagrantfileに以下の内容を追記する。

$ vim Vagrantfile

  config.vm.provider "virtualbox" do |vb|
     vb.memory = "2048"
  end

また、以下の行のコメントアウトを外して、IPアドレスの設定も行なっておきます。

config.vm.network "private_network", ip: "192.168.33.10"

ここまでできたら、AnsibleとAnsibleTowerをそれぞれインストールする。
Ansible Towerのインストールに関しては以下のページに詳細に書いてあったので、参考にさせてもらいました。

blog.serverworks.co.jp

まず、Ansibleをインストール時、EPEL リポジトリを使用するため以下を実行して有効化します。

$ sudo yum install http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

Ansible Tower インストール時に以下のリポジトリが必須のため、yum-config-managerで有効化します。

$ sudo yum -y install yum-utils (yum-config-managerが入っていない場合のみ)
$ sudo  yum-config-manager --enable rhui-REGION-rhel-server-extras

パッケージを最新の状態にする。

$ sudo yum update

Ansibleをインストールする。

$ sudo yum install ansible wget

Ansible Tower をインストール及び解凍する。

$ wget http://releases.ansible.com/ansible-tower/setup/ansible-tower-setup-latest.tar.gz
$ tar xvzf ansible-tower-setup-latest
$ cd ansible-tower-setup-【バージョン】

Inventoryファイルを編集し、パスワードを設定する。

$ vi inventory

admin_password='【パスワード】'
pg_password='【パスワード】'
rabbitmq_password='【パスワード】'
$ sudo ./setup.sh

セットアップが成功したら、実際にプレイブックを実行してみます。 プレイブックの実行に関しては以下のスライドを参考にさせてもらいました。
Ansible tower 構築方法と使い方

以下のコマンドでIPアドレスを確認してブラウザでアクセスします。ユーザー名はadmin、パスワードは先ほどInventoryファイルに記載したものでログインすることができます。

$ ip a

ブラウザでアクセスするとライセンスを要求されるので画面の指示にしたがって必要事項を記入していきます。

[プロジェクト]タブをクリックすると、Demo Projectというプロジェクトがデフォルトで用意されていることがわかります。
f:id:kent056-n:20171231231129p:plain

このプロジェクトはHello Worldを表示するだけのものであり、以下からPlay Bookの取得を行なっています。 (ジョブ実行後に/var/lib/awx/projects以下に配置されています。)
GitHub - ansible/ansible-tower-samples: Ansible Tower Playbook Samples
f:id:kent056-n:20171231231146p:plain

実際に[テンプレート]タブをクリックし、ロケットマークのジョブ実行アイコンをクリックします。
正しくJobが成功すると、Hello World! が表示されます。