Ansibleの機能を拡張するAnsible Tower
Ansible Towerが必要となる背景
Ansibleに関する連載「注目の構成管理ツールAnsibleを徹底活用する」では、Ansibleを用いて下記のことを実現してきました。
- Ansibleのインストールと実行
- Playbookの使い勝手を向上させる
- 使うときのTips
- テストツールの紹介
- 開発環境をAnsibleで一括構築する
これら一連の流れの中でAnsibleを活用する土台は出来てきたと思います。本連載では、Ansibleのさらなる活用のために「Ansible Tower」を紹介していきます。
Ansibleを活用していくなかで、もう少し「こうだったら良いのに」という課題が生まれてきたかと思います。例えば、下記が挙げられます。
- Playbookをいつ誰が実行したか分からない
- このタイミングでPlaybookを実行したい
- Playbookが適用されているかをすぐに確認したい
- コマンド操作だと、現場に適用するにはハードルが高く思われてしまう
Ansible Towerを使うことで、Ansibleだけでは解決できなかったこれらの課題をうまく解決できるようになります。初回となる今回は、まずAnsible Towerのインストール方法についてご紹介していきます。
Ansible Towerとは
Ansible Towerでは、以下のように紹介されています。
Centralize and control your IT infrastructure with a visual dashboard, role-based access control, job scheduling and graphical inventory management.
Ansible Towerを使うことで、これまで紹介してきたAnsibleの強力な機能にさらに
- ダッシュボード
- ロールベースのアクセスコントロール(権限管理)
- ジョブスケジューリング
といったITインフラの集中管理を可能とする機能を追加できます。
またAnsible Tower自体をREST APIで操作できるため、Ansibleの実行権限をAnsible Towerに移譲した上で、別なシステムからの連携・活用も可能となり、さらにAnsible活用の可能性が広がります。
Ansible Towerの機能概要
Ansible Towerが持つ機能について、簡単に紹介します。
ダッシュボード
- Ansible Playbookの実行結果を可視化
- 結果のログの表示
- ホストごと実行結果
ロールベースのアクセスコントロール
- ユーザーの認証
- ユーザーごとの権限設定
- チームの作成
ジョブスケジューリング
- ジョブのスケジュール実行
- ジョブの集中管理
上記のような、Ansible単体では満たせない機能を使うことができます。これらの機能を使うことで、冒頭で挙げた課題の解決に繋がります。では実際に、Ansible Towerインストールしてみましょう。
Ansible Towerのインストール
Ansible Towerのダウンロード
最初に、Ansible TowerのホームページからAnsible Towerの利用申請をします。管理対象のサーバーが10台までの場合、Ansible Towerは無料で利用することができます。まずは試用してみましょう。
Ansible Towerのページにて、「DOWNLOAD FREE TOWER TRIAL」をクリックします。
すると導入方法には、以下の3つの方法があることがわかります。
- DOWNLOAD TOWER FOR LINUX
- LAUNCH TOWER IN VAGRANT
- LAUNCH TOWER IN AMAZON EC2
今回はこのうち一番上の「DOWNLOAD TOWER FOR LINUX」を選択し、必要事項を記入して次に進みます。
その後メールにてダウンロードのパスがメールで届きますので、ダウンロードを実施してください。
Ansible Towerのインストール
インストール環境
今回Ansible Towerをインストールする環境は、下記となります。
- vCPU:1コア
- メモリ:2GB
- OS:CentOS Linux release 7.3.1611(Core)
※今回のインストール手順では/root/ansible-towerをworking directoryにします。
ダウンロードしたtarファイルの展開
下記コマンドにてtarファイルを展開します。
※2017年1月30日現在では、ansible-tower-setup-3.0.3となります。
# pwd /root/ansible-tower # ls ansible-tower-setup-latest.tar.gz # tar xvzf ansible-tower-setup-latest.tar.gz : 解凍されたファイル名が表示される : # ls ansible-tower-setup-3.0.3 ansible-tower-setup-latest.tar.gz
解凍内容の確認
ansible-tower-setup-3.0.3に含まれているファイルは下記のとおりです。
# ls README.md backup.yml install.yml licenses roles ansible.cfg group_vars inventory restore.yml setup.sh
inventoryファイルの修正
ディレクトリ内のinventoryファイルを編集して、以下の項目にパスワードを設定します。ここではそれぞれ「PASSWORD」とします。
- admin_password
- redis_password
- pg_password
# cat inventory [primary] localhost ansible_connection=local [secondary] [database] [all:vars] admin_password='PASSWORD' redis_password='PASSWORD' pg_host='' pg_port='' pg_database='awx' pg_username='awx' pg_password='PASSWORD'
setup.shの実行
inventoryファイルの編集が終了したら、下記のコマンドを実行します。
# ./setup.sh
setup.shは大きく分けると下記の3つの処理を実行しています。
- リポジトリの追加
- Ansibleのインストール
- ansible-playbookの実行
上記の処理により、Ansibleが入っていない環境であっても、Ansibleをインストールします。その後Ansibleを利用して、ansible-towerがインストールされます。
実行結果は下記のようになり、最終的にansible-playbookが動作したことが分かります。
PLAY RECAP ********************************************************************* localhost : ok=123 changed=55 unreachable=0 failed=0 The setup process completed successfully. Setup log saved to /var/log/tower/setup-2017-01-30-18:02:03.log
Ansible Towerへのログイン
インストール完了後は、https://<サーバのIPアドレス>/でアクセスすることができます。まず表示される画面は下記のとおりです。ここではUSERNAMEには「admin」、PASSWORDには先ほどinventoryファイルで設定したパスワードを入力してください
ライセンスの確認
続いてAnsible Towerのライセンス確認を行います。
「REQUEST LICENSE」をクリックするとansible.comのライセンスページに遷移します。ここでは2つ目の「FREE TOWER TRIAL - LIMITED FEATURES UP TO 10 NODES」を選択します。必要事項を記入の上、SUBMITを選択してください。
ライセンスの適用
ライセンスはメールにて送られてきますので、メールを確認しましょう。添付ファイル付きの下記のようなメールが来ていると思います。
Your Ansible Tower by Red Hat license key is provided below: Subscription: Ansible Tower by Red Hat, Self-Support (10 Managed Nodes) Expires: never { "company_name": "<社名>", "contact_email": "<メールアドレス>", "contact_name": "<名前>", "hostname": "<ホスト名>", "instance_count": 10, "license_date": xxxxxxxxxx, "license_key":" xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "license_type": "basic", "subscription_name": "Ansible Tower by Red Hat, Self-Support (10 Managed Nodes)" } Copy and paste the license key above (everything between and including the opening and closing curly braces) into the license dialog in Tower. You can also save the attached license file as /etc/tower/license on your server
このメールの記載どおりライセンスファイルを/etc/tower/licenseに配置するか、先ほどのライセンスの確認画面から「BROWSE」を選択し、添付のライセンスファイルを選択してください。ライセンス確認画面から適用する場合はEULAに同意し、SUBMITを選択してください。
Ansible Towerを使う
これでインストールの流れは完了しました。画面は下記のようになっていると思います。
次回以降は実際にAnsible Towerを使い、権限管理などを試していきます。