2. Ansible Automation Platform

2.1. はじめに

Exastro IT Automation(以下、ITAとも記載する)で Ansible 連携機能 (以下、Ansible driver) として運用する為のシステム構成と環境構築について説明します。
本書ではそのうち Ansible Automation Platform を実行エンジンとしたシステム構成と環境構築について説明します。

Ansible Core による構成を行う場合は、Ansible Core を参照してください。

ITA Ansible driver を利用するにあたっては、Exastro IT Automation がインストール済みであることが前提です。
Exastro IT Automation のインストール方法に関しては、 Exastro on Kubernetes - Online を参照してください。

2.2. システム構成

Ansible driver は Exastro IT Automation のデプロイ時に標準機能として提供されます。

Ansible 実行サーバのスケールアウトが必要な場合は、Ansible Automation Platform による構成を推奨します。

以下に Ansible Automation Platform における構成パターンと構成イメージを記載します。

2.2.1. システム構成パターン

Ansible Automation Controller は、Ansible 実行における拡張された機能の利用や、可用性を高めた構成で運用することが可能です。

警告

ITA システムおよび Ansible Core とは個別の専用サーバを用意する必要があります。
また実行する Playbook を Ansible Vault で暗号化するため、Ansible Core (Ansible driver (Agent)) が必要となります。
以下に主な Ansible driver 機能利用の構成パターンと構成イメージを記載します。
※ITA システムは省略した構成図を記載します。
表 2.1 システム構成パターン

No

構成

説明

Ansibleスケールアウト可否

1

Ansible Automation Platform (ハイブリッドパターン)
Ansible Control ノード自体が、実行対象となる Managed ノードに対して作業を実行する構成です。
シンプルな構成の反面、各 Managed ノードに対して疎通ができる必要があります。

2

Ansible Automation Platform (実行ノード分離パターン)

Ansible Control ノードが Ansible Execution ノードと連携し、Ansible Execution ノードが、実行対象となる各 Managed ノードに対して作業を実行する構成です。
構成は複雑になりますが、Ansible Control ノードから Ansible Execution ノードに対しての疎通のみできればいいので、各 Managed ノードに対して通信設定をする必要がありません。

Ansible Automation Platform (ハイブリッドパターン)を下記に記載します。

Ansible Automation Platform (ハイブリッドパターン)

図 2.1 Ansible Automation Platform (ハイブリッドパターン)

表 2.2 システム通信要件
通信番号
※1

FROM

TO

プロトコル
[ポート番号 ※2]

主な用途

ITAシステム

Hybrid ノード

http(s)
[80(443)/tcp]

Ansible Automation Platform 制御通信

ITAシステム

Hybrid ノード

ssh [22/tcp]

Ansible Automation Platform 作業実行用通信

ITAシステム

Git

http(s)
[80(443)/tcp]

ファイル連携

Hybrid ノード

対象機器

Any
(ssh [22/tcp] telnet [23/tcp] 等 ※3)

自動構成の対象機器へのコマンド実行

Hybrid ノード

Git

http(s)
[80(443)/tcp]

ファイル連携

※1 Ansible Automation Platform (ハイブリッドパターン)の構成イメージの番号と紐づく通信番号を記載。
※2 ポート番号は標準的なポート番号を記載。
※3 代表的な例を記載。Ansibleモジュールにより利用プロトコルが異なる。

2.3. システム要件

Ansible driver はITAシステムのシステム要件に準拠するため、 Exastro on Kubernetes - Online を参照してください。
ここでは Ansible Automation Platform の要件を記載します。
表 2.4 Ansible Automation Platform の動作確認済みバージョン

Exastro IT Automation

Ansible Automation Platform

2.1

2.2

2.3

2.4

2.0.x

2.1.x

2.2.x

2.3.x

〇: 動作確認済み

2.4. Playbook連携

ITAとAnsible Automation Platform間のPlaybook連携について説明します。
ITAとAnsible Automation Platform2.xのPlaybook連携図

図 2.3 ITAとAnsible Automatio Platform2.x間のPlaybook連携図

2.5. 初期設定

Ansible Automation Platformインストール後、実行エンジンに応じて各設定を行ってください。
表 2.5 Ansible Core システム要件

設定項目

Ansible Automation Platform 2.x

ITA作業用ディレクトリの準備

ITA作業用ディレクトリの公開

Ansible Automation Platformへのファイル転送ユーザーの準備

Ansible Automation Platformと連携するGitへのユーザーの準備

Proxy設定

〇:必須 △:必要に応じて

2.5.1. ITA作業用ディレクトリの準備

