WebブラウザでAnsibleの実行を管理するAnsible Towerのインストールと使い方:Ansibleで始めるサーバ作業自動化入門(終)(2/4 ページ)
本連載では、「マニュアルやシェルスクリプトを使ったサーバ管理に課題を持つ方」を対象に、Ansibleの基本的な使い方を紹介。今回は、Ansibleの実行をWebブラウザから管理するツール「Ansible Tower」について、概要と便利機能、インストール手順、使い方などを解説。
Ansible Towerの構成
インストールを終え、Ansible Towerからプレイブックを実行させたいところですが、その前にAnsible Towerの構成要素について説明しておきます。Ansible Towerの主な構成要素は以下のようになっています。
- 組織(Organization)
Ansible Towerの全ての構成要素を束ねる単位。無償ライセンスではデフォルトで用意されている組織一つしか利用できない - プロジェクト(Project)
プレイブックを集約する単位 - インベントリ(Inventory)
被管理ホストのホスト名や変数などの情報を保持する。ただし、認証に関する情報(ユーザー名やパスワード)は別途扱う - 認証情報(Credential)
被管理ホストへの接続情報や、プレイブックを取得するためのバージョン管理システムへの接続情報など認証に関する情報を保持する - ジョブテンプレート(Job Template)
「どのプレイブックをどのインベントリファイル、認証情報を使って実行するか」を保持する - ジョブ(Job)
ジョブテンプレートを元に作成された実行情報
構成イメージとしては以下のようになります。
Ansible Towerからプレイブックを実行するためには上記の要素を作成する必要があります。まずはこれらを作成してプレイブックを実行するまでの手順を紹介します。
プレイブックを実行するために最低限必要な手順
プレイブックを実行するために最低限必要な手順は以下の通りです。
- プレイブックの配置
プレイブックはAnsible Towerから作成できないため、あらかじめ作成しておき指定のディレクトリに配置しておく必要がある。なお、GitやSubversionなどのバージョン管理システムを利用してプレイブックを取得することも可能。バージョン管理システムを使った方法は後述する - プロジェクトの作成
プレイブックをどこから取得するのかを設定する - インベントリの作成
被管理ホストの情報を設定する - 認証情報の作成
被管理ホストの接続情報を設定する - ジョブテンプレートの作成
「どのプレイブックを、どのインベントリに対し実行するのか」を設定する - ジョブの実行
ジョブテンプレートを元にプレイブックを実行する
まずは上記の手順を行う例を見てみます。
【1】プレイブックの配置
プレイブックの編集はAnsible Towerから行えないため、ターミナルから直接配置しておく必要があります。また、プレイブックは利用するプロジェクト単位でディレクトリを分けて配置する必要があります。
プレイブックを配置するディレクトリは「/var/lib/awx/projects/」以下です。今回は環境構築用のプロジェクトを想定し、上記ディレクトリに「setup」というディレクトリを作成し、「setup.yml」というプレイブックを配置します。プレイブックの中身はシンプルにuserを追加するだけです。
- hosts: all become: yes tasks: - user: user=piyo
また、このプレイブックはAnsible Towerから「awx」というユーザーによって実行されるため、awxユーザーがアクセスできるよう、作成したディレクトリとファイルのオーナーをawxに設定しておいてください。
【2】プロジェクトの作成
プレイブックの配置が終わったらAnsible Towerにログインし、プロジェクトを作成します。画面上部のメニューから「PROJECTS」を選択しプロジェクト一覧画面に移動した後、ADDボタンをクリックしてプロジェクト作成画面に移動します。
プロジェクトの入力項目は以下の通りです。
- NAME
プロジェクト一覧やジョブテンプレート作成時に表示されるプロジェクト名を入力する - DESCRIPTION
プロジェクトの一覧時に表示される説明文を入力する - ORGANIZATION
作成するプロジェクトがどの組織に所属するかを選択する。無償ライセンスの場合、デフォルトの組織のみ設定できる - SCM TYPE
「プレイブックを、どこから取得するのか」を設定する。ローカルのプレイブックを利用する場合は「Manual」を選択する - PLAYBOOK DIRECTORY
SCM TYPEが「Manual」のときのみ入力可能となる項目。プロジェクトが利用するプレイブックを収めたディレクトリを指定する。「/var/lib/awx/projects/」以下のディレクトリが候補として表示されるため、その中から選択する
必須項目を埋めSAVEボタンをクリックすればプロジェクトの作成は完了です(ラベルに赤いアスタリスクが付いた項目が必須項目です)。
【3】インベントリの作成
次に、インベントリを作成し、被管理ホストの情報を登録します。今回は以下のインベントリファイル相当の設定を行ってみます。
production ansible_host=www.exmaple.com env_name=production
まず、上部メニューの「INVENTORIES」をクリックしインベントリ一覧画面に遷移し、ADDボタンをクリックしてインベントリ登録画面を開きます。
NAMEにインベントリの名前を入力し、SAVEボタンをクリックしてインベントリを保存します。この名前はインベントリファイルのファイル名に相当します。
インベントリの保存後はグループ、被管理ホストを追加する画面に遷移します。今回はグループなしで被管理ホストのみを追加します。「ADD HOST」ボタンをクリックし、被管理ホスト追加画面に遷移します。
HOST NAMEに被管理ホスト名を、VARIABLESにそのホストの変数を追加し、SAVEボタンをクリックすればインベントリの作成は完了です。
なお、変数の設定方法については、YAML形式とJSON形式が選択できます。今回はYAML形式で設定しています。
関連記事
- インフラ自動化ツール「Ansible 2.0」が正式版がリリース
インフラ自動化ツール「Ansible」がメジャーバージョンアップ。リファクタリングによるアーキテクチャの整理に加え、Block文や動的なIncludeなどの新機能が含まれています。 - 「Puppet Enterprise」と「Red Hat Satellite」の連携が実現。一方、レッドハットは「Ansible」を買収へ
Puppet EnterpriseとRed Hat Satelliteが連携可能に。一方、米レッドハットはPuppetの競合とされるAnsibleの買収を発表し、自社ソリューションへの取り込みを表明した。 - レッドハットのホワイトハーストCEOに、OpenStack、Ceph、Ansibleについて聞いた
レッドハットは11月4日、東京都内でRed Hat forum 2015を開催した。来日した米レッドハットのCEO、ジム・ホワイトハースト氏は、プレス向けの説明会で同社の戦略を説明するとともに質問を受け付けた。筆者は、同社にとってのOpenStackの戦略的な意味、およびCephのInktank、Ansibleを買収した狙いについて聞いた。
Copyright © ITmedia, Inc. All Rights Reserved.