3. Ansible Automation Platform

3.1. はじめに

Exastro IT Automation(以下、ITAとも記載する)のAnsible連携機能(以下、Ansible driver)を運用するためのシステム構成とシステム要件について説明します。
本書では、実行エンジンに Ansible Automation Platform を使用した際のシステム構成とシステム要件について解説します。

3.2. システム構成

Ansible driver は、Exastro IT Automation をインストールすることにより、標準機能としてご利用できます。
Exastro IT Automation のインストール方法に関しては、 インストール/アップグレード を参照してください。

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

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

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

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

警告

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

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 ノードに対して通信設定をする必要がありません。

〇

3

Ansible Automation Platform (資材Pull型パターン)

AAP 2.5以上、またはRed Hat Ansible Automation Platform (Managed Service)版も対象とした、IaCを利用したリソース連携を行う構成です。
ITAからAAPへのSSH接続が不要となり、Ansible Execution EnvironmentからPlatform Gatewayへのアウトバウンド通信のみを許可する構成が可能です。
AAPの実行ノードからITA APIを呼び出して、ITA固有のリソースを連携するPull型の通信方式となります。
ITA及び、Ansible Automation PlatformからGitLabへ通信が可能である必要があります。

〇

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

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

図 3.1 Ansible Automation Platform 2.5 (ハイブリットパターン)

※Ansible Automation Platform構成内の通信の詳細については
表 3.4 システム通信要件
番号

FROM

TO

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

主な用途

①

ITAシステム

Platform Gateway

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

Ansible Automation Platform に対する制御通信

②

ITAシステム

Hybrid Node

ssh [22/tcp]

ITA作業用ディレクトリ(/var/lib/exastro)への資材転送

③

ITAシステム

GitLab

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

AnsibleProject(Playbook/Role/Inventory等)の同期

④

Hybrid Node

Managed Node(作業対象)

Any
(ssh [22/tcp] WinRM [5985-5986/tcp] telnet [23/tcp] 等 ※2)

Ansible実行のために接続

⑤

Hybrid Node

GitLab

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

AnsibleProject(Playbook/Role/Inventory等)の同期

※1 ポート番号はプロトコルに対する標準的なポート番号を記載しており、環境によって異なる場合があります。
※2 ④の通信で使用するプロトコルには代表的な例を記載しています。Ansibleモジュールにより利用プロトコルが異なる場合があります。

3.3. システム要件

Ansible driver は Exastro IT Automation システムのシステム要件に準拠するため、Kubernetes クラスターのシステム要件 を参照してください。
ここでは Ansible Automation Platform のシステム要件を記載します。

3.3.1. Ansible Automation Platform

表 3.9 Ansible Automation Platform の動作確認済みバージョン

Exastro IT Automation

Ansible Automation Platform

2.1

2.2

2.3

2.4

2.5

2.0.x

○

○

2.1.x

○

○

2.2.x

○

○

2.3.x

○

○

○

2.6.x

○

2.7.x

○

○

2.8.x

○

○

2.9.x

△

○

〇: 動作確認済み
△: 動作確認は未実施だが動作する想定

3.3.2. Red Hat Ansible Automation Platform (Managed Service)

動作確認済みのサービスと提供バージョン

対象本連携機能は、以下の環境において正常に動作することを確認しています。
  • Red Hat Ansible Automation Platform Service on AWS
    • Ansible Automation Platform 2.7

    • Automation Controller Version 4.8.1

    • Event-Driven Ansible Version 1.3.3

    • Automation Hub Version 4.12.2

警告

注意事項:連携先AAPのバージョンアップについて
各クラウドベンダーが提供する「Managed Service版(AWS/Azure)」は、ベンダー側のスケジュールでプラットフォームやAPIのアップデート(仕様変更)が自動で適用される場合があります。
これに伴い、サービスやAPIのアップデート、仕様変更などにより、本システムの連携機能が十全に機能しなくなる、または一部制限が生じる場合があります。
これらの不具合や仕様変更について、本システム側で永続的な動作を完全に保証するものではありません。本システム側では動作を完全に保証することはできかねますので、あらかじめご了承ください。

3.4. Playbook連携

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

実行エンジンによるPlaybook連携の違いについて

  • Ansible Automation Controller

  • Ansible Automation Platform(Cloud)

ITAとAnsible Automation Platform2.xのPlaybook連携図

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

  • ① Playbook 一式を抽出する

  • ② Playbook 一式を Ansible Automation Controller と連携する Gitリポジトリを作成

  • ③ RestAPI経由で Playbook 実行に必要なデータリソース(Git 接続情報を含む)の生成

  • ④ Playbook 一式を ITA作業用ディレクトリにファイル転送(scp)

  • ⑤ ITAに作成されている Gitリポジトリを SCM管理ディレクトリに連携

3.5. 初期設定

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

設定項目

Ansible Automation Controller

Ansible Automation Platform (Cloud)

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

〇

×

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

〇

×

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

〇

×

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

〇

〇

Proxy設定

△

×

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

3.5.1. ITA作業用ディレクトリ・ファイル転送ユーザの準備

Ansible Automation Platformの Execution Node に ITA作業用ディレクトリを作成してください。
クラスタ構成の場合は、構成している全ての Execution Node にディレクトリを作成してください。
Ansible Automation Platformの Platform Gateway(2.5のみ)/Controller Node/Hop Node にはディレクトリ作成不要です。

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

項目

設定値

ディレクトリパス

/var/lib/exastro

オーナー・グループ

awx:awx

パーミッション

0755

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

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

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