Ansible Automation Platform サーバに ITA 作業用ディレクトリを作成してください。
クラスタ構成の場合は、構成している全てのサーバにディレクトリを作成してください。
ただし、Ansible Automation Platform の Hop ノードにはディレクトリ作成不要です。

表 2.6 ITA作業用ディレクトリの作成情報

項目

設定値

ディレクトリパス

/var/lib/exastro

オーナー・グループ

awx:awx

パーミッション

0755

2.5.2. ITA作業用ディレクトリの公開

ブラウザより Ansible Automation Platform にログインし、設定 ▶ ジョブ ▶ 分離されたジョブに公開するパス/var/lib/exastro/ を設定します。
../../_images/publish_ita_operation_director.png

2.5.3. Ansible Automation Platform へのファイル転送ユーザーの準備

ITA から Ansible Automation Platformの プロジェクトを生成する際、Ansible Automation Platform の下記ディレクトリに Playbook 一式をファイル転送します必要があります。
ファイル転送するLinuxユーザーを準備してください。

・SCM 管理ディレクトリ(/var/lib/awx/projects)
 ※Ansible Tower3.xの場合にLinuxユーザーでPlaybook一式をファイル転送します。
・ITA作業用ディレクトリ(/var/lib/exastro)
Linux ユーザーは、Ansible Automation Platform インストール時に生成される awx ユーザーにパスワードを設定し使用することを強く推奨します。

警告

awx ユーザー以外のユーザーを用意し使用し、SCM 管理パス(/var/lib/awx/projects)のパーミッションの変更を行う運用は Red Hat のサポート対象外となりますのでご注意ください。
準備した Linux ユーザーは、ITA システムに登録する必要があります。 Ansible Automation Controller ホスト一覧 を参照し、登録を行ってください。

2.5.4. Ansible Automation Platformと連携するGitへのユーザーの準備

ITA から Ansible Automation Platform のプロジェクトを生成する際の SCM タイプを Git にしています。
連携先の Git リポジトリは、Ansible driverのバックヤード機能がインストールされているホストに作成されます。
Ansible Automation Platformから、この Git リポジトリにssh鍵認証で接続する Linux ユーザーを準備してください。

ユーザーを作成操作可能なアクセストークンが必要となります。設定方法は GitLab 連携設定 を参照してください。
表 2.7 ITA インストール時に生成される SSH 鍵認証用 Linux ユーザー情報

項目

ユーザー

awx

パスワード

未設定

秘密鍵

/home/awx/.ssh/rsa_awx_key

公開鍵

/home/awx/.ssh/rsa_awx_key.pub

2.5.5. Proxyの設定

Ansible Automation Platform の設定に応じて作業実行時などに Red Hat 社の所定のサイトより実行環境のコンテナイメージのダウンロードが行われます。
ブラウザより Ansible Automation Platform にログインし、設定 ▶ ジョブ ▶ 追加の環境変数 に下記の環境変数を設定します。
  • https_proxy

  • http_proxy

  • no_proxy

  • HTTPS_PROXY

  • HTTP_PROXY

  • NO_PROXY

../../_images/proxy_settings.png

警告

Ansible Automation Platform が Proxy 環境下にある場合、Ansible Automation Platform に Proxy 設定が必要です。Proxy の設定がされていない状態で作業実行を行った場合、エラー原因が取得できない場合があります。

2.6. Organization 追加時の作業

2.6.1. 組織作成

Organization 用の組織を作成します。
Ansible Automation Platform は admin(管理ユーザー) でログインしてください。

  1. アクセス ▶ 組織追加 ボタンをクリックします。
  2. 該当項目を入力し、 保存 ボタンをクリックしてください。

    必須項目及び設定値については下記の表を参照してください。

項目

設定値

備考

名前

任意の名称

インスタンスグループ

※未選択のままにする

組織とインスタンスグループの紐づけ 」で設定

2.6.2. アプリケーション登録

接続トークン払出用のアプリケーション登録をします。
Ansible Automation Platform は admin(管理ユーザー)でログインしてください。

  1. 管理 ▶ アプリケーション追加 ボタンをクリックしてください。
  2. 該当項目を入力し、 保存 ボタンをクリックしてください。

    必須項目及び設定値については下記の表を参照してください。

項目

設定値

備考

名前

任意の名称

認証トークン払出 」で使用する

組織

組織作成 」で作成した組織を選択する

認証付与タイプ

リソース所有者のパスワードベースを選択

クライアントタイプ

秘密

2.6.3. ユーザー作成

Organization 用のユーザーを作成します。
Ansible Automation Platform は admin(管理ユーザー)でログインしてください。

  1. アクセス ▶ ユーザー追加 ボタンをクリックしてください。
  2. 該当項目を入力し、 保存 ボタンをクリックしてください。

    必須項目及び設定値については下記の表を参照してください。

