Ansible Execution Agent - Online¶
目的¶
Tip
特徴¶
ITA本体との通信は、http/httpsの、クローズド環境からアウトバウンドのみ(PULL型)
Ansible BuilderとAnsible Runnerを使った動的なAnsible作業実行環境の生成 (任意の環境・モジュールを利用可能)
冗長可能な仕組み(排他制御)
エージェントのバージョン確認
前提条件¶
ハードウェア要件¶
動作確認済み構成
リソース種別 |
要求リソース |
---|---|
CPU |
2 Cores (3.0 GHz, x86_64) |
Memory |
6GB |
Storage |
40GB |
リソース種別 |
要求リソース |
---|---|
CPU |
4 Cores (3.0 GHz, x86_64) |
Memory |
8GB |
Storage |
80GB |
警告
通信要件¶
接続先のITA
各種インストール、及びモジュール、BaseImage取得先等(インターネットへの接続を含む)
作業対象サーバ

OS要件¶
OS種別 |
バージョン |
---|---|
RHEL9 |
Red Hat Enterprise Linux release 9.4 (Plow) |
Almalinux8 |
AlmaLinux release 8.9 (Midnight Oncilla) |
Tip
$ sudo vi /etc/selinux/config
SELINUX=Permissive
$ getenforce
Permissive
ソフトウェア要件¶
Python3.9以上がインストールされており、python3コマンドとpip3コマンドにエイリアスが紐づいていること
インストールを実行するユーザで、以下のコマンドが実行できること
$ sudo
$ python3 -V
Python 3.9.18
$ pip3 -V
pip 21.2.3 from /usr/lib/python3.9/site-packages/pip (python 3.9)
その他の要件¶
RHEL(サポート付きライセンス利用の場合)¶
有償版のAnsible-builder、Ansible-runnerを利用する場合、サブスクリプションの登録、リポジトリ有効化は、インストーラ実行前に実施しておいてください。
Red Hat コンテナーレジストリーの認証
podman login registry.redhat.io
利用するリポジトリ
rhel-9-for-x86_64-baseos-rpms rhel-9-for-x86_64-appstream-rpms ansible-automation-platform-2.5-for-rhel-9-x86_64-rpms
有効化されているリポジトリの確認、リポジトリの有効化
sudo subscription-manager repos --list-enabled sudo subscription-manager repos --enable=rhel-9-for-x86_64-baseos-rpms sudo subscription-manager repos --enable=rhel-9-for-x86_64-appstream-rpms sudo subscription-manager repos --enable=ansible-automation-platform-2.5-for-rhel-9-x86_64-rpms
Ansible builderで使用する動作確認済みのベースイメージ¶
動作確認済みビルドのベースイメージ
ベースイメージ種別 |
イメージ取得先 |
備考 |
---|---|---|
ubi9 |
registry.access.redhat.com/ubi9/ubi-init:latest |
|
rhel9 |
registry.redhat.io/ansible-automation-platform-24/ee-supported-rhel9:latest |
サポート付きライセンス利用の場合 |
パラメータ一覧¶
パラメータ名 |
内容 |
デフォルト値 |
変更可否 |
追加されたバージョン |
備考 |
---|---|---|---|---|---|
IS_NON_CONTAINER_LOG |
ログをファイル出力する設定項目 |
1 |
不可 |
2.5.1 |
|
LOG_LEVEL |
ログを出力レベルの設定値[INFO/DEBUG] |
INFO |
可 |
2.5.1 |
|
LOGGING_MAX_SIZE |
ログローテーションのファイルサイズ |
10485760 |
可 |
2.5.1 |
初期状態は、コメントアウト |
LOGGING_MAX_FILE |
ログローテーションのバックアップ数 |
30 |
可 |
2.5.1 |
初期状態は、コメントアウト |
LANGUAGE |
言語設定 |
en |
可 |
2.5.1 |
|
TZ |
タイムゾーン |
Asia/Tokyo |
可 |
2.5.1 |
|
PYTHON_CMD |
実行する仮想環境のpythonの実行コマンド |
<インストールした環境のPATH>/poetry run python3 |
不可 |
2.5.1 |
|
PYTHONPATH |
実行する仮想環境のpythonの実行コマンド |
<対話事項で入力したインストール先>/ita_ag_ansible_execution/ |
可 |
2.5.1 |
|
APP_PATH |
インストール先のPATH |
<対話事項で入力したインストール先> |
可 |
2.5.1 |
|
STORAGEPATH |
データの保存先のPATH |
<対話事項で入力した保存先>/<サービスの一意な識別子:yyyyMMddHHmmssfff or 対話で指定した文字列>/storage |
可 |
2.5.1 |
|
LOGPATH |
ログの保存先のPATH |
<対話事項で入力した保存先>/<サービスの一意な識別子:yyyyMMddHHmmssfff or 対話で指定した文字列>/log |
可 |
2.5.1 |
|
EXASTRO_ORGANIZATION_ID |
接続先のORGANIZATION_ID |
<対話事項で入力したORGANIZATION_ID> |
可 |
2.5.1 |
|
EXASTRO_WORKSPACE_ID |
接続先のWORKSPACE_ID |
<対話事項で入力したWORKSPACE_ID> |
可 |
2.5.1 |
|
EXASTRO_URL |
接続先のITAのURL |
<対話事項で入力したURL> |
可 |
2.5.1 |
|
EXASTRO_REFRESH_TOKEN |
接続先のITAのEXASTRO_REFRESH_TOKEN |
<対話事項で入力したEXASTRO_REFRESH_TOKEN> |
可 |
2.5.1 |
|
EXECUTION_ENVIRONMENT_NAMES |
実行する環実行環境指定できます。
空の場合、全実行環境を作業対象とします。
複数指定する場合は、「,」区切りで指定してください。
|
空 |
可 |
2.5.1 |
|
AGENT_NAME |
サービスに登録する、エージェントの識別子です。 |
ita-ag-ansible-execution-<サービスの一意な識別子:yyyyMMddHHmmssfff or 対話で指定した文字列> |
不可 |
2.5.1 |
|
USER_ID |
エージェントの識別子です。 |
<サービスの一意な識別子:yyyyMMddHHmmssfff or 対話で指定した文字列> |
不可 |
2.5.1 |
|
ITERATION |
設定を初期化するまでの、処理の繰り返し数 |
10 |
可 |
2.5.1 |
|
EXECUTE_INTERVAL |
メインプロセス終了後のインターバル |
5 |
可 |
2.5.1 |
Tip
EXECUTION_ENVIRONMENT_NAMES=<実行環境名1>,<実行環境名2>
インストール¶
準備¶
$ wget https://raw.githubusercontent.com/exastro-suite/exastro-it-automation/refs/heads/main/ita_root/ita_ag_ansible_execution/setup.sh
$ chmod 755 ./setup.sh
対話での問い合わせ事項¶
エージェントのバージョン情報
サービス名
ソースコードのインストール先
データの保存先
使用するAnsible-builder、Ansible-runnerについて
接続先のITAの接続情報(URL、ORGANIZATION_ID、WORKSPACE_ID、REFRESH_TOKEN)
Ansible Execution Agentのインストール¶
$ ./setup.sh install
- エージェントのインストールモードを聞かれるので、指定してください。1: 必要なモジュールのインストール、サービスのソースコードのインストール、サービスの登録・起動を行います。2: 追加でサービスの登録・起動を行います。3: envファイルを指定して、サービスの登録・起動を行います。※ 2.3については、1が実行されている前提になります。
Please select which process to execute.
1: Create ENV, Install, Register service
2: Create ENV, Register service
3: Register service
q: Quit installer
select value: (1, 2, 3, q) :
Tip
以下、Enterを押下すると、必要な設定値を対話形式で、入力が開始されます。
'No value + Enter' is input while default value exists, the default value will be used.
-> Enter
Input the version of the Agent. Tag specification: X.Y.Z, Branch specification: X.Y [default: No Input+Enter(Latest release version)]:
Input Value [default: main ]:
The Agent service name is in the following format: ita-ag-ansible-execution-20241112115209622. Select n to specify individual names. (y/n):
Input Value [default: y ]:
Input the Agent service name . The string ita-ag-ansible-execution- is added to the start of the name.:
Input Value :
Specify full path for the install location.:
Input Value [default: /home/<ログインユーザー>/exastro ]:
Specify full path for the data storage location.:
Input Value [default: /home/<ログインユーザー>/exastro ]:
Select which Ansible-builder and/or Ansible-runner to use(1, 2) [1=Ansible 2=Red Hat Ansible Automation Platform] :
Input Value [default: 1 ]:
Input the ITA connection URL.:
Input Value :
Input ORGANIZATION_ID.:
Input Value :
Input WORKSPACE_ID.:
Input Value :
Input a REFRESH_TOKEN for a user that can log in to ITA. If the token cannot be input here, change the EXASTRO_REFRESH_TOKEN in the generated .env file.:
Input Value [default: ]:
Do you want to start the Agent service? (y/n)y
Install Ansible Execution Agent Infomation:
Agent Service id: <サービスの一意な識別子:yyyyMMddHHmmssfff or 対話で指定した文字列>
Agent Service Name: ita-ag-ansible-execution-<サービスの一意な識別子:yyyyMMddHHmmssfff or 対話で指定した文字列>
Storage Path: /home/<ログインユーザー>/exastro/<サービスの一意な識別子:yyyyMMddHHmmssfff or 対話で指定した文字列>/storage
Env Path: /home/<ログインユーザー>/exastro/<サービスの一意な識別子:yyyyMMddHHmmssfff or 対話で指定した文字列>/.env
'No value + Enter' is input while default value exists, the default value will be used.
-> Enter
The Agent service name is in the following format: ita-ag-ansible-execution-20241112115209622. Select n to specify individual names. (y/n):
Input Value [default: y ]:
Input the Agent service name . The string ita-ag-ansible-execution- is added to the start of the name.:
Input Value :
Specify full path for the install location.:
Input Value [default: /home/<ログインユーザー>/exastro ]:
Specify full path for the data storage location.:
Input Value [default: /home/<ログインユーザー>/exastro ]:
Input the ITA connection URL.:
Input Value :
Input ORGANIZATION_ID.:
Input Value :
Input WORKSPACE_ID.:
Input Value :
Input a REFRESH_TOKEN for a user that can log in to ITA. If the token cannot be input here, change the EXASTRO_REFRESH_TOKEN in the generated .env file.:
Input Value [default: ]:
Do you want to start the Agent service? (y/n)y
Install Ansible Execution Agent Infomation:
Agent Service id: <サービスの一意な識別子:yyyyMMddHHmmssfff or 対話で指定した文字列>
Agent Service Name: ita-ag-ansible-execution-<サービスの一意な識別子:yyyyMMddHHmmssfff or 対話で指定した文字列>
Storage Path: /home/<ログインユーザー>/exastro/<サービスの一意な識別子:yyyyMMddHHmmssfff or 対話で指定した文字列>/storage
Env Path: /home/<ログインユーザー>/exastro/<サービスの一意な識別子:yyyyMMddHHmmssfff or 対話で指定した文字列>/.env
'No value + Enter' is input while default value exists, the default value will be used.
-> Enter
Input the full path for the .env file.:
Input Value :
Do you want to start the Agent service? (y/n)y
Install Ansible Execution Agent Infomation:
Agent Service id: <サービスの一意な識別子:yyyyMMddHHmmssfff or 対話で指定した文字列>
Agent Service Name: ita-ag-ansible-execution-<サービスの一意な識別子:yyyyMMddHHmmssfff or 対話で指定した文字列>
Storage Path: /home/<ログインユーザー>/exastro/<サービスの一意な識別子:yyyyMMddHHmmssfff or 対話で指定した文字列>/storage
Env Path: /home/<ログインユーザー>/exastro/<サービスの一意な識別子:yyyyMMddHHmmssfff or 対話で指定した文字列>/.env
アンインストール¶
$ ./setup.sh uninstall
Tip
- エージェントのアンインストールモードを聞かれるので、指定してください。1: サービスの削除、データの削除を行います。2: サービスの削除、を行います。データは削除されません。3: データの削除※ 3については、2が実行されている前提になります。
Please select which process to execute.
1: Delete service, Delete Data
2: Delete service
3: Delete Data
q: Quit uninstaller
select value: (1, 2, 3, q) :
以下、Enterを押下すると、必要な設定値を対話形式で、入力が開始されます。
Input a SERVICE_NAME.(e.g. ita-ag-ansible-execution-xxxxxxxxxxxxx):
Input a STORAGE_PATH.(e.g. /home/cloud-user/exastro/<SERVICE_ID>):
Input a SERVICE_NAME.(e.g. ita-ag-ansible-execution-xxxxxxxxxxxxx):
Input a STORAGE_PATH.(e.g. /home/cloud-user/exastro/<SERVICE_ID>):
サービスの手動での操作、確認方法¶
# 設定ファイルの変更を反映
$ sudo systemctl daemon-reload
# サービスの状況確認
$ sudo systemctl status ita-ag-ansible-execution-<サービスの一意な識別子:yyyyMMddHHmmssfff or 対話で指定した文字列>
# サービスの開始
$ sudo systemctl start ita-ag-ansible-execution-<サービスの一意な識別子:yyyyMMddHHmmssfff or 対話で指定した文字列>
# サービスの停止
$ sudo systemctl stop ita-ag-ansible-execution-<サービスの一意な識別子:yyyyMMddHHmmssfff or 対話で指定した文字列>
# サービスの再起動
$ sudo systemctl restart ita-ag-ansible-execution-<サービスの一意な識別子:yyyyMMddHHmmssfff or 対話で指定した文字列>
# 設定ファイルの変更を反映
$ systemctl --user daemon-reload
# サービスの状況確認
$ systemctl --user status ita-ag-ansible-execution-<サービスの一意な識別子:yyyyMMddHHmmssfff or 対話で指定した文字列>
# サービスの開始
$ systemctl --user start ita-ag-ansible-execution-<サービスの一意な識別子:yyyyMMddHHmmssfff or 対話で指定した文字列>
# サービスの停止
$ systemctl --user stop ita-ag-ansible-execution-<サービスの一意な識別子:yyyyMMddHHmmssfff or 対話で指定した文字列>
# サービスの再起動
$ systemctl --user restart ita-ag-ansible-execution-<サービスの一意な識別子:yyyyMMddHHmmssfff or 対話で指定した文字列>
サービスのログ確認方法¶
- アプリケーションログ
/home/<ログインユーザー>/exastro/<サービスの一意な識別子:yyyyMMddHHmmssfff or 対話で指定した文字列>/log/
ita-ag-ansible-execution-<サービスの一意な識別子:yyyyMMddHHmmssfff or 対話で指定した文字列>.log
ita-ag-ansible-execution-<サービスの一意な識別子:yyyyMMddHHmmssfff or 対話で指定した文字列>.log.xx
※ログローテーションされたファイルは、末尾に数値が付与されます。ログのローテートのサイズ、保存期間は、を参照してください。
- システムログ、各コンポーネントのログ
/var/log/message
※podman、Ansible-builder、Ansible-runner他の関連コンポーネントについては、各コンポーネントのログ出力先について参照してください。