Ansible AWX をインストールしてみよう

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

まえがき

おはようございます、加藤です。皆さんはAnsibleを利用しているでしょうか?Ansibleは非常に便利な構成管理ツールですね。
今回はAnsibleに関連するAnsible AWXのインストール方法をご紹介します(使い方は後日書きます)。

Ansbile AWXって何?

Ansible AWXはRed Hat社が提供するAnsible Towerのコミュニテイ版です。
雑に言ってしまえばAnsibleのWebUI+αです。
このαの部分は以下の機能などが挙げられます。

  • ジョブスケジューラ
  • ワークフロー
  • ユーザ認証

特に、ワークフローは魅力的だと思います。複数のロールを結果に応じて分岐させて実行することができます。今回はインストールが主題ですので詳細は今後、ブログします。

インストール

EC2立ち上げ

  1. AWS上にAmazon Linux2でインスタンスを立てる
    1. 検証環境であったとしても、t2.small以上のインスタンスをお勧めします。
    2. 外部からはSSH接続ができるように、セキュリティグループを構成してください。

基本

項目
AMI Amazon Linux 2 LTS Candidate AMI 2017.12.0.20180115 x86_64 HVM GP2
AMI-ID amzn2-ami-hvm-2017.12.0.20180115-x86_64-gp2 (ami-c2680fa4)
インスタンスタイプ t2.small
ストレージ SSD(GP2) 8GB

セキュリティグループ

タイプ プロトコル ポート範囲 ソース 説明
SSH TCP 22 [グローバルIP]/32 -
HTTP TCP 80 [グローバルIP]/32 -

インスタンスが立ち上がったらSSH接続してください。

Ansible AWXインストール

Ansible AWXはDocker上で動きます。
とりあえず、今回はEC2 on Docker で簡単にインストールします。

#必要なパッケージインストール
sudo yum -y install git docker
#Ansibleインストール
sudo amazon-linux-extras install ansible2
#Dockerのサービス開始・自動起動設定
sudo systemctl start docker
sudo systemctl enable docker
#pipをインストール
curl -kL https://bootstrap.pypa.io/get-pip.py | sudo python
#docker-pyをインストール(PythonでDockerを操作)
sudo pip install docker-py
#リポジトリからAWXをクローン
git clone https://github.com/ansible/awx
#DB保存用ディレクトリを作成
sudo mkdir /opt/pgdocker
cd awx/installer
#DB保存先をtmp→作成したディレクトリに変更
sed -i "s/tmp/opt/g" inventory
#ローカルにAWXをインストール
sudo ansible-playbook -i inventory install.yml

状態確認

sudo docker ps
CONTAINER ID        IMAGE                     COMMAND                  CREATED              STATUS              PORTS                                NAMES
b10ef74b6030        ansible/awx_task:latest   "/tini -- /bin/sh ..."   About a minute ago   Up About a minute   8052/tcp                             awx_task
e623389031b6        ansible/awx_web:latest    "/tini -- /bin/sh ..."   About a minute ago   Up About a minute   0.0.0.0:80->8052/tcp                 awx_web
9d781828656b        memcached:alpine          "docker-entrypoint..."   2 minutes ago        Up 2 minutes        11211/tcp                            memcached
5b5d40fcf419        rabbitmq:3                "docker-entrypoint..."   2 minutes ago        Up 2 minutes        4369/tcp, 5671-5672/tcp, 25672/tcp   rabbitmq
4d61e53aeb73        postgres:9.6              "docker-entrypoint..."   3 minutes ago        Up 3 minutes        5432/tcp                             postgres

ログイン

  1. ブラウザで http://[EC2のパブリックIP] へアクセス
  2. ユーザ名: admin パスワード: password

以下のような画面が表示されればインストール完了です!

ログイン画面

ダッシュボード

あとがき

今回は内容が短かったですね。使い方の部分がものすごく長くなる気がしたので一旦インストールについてのみ書きました。
あまり、お待たせしないうちに使い方についてかけるようにがんばります!!