Ansible AWXの構築方法
こんにちは。株式会社SHIFT、自動化エンジニアの水谷です。
先日Ansibleの導入方法について書かせていただきましたが、今回はAnsible AWXについて少し書いてみたいと思います。
Ansible AWXとは
Ansible AWX(以下AWX)は、AnsibleをWeb UIあるいはREST APIで使用するためのOSSツールです。ブラウザ上でAnsibleのPlaybookやInventoryが管理できるのみならず、Playbookのスケジュール実行や、実行したPlaybookの履歴管理、またAnsible単体では難しかったセキュリティ管理なども行えます。
位置付け的には、Red Hat社が有償で提供する「Ansible Tower」のコミュニティ版、あるいは開発版にあたり、無償で使用できます。
ここでは、AWXのUbuntu環境へのインストール方法を説明します。現時点ではWindows 10のWSL(WSL1)にはインストールできませんので、AWXを試してみたい方は、Ubuntu等のLinuxがインストールされたマシンを用意するか、VirtualBox等のVMでLinux環境を用意する、あるいはAWSのEC2(t3.large以上)のLinuxインスタンスを立ち上げるなどしてください。
なお、2020年6月頃リリースされるとされているWindows 10のアップデート(バージョン2004)に搭載される新しいWSL(WSL2)にはAWXのインストールができるという噂がありますので、リリースされたら試してみたいと思います。
インストールの手順
AWXをインストールする方法はいくつかあるようですが、DockerベースのAWXを公式Githubサイトからクローンして、そこにあるPlaybookを実行する方法が簡単だと思います。ここでは、フレッシュなUbuntu 18.04LTSにこの方法を使ってインストールする方法を書きたいと思います。
Ansibleのインストール
まずはAnsibleのインストールから始めます。Ansibleのリポジトリを登録すれば、apt-getでインストールできるので簡単です。
sudo apt-get update
sudo apt-get install software-properties-common
sudo apt-add-repository ppa:ansible/ansible
sudo apt-get update
sudo apt-get install ansible
インストールが終わった後、以下のコマンドでバージョン情報が表示されればOKです。
ansible --version
DockerおよびDocker-composeのインストール
続いてDockerのインストールもインストールします。インストール方法はネットで検索するとたくさん見つかりますが、基本的に以下でよいかと思います。
まずは前準備として、必要なツール類をインストールします。
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
次にDocker公式のGPG公開鍵をインストールします。
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
続いてリポジトリを追加します。
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
そして、インストールです。
sudo apt-get update
sudo apt-get install -y docker-ce
次のコマンドでバージョン情報が表示されることを確認します。
docker version
また、以下のコマンドでDockerサービスが起動していることも合わせて確認しましょう。
sudo systemctl status docker
続いてDocker-composeもインストールします。Docker-composeは、複数のコンテナを使うDockerアプリケーションを、定義・実行するツールです。
こちらは基本的にダウンロードして実行権限を付ければOKです(ここではバージョン1.25.5をダウンロード)。
sudo curl -L https://github.com/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
sudo chmod 0755 /usr/local/bin/docker-compose
以下のコマンドでバージョン情報が表示されることを確認してください。
docker-compose -v
DockerのPythonモジュールをインストール
AWXのインストールはAnsibleのDockerモジュールを使って行いますので、これを動作させるためにDockerのPythonモジュールをpip(pip3)を使ってインストールします。
まずはpip3のインストールから。
sudo apt install python3-pip
DockerのPythonモジュールをインストールします。
sudo pip3 install docker
Docker-composeのPythonモジュールをインストールします。
sudo pip3 install docker-compose
AWXをClone
さて、ここからが本番。AWXのインストールはGithubにあるPlaybookをAnsibleで実行することで行います。
まずはGithubからAWXをクローン。
git clone https://github.com/ansible/awx
特定のバージョンのAWXをインストールしたい場合は、https://github.com/ansible/awx/releases を見てタグを指定してクローンしてください(下はバージョン11.2.0の場合の例)。
git clone https://github.com/ansible/awx -b 11.2.0
Inventoryファイルの変更
この状態で、~/awx/installer/にあるPlaybook "install.yml"を実行すればAWXがインストールできるのですが、その前にInventoryファイルを変更します。
必ず変更していただきたいのが、下の行です。
#project_data_dir =/var/lib/awx/projects
この行の先頭の"#"(コメント記号)を消します。これをしておかないと、Playbookを(SVCに置かずに)ローカルに置いてテストする時に問題となります。
Linuxに不慣れな方は、"nano awx/installer/inventory"でInventoryファイルを開いて、「↓」キーで該当する行まで移動し、"#"を消してから、CTRL+O、Enter、CTRL+Xで保存/終了してください。
また、下の行あたりは必要であれば変更しておいてください。
host_port=80
admin_user=admin
admin_password=password
Playbookの実行
さて、あとはPlaybookを実行するだけです。
cd awx/installer
ansible-playbook -i inventory install.yml
AWXの動作確認
Playbookの実行がエラーで止まらず最後まで実行できれば、基本的にインストールは成功と考えてよいと思います。ブラウザを起動し、アドレスバーに「localhost」とタイプしてEnterを押せば、AWXのログイン画面が表示されるはずです。ユーザー名「admin」、パソワード「password」でログインできるはずですのでお試しください。AWXの使い方については、また次の機会に書きたいと思います。
――――――――――――――――――――――――――――――――――
お問合せはお気軽に
SHIFTについて(コーポレートサイト)
https://www.shiftinc.jp/
SHIFTのサービスについて(サービスサイト)
https://service.shiftinc.jp/
SHIFTの導入事例
https://service.shiftinc.jp/case/
お役立ち資料はこちら
https://service.shiftinc.jp/resources/
SHIFTの採用情報はこちら
https://recruit.shiftinc.jp/career/