AWXの機能と使い方
こんにちは。株式会社SHIFT、自動化エンジニアの水谷です。
前回「AnsibleAWXの構築方法」という記事を書かせていただきましたので、その続きとしてAWXの機能と簡単な使い方について書いてみたいと思います。
AWXの機能
AWXは下のようなWeb UIでAnsibleのPlaybookやインベントリーを管理したり、スケジューラー機能を使ってPlaybookを定期実行たり、またその実行結果を確認したりすることができます。
主な機能を列挙すると以下のようになります。
AWXの基本的な使い方
AWXで手持ちのPlaybookを動作させるまでの手順を簡単に書きたいと思います。
プロジェクトの作成
AWXにおいて個々のPlaybookは「プロジェクト」として管理されます。
プロジェクトの一覧表示したり、新たにプロジェクトを作成するには、AWXの左のメニューから「プロジェクト」をクリックします。
AWXをインストールした直後では、「Demo Project」のみが存在しています。右上にある緑色の「+」アイコンをクリックすると新規プロジェクト作成画面に進みます。
プロジェクトを作成する前に、Playbookをプロジェクトフォルダにコピーしておきます。プロジェクトフォルダはAWXをインストールする際のInventory内でproject_data_dirとして指定したフォルダになり、デフォルトでは/var/lib/awx/projects/になります。
ここでは、/var/lib/awx/projectsの下に「testproj1」というフォルダを作成し、そのに「site.yml」というPlaybookをコピーしたとして話を進めます。
さて、下がプロジェクトの作成画面です。
「名前」にプロジェクト名を入力し、「SCMタイプ」で「手動」を選択します。
「PLAYBOOKディレクトリー」ドロップダウンが表示されますので、そこで先ほど作成した「testproj1」を選択します。
その後「保存」ボタンを押して、一旦プロジェクトを保存しておきます。
次に認証情報を作成しましょう。
実際には認証情報を作らずに、後述する「テンプレート」を作成する際に「ansible_user: mizutani」などの変数として記述することもできますが、一度認証情報を作っておけば、今後たくさんPlaybookを作って実行する際に楽になります。
まずは、左のメニューから「認証情報」をクリックします。
「名前」と「説明」欄を適当に入力し、「認証情報タイプ」で「ネットワーク」を選びます。様々な認証方法が用意されていますが、「ネットワーク」を選ぶと、よくあるユーザー名とパスワードの認証方法となります。
「ユーザー名」と「パスワード」を入力して「保存」ボタンを押します。
続いてインベントリーの作成です。
左メニューの「インベントリー」をクリックし、「+」アイコンをクリックして、新たにインベントリーを追加作成します。
「インベントリー」と「スマートインベントリー」の選択ができますが、ここでは「インベントリー」を選んでください。ちなみに、スマートインベントリーは複数のPlaybookを連続実行したいような場合に使用します。
「名前」と「説明」を適当に入力します。
続いて「ホスト」ボタンを押し、「+」ボタンを押すことで、Playbookを実行する対象のPCを登録していきます。
「ホスト名」には対象PCのネットワーク名あるいはIPアドレスを入力します。「説明」欄も記述しておけば後からどのPCのことかわかりやすいでしょう。
入力が終わったら「保存」ボタンを押します。
複数のPCに同時に同じPlaybookを実行したい場合は、ここで続けてホストを追加していきます。
インベントリーの作成が終わりましたら、Playbook実行のための設定の最終段階である「テンプレート」の作成になります。
「テンプレート」という名前にはやや違和感がありますが、これが「実行タスク」のようなものと思っていただければよいかと思います(やや正確ではありませんが……)。
さて、左メニューの「テンプレート」をクリックして「+」ボタンを押すと次のような画面になりますので、どんどん入力していきます。
ここでは、「名前」、「説明」を入力し、「インベントリー」で先ほど作成したインベントリーを選択し、「プロジェクト」にも最初に作成したプロジェクトを選択、「PLAYBOOK」の欄には、選択したプロジェクト内で実行したいPlaybookファイル(Yamlファイル)を選択します。また、「認証情報」の欄にも、先ほど作成した認証情報を選択しています。
まだ多数設定項目がありますが、とりあえずは赤色の「*」印がついている項目が入力されていれば、問題ないでしょう。入力が終わりましたら「保存」ボタンを押します。
もう1度左メニューの「テンプレート」をクリックしていただくと、今作成したテンプレートがテンプレートリストに追加されていることが確認できます。
ここで、上の画面で赤枠で囲ったロケットアイコンをクリックするとPlaybookが実行されます。
1つのPlaybookを実行するためにずいぶん手間がかかるな、と思われた方もいらっしゃるかと思いますが、作ったインベントリーや認証情報は他のPlaybook(プロジェクト)でも使用できますし、テンプレートを少し変更すれば定期実行もできます。また、あまりLinux環境でYamlファイルを変更したりすることに抵抗感のある方でも、Web UIで操作ができる点は大きなメリットだと思います。Ansibleを導入する際には、ぜひ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/