1. Ansible共通¶
1.1. はじめに¶
1.2. Ansible driver概要¶
1.2.1. Ansible Coreについて¶
1.2.2. Ansible Automation Controllerについて¶
1.2.3. Ansible driverについて¶
- Legacy モードAnsible標準の機能を用いて各種ホストへ設定を投入します。構築コードを単体YAMLファイルとして登録し、作業パターンをその組み合わせで構成します。サーバ・ストレージ・ネットワーク各機器の環境設定などの作業用に使われることを想定します。
- Legacy Role モードLegacyモードと同じく、Ansible標準の機能を用いて各種ホストへ設定を投入します。構築コードをパッケージとして登録し、作業パターンをRoleの組み合わせで構成します。製品部門などが提供するRoleパッケージを用いて、製品のインストール、環境構築などを行う際に使われることを想定します。
- Pioneer モードAnsibleに独自モジュールを追加し、対話形式による設定投入を可能とします。Telnet, SSHでログイン可能なサーバ・ストレージ・ネットワーク各機器に対応しています。作業対象と直接やり取りが必要となるため、相応のITスキルが必要となります。
1.3. Ansible driverでの変数取り扱い¶
1.3.1. 変数の種類¶
通常変数¶
# Ansible-LegacyRoleでの変数定義例
user: user1
# Playbook内での記述例
- name: Create user
user:
name: "{{ user }}"
複数具体値変数¶
# Ansible-LegacyRoleでの変数定義例
users:
- user1
- user2
# Playbook内での記述例
- name: Create user
user:
name: "{{ item }}"
with_items: "{{ users }}"
多段変数¶
# Ansible-LegacyRoleでの変数定義例
users:
- name: user3
groups: root
- name: user4
groups: root
# Playbook内での記述例
- name: Create user
user:
name: "{{ item.name }}"
with_items: "{{ users }}"
グローバル変数¶
- command: echo {{ GBL_user }}
テンプレート埋込変数¶
- template: src={{ TPF_SAMPLE }} dest=/tmp/SAMPLE.txt
ファイル埋込変数¶
- copy: src={{ CPF_SAMPLE }} dest=/tmp/SAMPLE.txt
ITA独自変数¶
機器一覧¶
項目名 |
変数名 |
---|---|
ホスト名 |
__inventory_hostname__ |
DNSホスト名 |
__dnshostname__ |
IPアドレス |
__ipaddress__ |
プロトコル |
__loginprotocol__ |
ログインユーザID |
__loginuser__ |
ログインパスワード |
__loginpassword__ |
Tip
オペレーション¶
項目名 |
変数名 |
---|---|
オペレーション |
__operation__ |
ConductorインスタンスID¶
項目名 |
変数名 |
---|---|
ConductorインスタンスID |
__conductor_id__ |
データ連携¶
項目名 |
変数名 |
---|---|
作業ディレクトリパス |
__workflowdir__ |
項目名 |
変数名 |
---|---|
Conductor作業ディレクトリパス |
__conductor_workflowdir__ |
項目名 |
変数名 |
---|---|
ステータスファイルパス |
__movement_status_filepath__ |
項目名 |
変数名 |
---|---|
作業ディレクトリ(in)の「_parameters」のパス |
__parameters_dir_for_epc__ |
作業ディレクトリ(in)の「_parameters_file」のパス |
__parameters_file_dir_for_epc__ |
作業結果ディレクトリ(out)の「_parameters」のパス |
__parameter_dir__ |
作業結果ディレクトリ(out)の「_parameters_file」のパス |
__parameters_file_dir__ |
1.3.2. 変数の抜出および具体値登録¶
変数抜出対象資材¶
メニュー |
項目 |
モード |
変数抜出の書式 |
||
---|---|---|---|---|---|
Ansible-Legacy |
Ansible-Pioneer |
Ansible-LegacyRole |
|||
Playbook素材集 |
Playbook素材 |
〇 |
× |
× |
詳細は「 Playbook素材で変数抜出の対象となる変数の種類と書式 」を参照してください。 |
対話ファイル素材集 |
対話ファイル素材 |
× |
〇 |
× |
詳細は「 対話ファイル素材で変数抜出の対象となる変数の種類と書式 」を参照してください 。 |
ロールパッケージ管理 |
ロールパッケージファイル(ZIP形式) |
× |
× |
〇 |
詳細は「 ロールパッケージファイル(ZIP形式)で変数抜出の対象となる変数の種類と書式 」を参照してください 。 |
テンプレート管理 |
変数定義 |
〇 |
〇 |
〇 |
詳細は「 テンプレート管理 」を参照してください 。 |
機器一覧 |
インベントリファイル追加オプション |
〇 |
× |
〇 |
詳細は「 インベントリファイル追加オプションとヘッダセクションのパラメータ値で変数抜出の対象となる変数の種類と書式 」を参照してください 。 |
Movement一覧 |
ヘッダセクション |
〇 |
× |
〇 |
詳細は「 インベントリファイル追加オプションとヘッダセクションのパラメータ値で変数抜出の対象となる変数の種類と書式 」を参照してください 。 |
パラメータシート |
プルダウン選択でテンプレート管理を選択している項目 |
〇 |
〇 |
〇 |
詳細は「 テンプレート管理 」を参照してください 。 |
Tip
Playbook素材で変数抜出の対象となる変数の種類と書式¶
変数 |
書式 |
具体値の設定 |
---|---|---|
通常変数 複数具体値変数 |
{{△vvv△}}
{{△vvv△|△フィルタ△}}
|
具体値の登録は より行います。 の が入力されている場合、複数具体値変数として扱います。 |
グローバル変数 |
{{△GBL_xxx△}}
{{△GBL_xxx△|△フィルタ△}}
|
具体値の登録は より行います。 |
テンプレート埋込変数 |
{{△TPF_xxx△}}
{{△TPF_xxx△|△フィルタ△}}
|
具体値の登録は より行います。 |
ファイル埋込変数 |
{{△CPF_xxx△}}
{{△CPF_xxx△|△フィルタ△}}
|
具体値の登録は より行います。 |
ITA独自変数 |
詳細は「 ITA独自変数 」を参照してください。 |
Tip
対話ファイル素材で変数抜出の対象となる変数の種類と書式¶
変数 |
書式 |
具体値の設定 |
---|---|---|
通常変数 複数具体値変数 |
{{△vvv△}}
|
具体値の登録は より行います。 の が入力されている場合、複数具体値変数として扱います。 |
グローバル変数 |
{{△GBL_xxx△}}
|
具体値の登録は より行います。 |
テンプレート埋込変数 |
{{△TPF_xxx△}}
|
具体値の登録は より行います。 |
ファイル埋込変数 |
{{△CPF_xxx△}}
|
具体値の登録は より行います。 |
ITA独自変数 |
詳細は「 ITA独自変数 」を参照してください。 |
Tip
ロールパッケージファイル(ZIP形式)で変数抜出の対象となる変数の種類と書式¶
変数名 |
書式 |
ITA readme |
ロールパッケージ内のディレクトリ |
具体値の設定 |
||
---|---|---|---|---|---|---|
defaults |
tasks templates handlers meta |
その他 |
||||
通常変数 |
e.g.) vvv: value
具体値は省略可能です。 |
〇 |
〇 |
× |
× |
具体値の登録は より行います。 |
複数具体値変数 |
e.g.) vvv:
- value
vvv: []
具体値は省略可能です。 |
|||||
多段変数 |
e.g.) vvv:
- item1: value1 ←メンバー変数
item2: value2 ←メンバー変数
vvv:
- array:
- item1: value1 ←メンバー変数
item2: value2 ←メンバー変数
具体値は省略可能です。 |
|||||
グローバル変数 |
{{△GBL_xxx△}}
{{△GBL_xxx△|△フィルタ△}}
|
× |
× |
○ |
× |
具体値の登録は より行います。 |
テンプレート埋込変数 |
{{△TPF_xxx△}}
{{△TPF_xxx△|△フィルタ△}}
|
具体値の登録は より行います。 |
||||
ファイル埋込変数 |
{{△CPF_xxx△}}
{{△CPF_xxx△|△フィルタ△}}
|
具体値の登録は より行います。 |
||||
ITA独自変数 |
詳細は「 ITA独自変数 」をを参照してください。 |
Tip
Tip
インベントリファイル追加オプションとヘッダセクションのパラメータ値で変数抜出の対象となる変数の種類と書式¶
種類 |
利用可否 |
書式 |
具体値の設定 |
---|---|---|---|
通常変数 複数具体値変数 多段変数 |
〇 |
{{△vvv△}}
{{△vvv△|△フィルタ△}}
|
・Ansible-Legacyの場合 通常変数と複数具体値変数が扱えます。 の が入力されている場合、複数具体値変数として扱います。 ・Ansible-LegacyRoleの場合 通常変数と複数具体値変数と多段変数が扱えます。 の で登録したロールパッケージか、 の で同名の変数が定義されている場合は、定義されている種類の変数として扱います。 変数が定義されていない場合、通常変数として扱います。 具体値の登録は より行います。 |
グローバル変数 |
× |
||
ファイル埋込変数 |
× |
||
テンプレート埋込変数 |
× |
||
ITA独自変数 |
〇 |
詳細は「 ITA独自変数 」を参照してください。 |
Tip
変数の具体値¶
Ansible-Legacy¶
Ansible-Pioneer¶
Ansible-LegacyRole¶
- ホスト変数定義ファイルの値
- defaults変数定義ファイルに定義した値
1.4. Ansible共通メニュー構成¶
1.4.1. メニュー/画面一覧¶
No |
メニュー・画面 |
説明 |
---|---|---|
1 |
機器一覧 |
作業対象の機器情報を管理します。 |
2 |
インターフェース情報 |
Ansible Core、Ansible Automation Controllerサーバのどちらを実行エンジンとし構築作業をするか選択をします。
実行エンジンのサーバへの接続インターフェース情報を管理します。
|
3 |
Ansible Automation Controllerホスト一覧 |
Ansible Automation ControllerのRestAPI実行に必要な情報、および構築資材をAnsible Automation Controllerにファイル転送するために必要な情報を管理します。 |
4 |
グローバル変数管理 |
各モードのPlaybookや対話ファイルで共通利用する変数と具体値を管理します。 |
5 |
ファイル管理 |
各モードのPlaybookや対話ファイルで共通利用する素材ファイルと埋込変数を管理します。 |
6 |
テンプレート管理 |
各モードのPlaybookや対話ファイルで共通利用するテンプレートファイルと埋込変数を管理します。 |
7 |
管理対象外変数リスト |
「 変数抜出対象資材 」で抜出した変数で、 の に表示したくない変数を管理します。 |
8 |
共通変数利用リスト (※1) |
・ ・ に登録されている変数が、どの素材( ・ ・ )で使用しているかを閲覧できます。 |
Tip
1.5. メニュー操作方法説明¶
1.5.1. 機器一覧¶
- 作業対象となる機器情報のメンテナンス(閲覧/登録/更新/廃止)を行います。ITAをインストールすると、ローカル実行用の機器「localhost」が機器一覧に登録されます。「localhost」を指定して作業実行するとansibleホスト内で作業が実行されます。pioneerで「localhost」は使用できません。
- 登録 ボタンより、作業対象となる機器情報の登録を行います。
- 登録画面の項目一覧は以下のとおりです。
¶ 項目
説明
入力必須
入力方法
制約事項
管理システム項番
登録時に自動採番した36桁の文字列が表示されます。
ー
自動入力
ー
HW機器種別
HW機器の種別を選択します。
- NW(ネットワーク)
- ST(ストレージ)
- SV(サーバー)
ー
リスト選択
説明欄記載のとおり
ホスト名
ホスト名を入力します。
Ansible実行時のインベントリホストとして扱います。
○
手動入力
最大長255バイト
DNSホスト名
DNSサーバーを使用してホスト名が解決できる名称を入力します。
ー
手動入力
最大長255バイト
IPアドレス
IPアドレス(xxx.xxx.xxx.xxxIPv4形式)を入力します。
ー
手動入力
最大長15バイト
ログインパスワード
ユーザ
ログインユーザを入力します。
ー
手動入力
最大長255バイト
パスワード
パスワードを入力します。
ー
手動入力
最大長255バイト
ssh鍵認証情報
ssh秘密鍵ファイル
ssh秘密鍵ファイルを指定して鍵認証する場合の秘密鍵ファイルを入力します。
アップロードしたファイルは暗号化されて保存されます。
※登録後はダウンロード不可となります。
ー
ファイル選択
最大サイズ100Mバイト
パスフレーズ
ssh秘密鍵ファイルにパスフレーズが設定されている場合、パスフレーズを入力します。
ー
手動入力
最大長255バイト
Ansible利用情報
Legacy/Role利用情報
認証方式
Ansible core・Ansible Automation Controllerから作業対象へ接続する際の認証方式を選択します。
- パスワード認証ログインパスワードの入力が必須です。
- 鍵認証(パスフレーズなし)ssh秘密鍵ファイル(id_ras)のアップロードが必須です。
- 鍵認証(パスフレーズあり)ssh秘密鍵ファイル(id_ras)のアップロード と、パスフレーズの入力が必須です。
- パスワード認証(winrm)必要に応じてWinRM接続情報を入力します。
ー
リスト選択
説明欄記載のとおり
WinRM接続情報
ポート番号
WindowsServerにWinRM接続する際のポート番号を入力します。
未入力の場合はデフォルト(5985 :http)で接続します。
ー
手動入力
0~65,535
サーバ証明書
WinRM接続ポートでhttpsのポート番号を指定した場合にサーバ証明書を入力します。
アップロードしたファイルは暗号化されて保存されます。
※登録後はダウンロード不可となります。
サーバ証明書の認証を省く場合、インベントリファイル追加オプションに下記を追記してください。
ansible_winrm_server_cert_validation: ignore
ー
ファイル選択
最大サイズ100Mバイト
Pioneer利用情報
プロトコル
Pioneerから作業対象に接続する際のプロトコルを選択します。
- sshはパスワード認証(winrm)以外を選択 してださい。
- telnetで選択した認証方式は使用せずにtelnetで接続します。と の入力が必須です。
ー
リスト選択
説明欄記載のとおり
OS種別
作業対象のOSを選択します。
OS種は
から登録します。ー
リスト選択
説明欄記載のとおり
LANG
のLANGを選択します。
未選択の場合はデフォルト「utf-8」になります。
ー ー
リスト選択
説明欄記載のとおり
接続オプション
作業対象に接続する際に設定したいオプションを入力します。
- ssh接続の場合
/etc/ansible.cfg/ssh_args
や/etc/ansible/ansible.cfg
に設定しているsshオプション以外のオプションを入力します。 - telnet接続の場合telnet接続時のオプションを入力します。
ー
手動入力
最大長4000バイト
インベントリファイル追加オプション
ITAが作成するインベントリファイルに追加するパラメータがある場合に、パラメータをyaml形式で入力します。
尚、Ansible-Pioneerでは適用しません。
ITAが作成するインベントリファイルについては「 ITAが作成するインベントリファイル 」を参照してください。
e.g.)
ansible_connection: network_cli ansible_network_os: ios ansible_become: yes ansible_become_method: enable
各パラメータ値を変数で記述することも出来ます。
ansible_become_password: '{{△vvv△}}' △:半角スペース ':シングル・ダブルコーテーションで必ず囲んで下さい。
パラメータ値を変数で記述する場合の詳細は、「 インベントリファイル追加オプションとヘッダセクションのパラメータ値で変数抜出の対象となる変数の種類と書式 」を参照してください 。
変数の具体値は
から登録します。ー
手動入力
最大長4000バイト
Ansible Automation Controller 利用 情報
インスタンスグループ名※1
Ansible Automation Controllerがクラスタ構成の場合、どのインスタンスグループで実行するかを選択します。
未選択の場合はAnsible Automation Controllerに設定されているデフォルトのインスタンスグループになります。
Ansible Automation Controllerがクラスタ構成でない場合は、未選択で構いません。
ー
リスト選択
説明欄記載のとおり
接続タイプ
Ansible Automation Controllerの認証情報の接続タイプを選択します。
通常は「machine」を選択します。
「ansible_connectionをlocal」に設定する必要があるNetwork OSなど場合に「Network」を選択します。
- 「Network」を選択した場合にPlatform Options(ansible_connection以外)を設定する必要が あります。
e.g.)
インベントリファイル追加オプションの設定例
Network OSが「ios」の場合の設定値
ansible_network_os: ios ansible_become: yes ansible_become_method: enable
接続タイプについての詳細は、Ansible Automation Controller公式マニュアルのユーザガイドを参照してください。
Network OSとansible_connectionの関連やPlatform Optionsについての詳細はAnsible公式ドキュメントのPlatform Optionsを参照してください。
○
リスト選択
説明欄記載のとおり
備考
自由記述欄です。
ー
手動入力
最大長4000バイト
Tip
※1「 Ansible Automation Controllerデータ同期 」で取得したデータから選択します。
1.5.2. インターフェース情報¶
- Ansible Core、Ansible Automation Controllerのいずれかを実行エンジンに選択し、実行エンジンのサーバへの接続インターフェース情報のメンテナンス(閲覧/更新)を行います。
- 編集 ボタンより、インターフェース情報の更新を行います。
- 登録画面の項目一覧は以下のとおりです。
¶ 項目
説明
入力必須
入力方法
制約事項
項番
登録時に自動採番した36桁の文字列が表示されます。
ー
自動入力
ー
実行エンジン
実行するエンジンを下記の2種類から選択します。
- Ansible Core
- Ansible Automation Controller
○
リスト選択
説明欄記載のとおり。
Ansible Automation Controller インターフェース
代表ホスト
に登録されているハイブリットノードか制御ノードより、ITAと通信するAnsible Automation Controllerを選択します。
ー
リスト選択
がAnsible Automation Controllerの場合に入力必須
プロトコル
Ansible Automation Controllerとの接続プロトコルを「http」/「https」のどちらかで入力します。
ー
手動入力
がAnsible Automation Controllerの場合に入力必須
ポート
Ansible Automation Controllerとの接続プロトコルのポートを入力します。
通常はhttps(443)を入力します。
ー
手動入力
がAnsible Automation Controllerの場合に入力必須
組織名 ※1
Ansible Automation Controllerに登録されている組織名を選択します。
ー
リスト選択
がAnsible Automation Controllerの場合に入力必須
認証トークン
Ansible Automation Controllerに接続するユーザの認証トークンを入力します。
最大長255バイト
がAnsible Automation Controllerの場合に入力必須
実行時データ削除
作業実行時にITAとAnsible Automation Controller内に一時的に生成したデータリソースを作業終了後に削除するかを選択します。
「True」を選択した場合に削除します。
削除されるデータリソースについての詳細は「 実行時データ削除で削除されるデータリソース 」を参照してください。
ー
リスト選択
がAnsible Automation Controllerの場合に入力必須
REST APIタイムアウト値(単位秒)
作業実行時にITAからAnsible Automation ControllerへRestAPI発行時のタイムアウト値を入力します。
通常は60秒程度が推奨値です。
未入力の場合は、デフォルト値(60)を使用します。
ー
手動入力
60~3,600
Proxy
Address
プロキシサーバのアドレスを入力します。
ITAがプロキシ環境下にある場合、Ansible Core/Ansible Automation Controllerまでの疎通のために設定が必要な場合があります。
プロキシサーバのURLが
http://proxy.gate.co.jp:8080の場合
Addressにはhttp://proxy.gate.co.jpを入力します。
Portには 8080を入力します。
ー
手動入力
最大255バイト
Port
プロキシサーバのポートを入力します。
ー
手動入力
1~65,535
Ansible-vaultパスワード
ansible-vaultコマンドで変数の具体値を暗号化する場合のパスワードを入力します。
未入力の場合は、デフォルト値を使用します。
ー
手動入力
最大長64バイト
オプションパラメータ
Movement共通のオプションパラメータを入力します。
オプションパラメータについての詳細は「 オプションパラメータ一覧 」を参照してください。
- が「Ansible Core」の場合ansible-playbookコマンドのオプションパラメータを入力します。
- が「Ansible Automation Controller」の場合ジョブテンプレートのパラメータを入力します。ジョブテンプレートについての詳細は、Ansible Automation Controller公式マニュアルのユーザガイドを参照してください。
Movement固有のオプションパラメータは
から入力します。ー
手動入力
最大長4000バイト
NULL連携
で の具体値がNULL(空白)の場合に、 にNULL(空白)の値を登録するかを選択します。
の が未選択の場合、この値が適用されます。
- Trueパラメータシートの値がどのような値でもに登録が行われます。
- Falseパラメータシートに値が入力されていればに登録が行われます。
未選択の場合「False」を適用します。
○
リスト選択
説明欄記載のとおり。
状態監視周期(単位ミリ秒)
に表示される情報のリフレッシュ間隔を入力します。
通常は1000ミリ秒程度が推奨値です。
○
手動入力
1,000~2,147,483,647
進行状態表示行数
に表示する実行ログ・エラーログの最大表示行数を入力します。
が以下の場合、ログの終端から入力した行数分を出力します。
- 「未実行」
- 「準備中」
- 「実行中」
- 「実行中(遅延)」
が以下の場合、すべてのログを出力します。
- 「完了」
- 「完了(異常)」
- 「想定外エラー」
- 「緊急停止」
- 「未実行(予約)」
- 「予約取消」
環境毎にチューニングを要しますが、通常は1000行程度が推奨値です。
○
手動入力
0~2,147,483,647
備考
自由記述欄です。
ー
手動入力
最大長4000バイト
Tip
※1「 Ansible Automation Controllerデータ同期 」で取得したデータから選択します。
1.5.3. Ansible Automation Controller ホスト一覧¶
- Ansible Automation ControllerへのRestAPI実行に必要な情報、および構築資材をAnsible Automation Controllerにファイル転送するために必要な情報のメンテナンス(閲覧/登録/更新/廃止)を行います。クラスタ構成の場合は、構成している全てのホストを登録してください。ただし、Ansible Automation Controllerのhop nodeの登録は不要です。
- 登録 ボタンより、Ansible Automation Controllerのホスト情報の登録を行います。
- 登録画面の項目一覧は以下のとおりです。
¶ 項目
説明
入力必須
入力方法
制約事項
項番
登録時に自動採番した36桁の文字列が表示されます。
ー
自動入力
ー
ホスト
Ansible Automation Controllerのホスト名(またはIPアドレス)を入力します。
○
手動入力
最大長255バイト
認証方式
Ansible Automation Controllerへファイル転送(scp)で接続する際の認証方式を選択します。
- パスワード認証ログインユーザとパスワードの入力が必須です。
- 鍵認証(パスフレーズなし)ssh秘密鍵ファイル(id_ras)のアップロードが必須です。
- 鍵認証(パスフレーズあり)ssh秘密鍵ファイル(id_ras)のアップロードと、パスフレーズの入力が必須です。
○
リスト選択
説明欄記載のとおり。
ユーザ
Ansible Automation Controllerへファイル転送(scp)で接続する際のログインユーザを入力します。
ログインユーザは、Ansible Automation Controllerインストール時に生成されるawxユーザにパスワードを設定し、awxユーザを入力して下さい。
○
手動入力
最大長255バイト
パスワード
でパスワード認証を選択した場合、必須入力となります。 ログインユーザのパスワードを入力します。
ー
手動入力
最大長4000バイト
ssh鍵認証情報
ssh秘密鍵ファイル
で鍵認証を選択した場合、必須入力となります。ssh秘密鍵ファイルを入力します。
アップロードしたファイルは暗号化されて保存されます。
※登録後はダウンロード不可となります。
ー
ファイル選択
最大サイズ100Mバイト
パスフレーズ
ssh秘密鍵ファイルにパスフレーズが設定されている場合、パスフレーズを入力します。
ー
手動入力
最大長255バイト
ポート
Ansible Automation Controllerにssh接続する際の、ポート番号を指定することができます。
デフォルトは22です。
ー
手動入力
数値項目
Execution node
クラスタ構成で構築されているAnsible Automation Controllerで対象ホストが「execution node」の場合に「True」を選択します。
「Execution node」が「True」の場合、
の に表示されません。ー
リスト選択
説明欄記載のとおり。
備考
自由記述欄です。
ー
手動入力
最大長4000バイト
1.5.4. グローバル変数管理¶
- Playbookや対話ファイルで共通利用するグローバル変数名のメンテナンス(閲覧/登録/更新/廃止)を行います。
- 登録 ボタンより、グローバル変数の登録を行います。
- 登録画面の項目一覧は以下のとおりです。
¶ 項目
説明
入力必須
入力方法
制約事項
項番
登録時に自動採番した36桁の文字列が表示されます。ー
自動入力
ー
グローバル変数名
変数名を入力します。変数名は、「GBL_****」形式で入力します。****:半角英数字とアンダースコア( _ )が利用可能です。(最小値:1バイト、最大値:255バイト)○
手動入力
説明欄記載のとおり。
具体値
具体値を入力します。複数行の具体値も入力できますが、Pioneerの対話ファイルで使用しているグローバル変数で複数行の具体値を設定すると、作業実行時にエラーとなります。
ー
手動入力
最大長4000バイト
変数名説明
変数に対する説明・コメントを入力します。
ー
手動入力
最大長4000バイト
備考
自由記述欄です。
ー
手動入力
最大長4000バイト
1.5.5. ファイル管理¶
- Playbookや対話ファイルで共通利用するファイル素材とファイル埋込変数のメンテナンス(閲覧/登録/更新/廃止)を行います。ファイル素材を登録しておくことで、Playbook内で使用するファイル素材をファイル埋込変数名で指定することができます。
- 登録 ボタンより、ファイル埋込変数の登録を行います。
- 登録画面の項目一覧は以下のとおりです。
¶ 項目
説明
入力必須
入力方法
制約事項
素材ID
登録時に自動採番した36桁の文字列が表示されます。ー
自動入力
ー
ファイル埋込変数名
Playbookに埋め込む変数名を入力します。変数名は、「CPF_****」形式で入力します。****:半角英数字とアンダースコア( _ )が利用可能です。(最小値:1バイト、最大値:255バイト)○
手動入力
説明欄記載のとおり。
ファイル素材
ファイル素材をアップロードします。
○
ファイル登録
最大サイズ100Mバイト
備考
自由記述欄です。
ー
手動入力
最大長4000バイト
Tip
- で登録したhostsファイルをファイル埋込変数を使用して作業対象サーバの/etc/配下にコピーする場合
- からhostsファイルを登録します。
¶ ファイル埋込変数名
ファイル素材
CPF_hosts
hosts
- 下記のようにPlaybookを記述します。※destはファイル名も記述してください。ファイル名の指定がない場合、登録したファイル素材のファイル名の前にITAの管理番号が付与された名前のファイル名で処理されます。たとえば、dest=/etc/ とした場合、ファイル名は/etc/36桁の文字列_hostsとなります。Playbookの記述
- copy: src='{{ CPF_hosts }}' dest=/etc/hosts
- で登録したtool.tgzファイルをファイル埋込変数を使用して作業対象サーバの/usr/local/bin/配下に解凍する場合
- からtool.tgzファイルを登録します。
¶ ファイル埋込変数名
ファイル素材
CPF_tool_tgz
tool.tgz
- 下記のようにPlaybookを記述します。Playbookの記述
- unarchive: src={{ CPF_tool_tgz }} dest=/usr/local/bin
Tip
- で登録したhostsファイルをファイル埋込変数を使用して作業対象サーバの/etc/配下にコピーする場合
- からhostsファイルを登録します。
¶ ファイル埋込変数名
ファイル素材
CPF_hosts
hosts
- 下記のように対話ファイルを記述します。※転送先はファイル名も記述してください。ファイル名の指定がない場合、登録したファイル素材のファイル名の前にITAの管理番号が付与された名前のファイル名で処理されます。たとえば、/etc/. とした場合、ファイル名は/etc/36桁の文字列_hostsとなります。対話ファイルの記述
conf: # ファイルのサイズでタイマ値調整 timeout: 60 exec_list: # 対象機器へのログインパスワード認証 - expect: 'password:' exec: '{{ __loginpassword__ }}' # 作業対象側よりscpコマンドでAAC側に配置されているファイルを作業対象にファイル転送 - expect: '{{ __loginuser__ }}@{{ __dnshostname__ }}' exec: 'scp -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null {{ VAR_scp_user }}@{{ VAR_aac_host }}:{{ CPF_hosts }} /etc/hosts' # scpコマンドのパスワードログイン認証(AAC側) - expect: 'password:' exec: '{{ VAR_scp_user_password }}' # 対話ファイル終了 - expect: '{{ __loginuser__ }}@{{ __dnshostname__ }}' exec: exit
¶ 変数
具体値
VAR_scp_user
awx
VAR_scp_user_password
awxユーザパスワード
VAR_aac_host
Ansible Automation Controller
1.5.6. テンプレート管理¶
- Playbookや対話ファイルで共通利用するテンプレートファイル素材とテンプレート埋込変数のメンテナンス(閲覧/登録/更新/廃止)を行います。テンプレートファイル素材を登録しておくことで、Playbook内で使用するテンプレートファイル素材をテンプレート埋込変数で指定することができます。
- 登録 ボタンより、テンプレート埋込変数の登録を行います。
- 登録画面の項目一覧は以下のとおりです。
¶ 項目
説明
入力必須
入力方法
制約事項
素材ID
登録時に自動採番した36桁の文字列が表示されます。ー
自動入力
ー
テンプレート埋込変数名
Playbookに埋め込む変数名を入力します。変数名は、「TPF_****」形式で入力します。****:半角英数字とアンダースコア( _ )が利用可能です。(最小値:1バイト、最大値:255バイト)○
手動入力
説明欄記載のとおり。
テンプレート素材
Playbookで使用するテンプレートファイル素材をアップロードします。
○
ファイル登録
テキスト形式最大サイズ100Mバイト変数定義
テンプレートファイル素材内で使用している変数を定義します。テンプレートファイル素材内で使用出来る変数は5種類あります。※1ー
手動入力
最大長4000バイト
備考
自由記述欄です。
ー
手動入力
最大長4000バイト
警告
Tip
種類 |
注意事項 |
---|---|
通常変数 |
具体値は省略可能です。 e.g.) vvv: value
|
複数具体値変数 |
具体値は省略可能です。 e.g.) vvv:
- vaule
vvv: []
|
多段変数 |
階層化された変数構造が定義出来ます。 e.g.) vvv:
- item1: value ←メンバー変数
item2: ←メンバー変数
vvv:
- array:
- item1: value ←メンバー変数
item2: ←メンバー変数
多段変数を定義したテンプレートは、Ansible-LegacyRoleでしか使用できません。 同名の変数をdefault変数定義ファイルなどに定義している場合は、変数構造を合わせる必要があります。変数構造が一致していない場合は登録でエラーとなります。 |
グローバル変数 |
具体値は省略可能です。 e.g.) GBL_xxx: vaule
GBL_xxx_2:
|
ITA独自変数 |
変数の定義は不要です。 |
Tip
注釈
- からhostsファイルを登録します。
¶ テンプレート埋込変数名
テンプレート素材
TPF_hosts
hosts
- 下記のようにPlaybookを記述します。※destはファイル名も記述してください。ファイル名の指定がない場合、登録したテンプレート素材のファイル名の前にITAの管理番号が付与された名前のファイル名で処理されます。たとえば、dest=/etc/ とした場合、ファイル名は/etc/36桁の文字列_hostsとなります。Playbookの記述
- template: src='{{ TPF_hosts }}' dest=/etc/hosts
注釈
- からhostsファイルを登録します。
¶ テンプレート埋込変数名
テンプレート素材
TPF_hosts
hosts
- 下記のように対話ファイルを記述します。※転送先はファイル名も記述してください。ファイル名の指定がない場合、登録したテンプレート素材のファイル名の前にITAの管理番号が付与された名前のファイル名で処理されます。たとえば、/etc/. とした場合、ファイル名は/etc/36桁の文字列_hostsとなります。対話ファイルの記述
conf: # ファイルのサイズでタイマ値調整 timeout: 60 exec_list: # 対象機器へのログインパスワード認証 - expect: 'password:' exec: '{{ __loginpassword__ }}' # 作業対象側よりscpコマンドでAAC側に配置されているファイルを作業対象にファイル転送 - expect: '{{ __loginuser__ }}@{{ __dnshostname__ }}' exec: 'scp -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null {{ VAR_scp_user }}@{{ VAR_aac_host }}:{{ TPF_hosts }} /etc/hosts' # scpコマンドのパスワードログイン認証(AAC側) - expect: 'password:' exec: '{{ VAR_scp_user_password }}' # 対話ファイル終了 - expect: '{{ __loginuser__ }}@{{ __dnshostname__ }}' exec: exit
¶ 変数
具体値
VAR_scp_user
awx
VAR_scp_user_password
awxユーザパスワード
VAR_aac_host
Ansible Automation Controller
1.5.7. 管理対象外変数リスト¶
- 「 変数抜出対象資材 」で抜出した変数で、 の に表示したくない変数のメンテナンス(参照/更新/廃止/復活)を行います。ITAインストール時にansibleマジック変数が登録されます。
- 登録 ボタンより、管理対象外変数の登録を行います。
- 登録画面の項目一覧は以下のとおりです。
¶ 項目
注意事項
入力必須
入力方法
制約事項
項番
登録時に自動採番した36桁の文字列が表示されます。ー
自動入力
ー
変数名
の に表示したくない変数名を入力します。変数名は正規表現で記載できます。e.g.) ansible_* *:ワイルドカードansible_[0-9a-zA-Z]*〇
手動入力
最大長255バイト
備考
自由記述欄です。
ー
手動入力
最大長4000バイト
1.6. 付録¶
1.6.1. BackYardコンテンツ¶
Ansible Automation Controllerデータ同期¶
リソース |
用途 |
---|---|
組織名 |
の のリスト選択で使用されます。
の で入力しているユーザが利用可能な組織名がリストに表示されます。 |
インスタンスグループ |
の のリスト選択で使用されます。
の で選択している組織が利用可能なインスタンスグループがリストに表示されます。 |
実行環境 |
の のリスト選択で使用されます。
の で選択している組織が利用可能な実行環境がリストに表示されます。 |
1.6.2. ITAが作成するインベントリファイル¶
all:
children:
hostgroups:
hosts:
Inventory_host:
Inventory_host_parameters:
Inventory_host_option_parameters:
パラメータ名 |
の |
設定値 |
||||
---|---|---|---|---|---|---|
パスワード認証 |
鍵認証 (パスフレーズなし) |
鍵認証 (パスフレーズあり) |
鍵認証 (鍵交換済み) |
パスワード認証 認証(winrm) |
||
ansible_host |
〇 |
〇 |
〇 |
〇 |
〇 |
の または の で選択されている内容にで決まります。 |
ansible_user |
〇 |
〇 |
〇 |
〇 |
〇 |
の |
ansible_password |
〇 |
〇 |
の |
|||
ansible_ssh_private_key_file |
〇 |
〇 |
の |
|||
ansible_ssh_extra_args |
〇 |
〇 |
〇 |
〇 |
の |
|
ansible_connection: |
〇 |
winrm |
||||
ansible_port |
〇 |
の |
||||
ansible_winrm_ca_trust_path |
〇 |
の |
Tip
1.6.3. オプションパラメータ一覧¶
- の
- の
ansible-playbook -h
オプションパラメータ |
指定方法 |
Ansible Automation Controllerの設定箇所 |
備考 |
---|---|---|---|
-v
--verbose
|
-v
-vv
-vvv
-vvvv
-vvvvv
--verbose
|
の に v の数が設定される。 |
・vの合計値を適用
・--verboseは、-vと同様
例:--verbose -vvv の場合、-vvvvと同様
・vを6以上指定した場合 、vは5の指定となる
|
-f
--forks
|
-f FORKS
--forks=FORKS
|
の にFORKSの値が設定される。 |
・FORKSには数値を指定
・複数定義した場合、最後に定義したパラメータが有効
例:-f 1-forks=10の場合、--forks=10が有効となる
・数値以外が指定された場合、エラーとなる
|
-l
--limit
|
-l SUBSET
--limit=SUBSET
|
の にSUBMITの値が設定される。 |
・SUBSET:機器一覧にあるホスト名
・複数定義した場合、最後に定義したパラメータが有効
|
-e
--extra-vars
|
-e EXTRA_VARS
--extra-vars=EXTRA_VARS
|
の にEXTRA_VARSの値が設定される。 |
・EXTRA_VARS:変数名、具体値をjson形式またはyaml形式
e.g.) json形式の場合
-extra-vars={"VAR_1":"directory"}
e.g.) yaml形式の場合
-extra-vars=VAR_1:directory
・複数定義した場合、最後に定義したパラメータが有効
|
-t
--tags
|
-t TAGS
--tags=TAGS
|
の にTAGSの値が設定される。 |
・TAGS:タグ名
・複数個のパラメータを許容
|
-b
--become
|
-b
--become
|
の がチェックされる。 |
・少なくとも1つ指定すればパラメータが有効 |
-D
--diff
|
-D
--diff
|
の の表示が有効化される。 |
・少なくとも1つ指定すればパラメータが有効 |
--skip-tags |
--skip-tags=SKIP_TAGS |
の にSKIP_TAGSの値が設定される。 |
・SKIP_TAGS:スキップタグ名
・複数個のパラメータを許容
|
--start-at-task |
--start-at-task=START_AT_TASK |
※Ansible Automation ControllerのWebUI には--start-at-taskの表示はありません。
ansible-playbookコマンドの--start-at-taskと同様の扱いになります。
|
・複数定義した場合、最後に定義したパラメータが有効 |
-ufc
--use _fact_cache
|
-ufc
--use_fact_cache
|
の がチェックされる。 |
・少なくとも1つ指定すればパラメータが有効 |
-as
--allow_simultaneous
|
-as
--allow_simultaneous
|
の がチェックされる。 |
・少なくとも1つ指定すればパラメータが有効 |
-jsc
--jobslice_count
|
-jsc ジョブスライス数
--job_slice_count=ジョブスライス数
|
の にジョブスライス数の値が設定される。 |
・ジョブスライス数には数値を指定
・複数定義した場合、最後に定義したパラメータが有効
|
1.6.4. 実行時データ削除で削除されるデータリソース¶
データリソース |
リソースタイプ |
備考 |
---|---|---|
ITA作業用ディレクトリ /var/lib/exastro/ita_<区分>_executions_作業番号 |
ディレクトリ |
|
SCM管理ディレクトリ /var/lib/awx/projects/ita_<区分>_executions_作業番号 |
ディレクトリ |
※プロジェクトリソースの削除により削除される |
インベントリ リソース名: ita_<区分>_executions_inventory_作業番号_通番 |
リソース |
|
認証情報 リソース名: ita_<区分>_executions_credential_作業番号_通番 ita_<区分>_executions_vault_credential_作業番号 ita_<区分>_executions_git_credential_作業番号 |
リソース |
|
プロジェクト リソース名: ita_<区分>_executions_project_作業番号 |
リソース |
|
ジョブテンプレート リソース名: ita_<区分>_executions_jobtpl_作業番号_通番 |
リソース |
|
ワークフロージョブテンプレート リソース名: ita_<区分>_executions_workflowtpl_作業番号 |
リソース |
|
ジョブ リソース名: Job番号—ita_<区分>_executions_workflowtpl_作業番号 Job番号—ita_<区分>_executions_jobtpl_作業番号 |
リソース |
データリソース |
リソースタイプ |
備考 |
---|---|---|
Git リポジトリ /tmp/git_repositories/<区分>_作業番号 |
Gitリポジトリ |
ディレクトリごと削除 ※ の 設定値に関係なく削除される。 |
1.6.5. Ansible Automation ControllerでITA独自変数を利用する場合の留意事項¶
ITA独自変数を利用して作成したファイルの取り扱い¶
- Movementをconductorから実行している場合、Movement実行前に該当conductorインスタンス配下のファイルをAnsible Automation Controller(各実行ノード)のITA作業用ディレクトリ配下にファイル転送
- Movement実行前に該当Movement配下のファイルをAnsible Automation Controller(各実行ノード)のITA作業用ディレクトリにファイル転送
- Movementをconductorから実行している場合、Movement実行後にAnsible Automation Controller(各実行ノード)のITA作業用ディレクトリの該当Movementで作成したファイルを結果データにファイル転送
- Movement実行後にAnsible Automation Controller(各実行ノード)のITA作業用ディレクトリの該当conductorインスタンス配下に作成したファイルを結果データにファイル転送
留意事項¶
- ファイル名はansible「inventory_hostname」を含めるなどして、Movementに紐づいている作業対象ホスト毎に同一ファイル名に出力しないように工夫してください。
- conductorから実行する場合、複数のMovementで同一ファイル名への出力しないよう工夫してください。