Ansibleの機能を拡張するAnsible Tower

2017年4月18日(火)
小野寺 大地
好評の連載「注目の構成管理ツール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」をクリックします。

Ansible Towerのホームページからダウンロード

Ansible Towerのホームページからダウンロード

すると導入方法には、以下の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となります。

リスト1:tarファイルの展開

# 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に含まれているファイルは下記のとおりです。

リスト2:ダウンロードしたtarファイルに含まれているファイル一式

# 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

リスト3:設定ファイルinventoryの修正

# 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ファイルの編集が終了したら、下記のコマンドを実行します。

リスト4:setup.shを実行!

# ./setup.sh

setup.shは大きく分けると下記の3つの処理を実行しています。

  • リポジトリの追加
  • Ansibleのインストール
  • ansible-playbookの実行

上記の処理により、Ansibleが入っていない環境であっても、Ansibleをインストールします。その後Ansibleを利用して、ansible-towerがインストールされます。

実行結果は下記のようになり、最終的にansible-playbookが動作したことが分かります。

リスト5:setup.shの実行結果の例

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のログイン画面

Ansible Towerのログイン画面

ライセンスの確認

続いてAnsible Towerのライセンス確認を行います。

ライセンスの確認

ライセンスの確認

「REQUEST LICENSE」をクリックするとansible.comのライセンスページに遷移します。ここでは2つ目の「FREE TOWER TRIAL - LIMITED FEATURES UP TO 10 NODES」を選択します。必要事項を記入の上、SUBMITを選択してください。

10ノードまでのライセンスを選択しSUBMIT

10ノードまでのライセンスを選択しSUBMIT

ライセンスの適用

ライセンスはメールにて送られてきますので、メールを確認しましょう。添付ファイル付きの下記のようなメールが来ていると思います。

リスト6:メールで送られてくるライセンス

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のダッシュボードに到達

Ansible Towerのダッシュボードに到達

次回以降は実際にAnsible Towerを使い、権限管理などを試していきます。

新日鉄住金ソリューションズ

連載バックナンバー

運用・管理技術解説
第10回

Ansible Towerのクラウド連携機能による効率化を目指す

2017/9/26
Ansible Towerが備えるクラウド連携機能を用いることで、Playbookやユーザーの管理を効率良く行えることを紹介する。
運用・管理技術解説
第9回

Ansible Towerによる権限の管理

2017/7/27
複数のユーザーによる使用を前提としたAnsible Towerでの権限管理の方法を紹介する。
運用・管理
第8回

Ansibleの機能を拡張するAnsible Tower

2017/4/18
好評の連載「注目の構成管理ツールAnsibleを徹底活用する」の追加コンテンツとして、Ansible Towerを取り上げる。

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています