概要
- Ansible が Web ユーザーインターフェースで利用出来る Ansible AWX を使ってみる
- Chef Server や Hosted Chef 等に似ている気がするなー
- Ansible AWX って車の名前みたいでカッコイイ
- 解りやすいドキュメントでとっても簡単
- ただし無償版は 10 ホストまでしか登録出来ず、それ以上のホストを取り扱う場合には有償ライセンスを購入しなければいかんぜよ
インストール
インストールした環境
古いバージョンの ansible ではダメ
ドキュメントを斜め読みした後、何も考えずに
yum install ansible
を行った後で
wget http://ansibleworks.com/releases/awx/setup/awx-setup-1.2.2.tar.gz tar zxvf awx-setup-1.2.2.tar.gz cd /awx-setup-1.2.2
group_vars/all
内の pg_password:
の値を修正する。その後、
./setup.sh
を行ったところ...
ERROR: roles is not a legal parameter in an Ansible Playbook
悩んだ末に改めて eple
リポジトリをセットアップした上で最新版の ansible をインストールしてみた。
wget http://ftp-srv2.kddilabs.jp/Linux/distributions/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm rpm -ivh epel-release-6-8.noarch.rpm
epel
リポジトリに上がっている ansible のバージョンはこちら。インストール後、改めて setup.sh
を実行する。
cd /awx-setup-1.2.2 ./setup.sh
セットアップ自体ももちろん ansible でインストールが実行され、ずらずらとメッセージが表示された後に正常にインストールが行われる。インストール完了後、ブラウザでアクセスすると以下のようなログイン画面が表示される。
ユーザー名は admin
パスワードは group_vars/all
内の admin_password:
に指定されたパスワードを利用する。
AWX の組織構造
Ansible の組織構造は以下のようになっている。
対象となる Host
は Organizations
以下の Inventories
に紐付く。また User
に Credentials
が関連付けられる。キモは Job Templates
に Host
と Credentials
を関連付け、最後に Project
で定義した Playbook
を関連付ける感じ...うだうだ書いていてもよくわからんので、ま、やってみましょか。
クイックスタート
と、言う事で試してみましょか。
Organizations を作る
何はともあれ Organizations
を作るところから Ansible AWX は始まる。設定項目は非常にシンプルで Name
のみで問題ない。
Organizations に紐付く User を作る
Organizations
に所属する User
を作成する。
Inventories と Group と Host を作る
まずは Inventories
を作成。
次に Inventories
にグループを追加する。
そして、グループにホストを追加する。ホストにはホスト名または IP アドレスで指定することが出来る。
User に関連する credentials を設定する
Organizations
に所属する User
に credentials
を設定する。
実際に設定対象ホストにログインするユーザーとパスワードを設定する。今回はテストなので root ユーザーを設定してみる。
Project を設定する
これまでは Web ベースで操作を行なってきたが、一変、Ansible AWX サーバーにログインして作業を行う。
Create New
をクリックして新しい Project
を作成する。
Ansible AWX サーバーにログインして Playbook
を設置する。
/var/lib/awx/projects
に Web ベースで作成した Project
名のディレクトリを作成し、上記の yaml
ファイルを設置する。
Project Base Path
と Playbook Directory
を確認、選択する。
Job Template を設定する
いよいよ本題。これまでに設定してきた Inventory
や Project
や Credential
をまとめて設定することになる。
Job Template
から Create New
をクリックして新しい Job Template
を作成する。
上記の通り、これまでに設定した内容を設定して保存する。
レッツ実行
やっとここまでやってまいりました。
Launch
をクリックしてジョブを実行してみる。
結果
しばらくするとジョブが実行される。
正常にジョブが実行されると上記のように successful
が表示される。
ジョブのリンクをクリックすると、上記のようにジョブの結果も表示される。
ということで
Chef Server とかと比較して...
Chef Server
歴、Hosted Chef
歴共に 1 ヶ月の私感。
- セットアップはどちらとも楽ちん
- Client と User で混乱が無い(未だに Chef Server の Client と User の違いが理解出来ていない...)
- 動作が軽い気がする
- 一旦、サーバーにログインして
Playbook
を設置しなきゃいかんのは面倒かも - 無償版は 10 ホストまでなので業務での運用はコストを考慮する必要がある
あれ...
数時間使ってみてChef Server
や Hosted Chef
よりも Jenkins
に近い感じがしてきましたとさ。