3. Ansible Automation Platform¶
3.1. はじめに¶
3.2. システム構成¶
3.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 ノードに対して通信設定をする必要がありません。
|
〇 |
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 (ハイブリットパターン)を下記に記載します。
図 3.1 Ansible Automation Platform 2.5 (ハイブリットパターン)¶
番号
|
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等)の同期 |
Ansible Automation Platform 2.5 (実行ノード分離パターン)を下記に記載します。
図 3.2 Ansible Automation Platform 2.5 (実行ノード分離パターン)¶
番号
|
FROM |
TO |
プロトコル
[ポート番号 ※1]
|
主な用途 |
|---|---|---|---|---|
① |
ITAシステム |
Platform Gateway |
http(s)
[80(443)/tcp]
|
Ansible Automation Platform に対する制御通信 |
② |
ITAシステム |
Execution Node |
ssh [22/tcp] |
ITA作業用ディレクトリ(/var/lib/exastro)への資材転送 |
③ |
ITAシステム |
GitLab |
http(s)
[80(443)/tcp]
|
AnsibleProject(Playbook/Role/Inventory等)の同期 |
④ |
Execution Node |
Managed Node(作業対象) |
Any
(ssh [22/tcp] WinRM [5985-5986/tcp] telnet [23/tcp] 等 ※2)
|
Ansible実行のために接続 |
⑤ |
Controller Node |
GitLab |
http(s)
[80(443)/tcp]
|
AnsibleProject(Playbook/Role/Inventory等)の同期 |
注釈
Ansible Automation Platform (Cloud)について、EE→AAP アウトバウンド通信のみのケースを下記に記載します。
番号
|
FROM |
TO |
プロトコル
[ポート番号 ※1]
|
主な用途 |
|---|---|---|---|---|
① |
ITAシステム |
Platform Gateway |
http(s)
[80(443)/tcp]
|
Ansible Automation Platform に対する制御通信 |
② |
ITAシステム |
GitLab |
http(s)
[80(443)/tcp]
|
AnsibleProject(Playbook/Role/Inventory等)の同期 |
③ |
Controller Node |
GitLab |
http(s)
[80(443)/tcp]
|
AnsibleProject(Playbook/Role/Inventory等)の同期
※Ansible Automation Platform (Cloud)の場合は、AAPからGitLabへの通信が可能である必要があります
|
④ |
Execution Node |
ITA API |
http(s)
[80(443)/tcp]
|
ITA固有の資材取得
EE上でlocalhostから実施
エンドポイント: GET /api/{org_id}/workspaces/{ws_id}/aap/{exec_no}/populated_data
IaC方式による資材連携(投入データ等)
|
⑤ |
Execution Node |
Managed Node(作業対象) |
Any
(ssh [22/tcp] WinRM [5985-5986/tcp] telnet [23/tcp] 等 ※2)
|
Ansible実行のために接続 |
⑥ |
Execution Node |
ITA API |
http(s)
[80(443)/tcp]
|
結果ファイル送信
ITA上で管理する資材、結果ファイル(Conductorディレクトリ等)を送信
エンドポイント: POST /api/{org_id}/workspaces/{ws_id}/aap/{exec_no}/result_data
|
Ansible Automation Platform 2.4 (ハイブリッドパターン)を下記に記載します。
図 3.3 Ansible Automation Platform 2.4 (ハイブリッドパターン)¶
番号
|
FROM |
TO |
プロトコル
[ポート番号 ※1]
|
主な用途 |
|---|---|---|---|---|
① |
ITAシステム |
Hybrid Node |
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等)の同期 |
Ansible Automation Platform 2.4 (実行ノード分離パターン)を下記に記載します。
図 3.4 Ansible Automation Platform 2.4 (実行ノード分離パターン)¶
番号
|
FROM |
TO |
プロトコル
[ポート番号 ※1]
|
主な用途 |
|---|---|---|---|---|
① |
ITAシステム |
Controller Node |
http(s)
[80(443)/tcp]
|
Ansible Automation Platform に対する制御通信 |
② |
ITAシステム |
Execution Node |
ssh [22/tcp] |
ITA作業用ディレクトリ(/var/lib/exastro)への資材転送 |
③ |
ITAシステム |
GitLab |
http(s)
[80(443)/tcp]
|
AnsibleProject(Playbook/Role/Inventory等)の同期 |
④ |
Execution Node |
Managed Node(作業対象) |
Any
(ssh [22/tcp] WinRM [5985-5986/tcp] telnet [23/tcp] 等 ※2)
|
Ansible実行のために接続 |
⑤ |
Controller Node |
GitLab |
http(s)
[80(443)/tcp]
|
AnsibleProject(Playbook/Role/Inventory等)の同期 |
3.3. システム要件¶
3.3.1. 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
警告
3.4. Playbook連携¶
実行エンジンによるPlaybook連携の違いについて
Ansible Automation Controller
Ansible Automation Platform(Cloud)
ITAとAnsible Automation Platform2.x間のPlaybook連携図
① Playbook 一式を抽出する
② Playbook 一式を Ansible Automation Controller と連携する Gitリポジトリを作成
③ RestAPI経由で Playbook 実行に必要なデータリソース(Git 接続情報を含む)の生成
④ Playbook 一式を ITA作業用ディレクトリにファイル転送(scp)
⑤ ITAに作成されている Gitリポジトリを SCM管理ディレクトリに連携
ITAとAnsible Automation Platform(Cloud)間のPlaybook連携図
① Playbook 一式を抽出する
② Playbook 一式を Ansible Automation Platform と連携する Gitリポジトリを作成
③ RestAPI経由で Playbook 実行に必要なデータリソース(Git 接続情報を含む)の生成
④ ITAに作成されている Gitリポジトリを SCM管理ディレクトリに連携
⑤ ITA固有の資材を実行ノードに連携(http[s])(実行ノードからITAに対して資材の取得を行う)
注釈
3.5. 初期設定¶
設定項目 |
Ansible Automation Controller |
Ansible Automation Platform (Cloud) |
|---|---|---|
ITA作業用ディレクトリの準備 |
〇 |
× |
ITA作業用ディレクトリの公開 |
〇 |
× |
Ansible Automation Platformへのファイル転送ユーザーの準備 |
〇 |
× |
Ansible Automation Platformと連携するGitへのユーザーの準備 |
〇 |
〇 |
Proxy設定 |
△ |
× |
3.5.1. ITA作業用ディレクトリ・ファイル転送ユーザの準備¶
項目 |
設定値 |
|---|---|
ディレクトリパス |
/var/lib/exastro |
オーナー・グループ |
awx:awx |
パーミッション |
0755 |
3.5.2. ITA作業用ディレクトリの公開¶
/var/lib/exastro/ を設定します。
3.5.3. Ansible Automation Platform へのファイル転送ユーザーの準備¶
3.5.4. Ansible Automation Platformと連携するGitLabへのユーザーの準備¶
3.5.5. Proxyの設定¶
https_proxy
http_proxy
no_proxy
HTTPS_PROXY
HTTP_PROXY
NO_PROXY
警告
3.6. Organization 追加時の作業¶
3.6.1. 組織作成¶
- の 追加 ボタンをクリックします。
- 該当項目を入力し、 保存 ボタンをクリックしてください。必須項目及び設定値については下記の表を参照してください。
項目 |
設定値 |
備考 |
|---|---|---|
名前 |
任意の名称 |
|
インスタンスグループ |
※未選択のままにする |
「組織とインスタンスグループの紐づけ 」で設定 |
3.6.2. アプリケーション登録¶
- の 追加 ボタンをクリックしてください。
- 該当項目を入力し、 保存 ボタンをクリックしてください。必須項目及び設定値については下記の表を参照してください。
項目 |
設定値 |
備考 |
|---|---|---|
名前 |
任意の名称 |
「 認証トークン払出 」で使用する |
組織 |
「 組織作成 」で作成した組織を選択する |
|
認証付与タイプ |
リソース所有者のパスワードベースを選択 |
|
クライアントタイプ |
秘密 |
3.6.3. ユーザー作成¶
- の 追加 ボタンをクリックしてください。
- 該当項目を入力し、 保存 ボタンをクリックしてください。必須項目及び設定値については下記の表を参照してください。
項目 |
設定値 |
備考 |
|---|---|---|
ユーザー名 |
任意のユーザー名 |
|
パスワード |
任意のパスワード |
|
パスワードの確認 |
任意のパスワード |
|
ユーザータイプ |
標準ユーザーを選択 |
|
組織 |
「 組織作成 」で作成した組織を選択する |
3.6.4. ロール設定¶
- より「 ユーザー作成 」で作成したユーザー名をクリックしてください。
- ユーザーの詳細画面に遷移されるため、 タブを選択し、追加 ボタンをクリックしてください。
- 以下の通りにユーザー権限の追加をしてください。
- リソースタイプの追加 では 「組織」 を選択し、Next ボタンをクリックしてください。
- 適用するロールの選択 では 「管理者」と「メンバー」の2つのロールを選択し、保存 ボタンをクリックしてください
3.6.5. 認証トークン払出¶
- の 追加 ボタンを押下する。
- 該当項目を入力し、 保存 ボタンを押下する。必須項目及び設定値については下記の表を参照してください。
項目 |
設定値 |
備考 |
|---|---|---|
アプリケーション |
「 アプリケーション登録 」で作成したアプリケーションを選択 |
|
範囲 |
書き込みを選択 |
3.7. ワークスペース追加時の作業¶
3.7.1. インスタンスの作成¶
Red Hat Ansible Automation Platform にログインします。
ナビゲーションパネルで、インスタンス を選択し、Create instanse をクリックします。
ホスト名 フィールドに、実行ノードのドメイン名または IP アドレスを入力し、Create instanse をクリックします。
バンドルをインストール の横にあるダウンロードアイコン download をクリックしてください。
インベントリを編集
receptorのインストールを実行
注釈
3.7.2. インスタンスを組み込む¶
3.7.3. インスタンスグループ作成¶
- の インスタンスを組み込む で組み込んだインスタンス( Ansible ee )を追加するインスタンスグループを選択してください。
- 該当項目を入力し、 保存 ボタンを押下する。必須項目及び設定値については下記の表を参照してください。
項目 |
設定値 |
備考 |
|---|---|---|
名前 |
任意の名称 |
命名規則については下記をご参照ください |
3.7.4. インスタンスグループにインスタンスを追加¶
- より、「 インスタンスを組み込む 」で組み込んだインスタンス( Ansible ee )を追加するインスタンスグループ名をクリックしてください。
- インスタンスグループの詳細画面に遷移されるため、 タブを選択し、関連付け ボタンをクリックしてください。
- インスタンスの選択の画面に遷移され、組み込んだインスタンス( Ansible ee )が表示されるので選択し、保存 ボタンをクリックしてください。
3.7.5. 組織とインスタンスグループの紐づけ¶
- より、「 組織作成 」で作成した組織名をクリックしてください。
- 詳細画面に遷移されるため、編集 ボタンをクリックしてください。
- 詳細の編集の画面に遷移されるため、インスタンスグループに上記で使用したインスタンスグループを選択し、保存 ボタンをクリックしてください。※複数選択可能
3.7.6. ITA に認証トークンと組織を登録¶
警告
※ バックヤードで各認証トークンに対応したユーザーに紐づいている組織を収集し、プルダウンに表示しているため。
注釈
3.8. Ansible Automation Platform (Cloud)について¶
3.8.1. クラウド環境での構成例¶
図 3.5 Ansible Automation Platform on AWS 利用時の構成例¶
警告
NW構成の特徴:
Execution NodeからPlatform Gatewayへのアウトバウンド通信を許可
ITAからAAPへのSSH接続が不要
Execution NodeからITA APIへのアウトバウンド通信[HTTP(S)]を許可
AAPからGitLabへの通信を許可
注釈
3.8.2. 実行エンジンによるITA固有の資材連携の方式について¶
項目 |
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記述 |
変更なし |
変更なし |
注釈
3.8.3. Ansible Automation Platform (Cloud)連携用資材メニューの有効化¶
警告