ITA から Ansible Automation Platform のプロジェクトを生成する際、Ansible Automation Platform の下記ディレクトリに Playbook 一式をファイル転送する必要があります。
ファイル転送するLinuxユーザーを準備してください。
※Ansible Automation Platform インストール時に生成される awx ユーザーにパスワードを設定し使用することを推奨します。
・ITA作業用ディレクトリ(/var/lib/exastro)
準備した Linuxユーザーは、ITA システムに登録する必要があります。
Ansible Automation Platform ノード一覧 を参照し、登録を行ってください。

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

ITA から Ansible Automation Platform のプロジェクトを生成する際の SCM タイプを Git にしています。
連携先の Git リポジトリは、ITA構築時に指定した外部のGitLab サーバに作成されます。

ユーザーを作成・操作可能なアクセストークンが必要となります。
設定方法は GitLab 連携設定 を参照してください。

3.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 の設定がされていない状態で作業実行を行った場合、エラー原因が取得できない場合があります。

3.6. Organization 追加時の作業

3.6.1. 組織作成

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

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

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

項目

設定値

備考

名前

任意の名称

インスタンスグループ

※未選択のままにする

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

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

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

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

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

項目

設定値

備考

名前

任意の名称

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

組織

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

認証付与タイプ

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

クライアントタイプ

秘密

3.6.3. ユーザー作成

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

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

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

項目

設定値

備考

ユーザー名

任意のユーザー名

パスワード

任意のパスワード

パスワードの確認

任意のパスワード

ユーザータイプ

標準ユーザーを選択

組織

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

3.6.4. ロール設定

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

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

3.6.5. 認証トークン払出

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

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

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

項目

設定値

備考

アプリケーション

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

範囲

書き込みを選択

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

3.7.1. インスタンスの作成

インスタンスの作成、及び構築手順について記載します。具体的な構築手順については、Redhat社及びサービス提供元のドキュメントを参照してください。
  1. Red Hat Ansible Automation Platform にログインします。

  2. ナビゲーションパネルで、インスタンス を選択し、Create instanse をクリックします。

  3. ホスト名 フィールドに、実行ノードのドメイン名または IP アドレスを入力し、Create instanse をクリックします。

  4. バンドルをインストール の横にあるダウンロードアイコン download をクリックしてください。

  5. インベントリを編集

  6. receptorのインストールを実行

注釈

Ansible Automation Platformのデプロイ方式(インストールのアーキテクチャ)の違いにより、インスタンス追加の手順が異なります。
構築した環境、利用サービスに従ってインスタンスの作成、を組み込みを実施してください。

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

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

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

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

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

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

項目

設定値

備考

名前

任意の名称

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

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

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

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

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

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

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

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

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

警告

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

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

注釈

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

3.8. Ansible Automation Platform (Cloud)について

3.8.1. クラウド環境での構成例

Ansible Automation Platform (Cloud)は、クラウド環境でのAAP利用に適しています。
以下にAWS環境での構成例を記載します(他のクラウドプロバイダーでも同様の考え方が適用できます)。
Ansible Automation Platform on AWS、クラウド環境でGitLab構築した場合の例です。
Ansible Automation Platform on AWS 利用時の構成例

図 3.5 Ansible Automation Platform on AWS 利用時の構成例

警告

赤線で示した通信は、AAP on AWS、GitLab.com、およびイントラ環境間のネットワーク境界を跨いで発生します。
導入にあたっては、ITA構築時の構成・設定、各通信経路の疎通確認ならびにFirewall、Proxy、DNS等の通信要件を満たしていることを事前に確認してください。

NW構成の特徴:

  • Execution NodeからPlatform Gatewayへのアウトバウンド通信を許可

  • ITAからAAPへのSSH接続が不要

  • Execution NodeからITA APIへのアウトバウンド通信[HTTP(S)]を許可

  • AAPからGitLabへの通信を許可

注釈

クラウド環境でのAAPからGitLabへの接続が可能な構成で構築する必要があります。

3.8.2. 実行エンジンによるITA固有の資材連携の方式について

表 3.12 資材連携方式の比較

項目

Ansible Automation Controller

Ansible Automation Platform (Cloud)

ITA固有の資材の連携方式

SSH方式

IaC方式

ITAからAAP(Execution Node)へのSSH接続

必要

不要

資材転送方向

ITAからAAPへpush

AAPからITAへpull

資材転送プロトコル

SSH/SCP

HTTPS(REST API)

ITA作業用ディレクトリ

AAP側に必要

不要

ファイル転送ユーザー

AAP側に必要

不要

Execution Nodeの通信方向

インバウンド(SSH受信)

アウトバウンドのみ

Playbook記述

変更なし

変更なし

注釈

Playbook記述に関しては、ITA固有の変数を使用するものについて、実行エンジンによる差異はありません。
ITA固有の資材連携方式の違いのみであり、Ansible実行時の動作は同一です。

3.8.3. Ansible Automation Platform (Cloud)連携用資材メニューの有効化

Ansible Automation Platform (Cloud)方式で使用するIaCをカスタマイズしたい場合、「Ansible Automation Platform (Cloud)連携用資材」メニューをロール・メニュー紐付で有効化する必要があります。
このメニューは内部処理用のため、デフォルトでは非表示となっています。
非表示メニューを表示するには、管理コンソール▶ロール・メニュー紐付管理 で各メニューの復活処理を行います。詳細は ロール・メニュー紐付管理 を参照してください。

警告

Ansible Automation Platform (Cloud)連携用資材メニューは、作業実行の資材連携で使用されます。
変更することで、作業実行に影響する可能性があるため、手動での編集は推奨されません。
変更する場合は、資材連携処理の影響を考慮して実施してください。