項目

設定値

備考

ユーザー名

任意のユーザー名

パスワード

任意のパスワード

パスワードの確認

任意のパスワード

ユーザータイプ

標準ユーザーを選択

組織

組織作成 」で作成した組織を選択する

2.6.4. ロール設定

Organization 用ユーザーに紐づける組織に対してロールを設定します。
Ansible Automation Platform は admin(管理ユーザー)でログインしてください。

  1. アクセス ▶ ユーザー より「 ユーザー作成 」で作成したユーザー名をクリックしてください。
  2. ユーザーの詳細画面に遷移されるため、ロール タブを選択し、追加 ボタンをクリックしてください。
  3. 下記表の通りにユーザー権限の追加をしてください。
    1. リソースタイプの追加 では 「組織」 を選択し、Next ボタンをクリックしてください。
    2. リストの項目の選択 では 「 組織作成 」 で作成した組織 を選択し、Next ボタンをクリックしてください。
      ※「 組織作成 」で作成した組織以外のロールは付与しないでください。
    3. 適用するロールの選択 では 「管理者」と「メンバー」の2つのロールを選択し、保存 ボタンをクリックしてください

2.6.5. 認証トークン払出

Ansible Automation Platform は ユーザー作成 で作成したユーザーでログインしてください。

  1. アクセス ▶ ユーザー追加 ボタンを押下する。
  2. 該当項目を入力し、 保存 ボタンを押下する。

    必須項目及び設定値については下記の表を参照してください。

項目

設定値

備考

アプリケーション

アプリケーション登録 」で作成したアプリケーションを選択

範囲

書き込みを選択

2.7. ワークスペース追加時の作業

2.7.1. インスタンスを組み込む

インスタンスであるAnsible Execution Environment (以下、Ansible ee とも表記) を組み込んてください。

2.7.2. インスタンスグループ作成

※ 組み込んだ インスタンス (Ansible ee) を追加するインスタンスグループが既にある場合、次の 「 インスタンスグループにインスタンスを追加 」の手順に進んでください。
Ansible Automation Platform は admin(管理ユーザー)でログインしてください。

  1. 管理 ▶ インスタンスグループインスタンスを組み込む で組み込んだインスタンス( Ansible ee )を追加するインスタンスグループを選択してください。
  2. 該当項目を入力し、 保存 ボタンを押下する。

    必須項目及び設定値については下記の表を参照してください。

項目

設定値

備考

名前

任意の名称

命名規則については下記をご参照ください

2.7.3. インスタンスグループにインスタンスを追加

インスタンスグループに「 インスタンスを組み込む 」で組み込んだインスタンス( Ansible ee )を追加します。
Ansible Automation Platform は admin(管理ユーザー)でログインしてください。

  1. 管理 ▶ インスタンスグループ より、「 インスタンスを組み込む 」で組み込んだインスタンス( Ansible ee )を追加するインスタンスグループ名をクリックしてください。
  2. インスタンスグループの詳細画面に遷移されるため、インスタンス タブを選択し、関連付け ボタンをクリックしてください。
  3. インスタンスの選択の画面に遷移され、組み込んだインスタンス( Ansible ee )が表示されるので選択し、保存 ボタンをクリックしてください。

2.7.4. 組織とインスタンスグループの紐づけ

組織作成 」で作成した組織と上記で使用したインスタンスグループを紐づけます。
Ansible Automation Platform は admin(管理ユーザー)でログインしてください。

  1. アクセス ▶ 組織 より、「 組織作成 」で作成した組織名をクリックしてください。
  2. 詳細画面に遷移されるため、編集 ボタンをクリックしてください。
  3. 詳細の編集の画面に遷移されるため、インスタンスグループに上記で使用したインスタンスグループを選択し、保存 ボタンをクリックしてください。
    ※複数選択可能

2.7.5. ITA に認証トークンと組織を登録

インターフェース情報 を参照し、Ansible共通 ▶ インターフェース情報認証トークン払出 で作成した認証トークンと 組織作成 で作成した組織の登録を行ってください。

警告

組織名を登録する際は、認証トークンを登録してから1分程度経過後(※)、「 インターフェース情報 」を再表示し、「 組織作成 」で作成した組織名を選択してください。

※ バックヤードで各認証トークンに対応したユーザーに紐づいている組織を収集し、プルダウンに表示しているため。

注釈

ロール設定 」で作成したユーザーに複数の組織のロールを付与されていた場合、ランダムに選択された組織をデフォルト値とします。