4. Ansible-LegacyRole

4.1. はじめに

本書では、Ansible driverのLegacyRole機能および操作方法について説明します。

4.2. Ansible-LegacyRole概要

Legacyモードと同じく、Ansible標準の機能を用いて各種ホストへ設定を投入します。
構築コードをパッケージとして登録し、作業パターンをRoleの組み合わせで構成します。
製品部門などが提供するRoleパッケージを用いて、製品のインストール、環境構築などを行う際に使われることを想定します。

4.3. Ansible-LegacyRole メニュー構成

本章では、Ansible-LegacyRoleのメニュー構成について説明します。

4.3.1. メニュー/画面一覧

  1. 基本コンソールのメニュー
Ansible-LegacyRoleで利用する 基本コンソールのメニュー一覧を以下に記述します。
表 4.9 基本コンソール メニュー/画面一覧

No

メニュー画面

説明

1

オペレーション一覧

オペレーション一覧をメンテナンス(閲覧/登録/更新/廃止)できます。


  1. Ansible共通のメニュー
Ansible共通のメニュー一覧を以下に記述します。
表 4.10 Ansible共通 メニュー/画面一覧

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

管理対象外変数リスト

変数抜出対象資材 」で抜出した変数で、各モード ▶ 代入値自動登録設定Movement名:変数名 に表示したくない変数を管理します。

8

共通変数利用リスト (※1)

Ansible共通 ▶ グローバル変数管理Ansible共通 ▶ ファイル管理Ansible共通 ▶ テンプレート管理 に登録されている変数が、どの素材( Ansible-Legacy ▶ Playbook素材集Ansible-Pioneer ▶ 対話ファイル素材集Ansible-LegacyRole ▶ ロールパッケージ管理 )で使用しているかを閲覧できます。

Tip

※1 非表示メニューは、内部処理で使用するメニューです。
ITAをインストールした状態では表示されないメニューに設定されています。
非表示メニューを表示するには、管理コンソール ▶ ロール・メニュー紐付管理 で各メニューの復活処理を行います。詳細は「 管理コンソール 」を参照してください。
内部処理で使用するメニューには、登録を行わないようにしてください。

  1. Ansible-LegacyRoleのメニュー
Ansible-LegacyRoleのメニュー一覧を以下に記述します。
表 4.11 Ansible-LegacyRole メニュー/画面一覧

No

メニュー・画面

説明

1

Movement一覧

Movementの一覧を管理します。

2

ロールパッケージ管理

ロールパッケージを管理します。

3

Movement-ロール紐付

Movementでインクルードするロールパッケージを管理します。

4

変数ネスト管理

多段変数が繰返配列で構成されている場合の最大繰返配列数を管理します。

5

代入値自動登録設定

パラメータシートに登録されているオぺレーションとホスト毎の項目値を紐付けるMovementと変数を管理します。

6

作業実行

作業実行するMovementとオペレーションを選択し実行を指示します。

7

作業管理

作業実行履歴を管理します。

8

作業状態確認

作業実行状態を表示します。

9

作業対象ホスト

作業実行毎の作業対象ホストを表示します。

10

代入値管理

作業実行毎の変数の具体値を表示します。

11

ロール名管理 (※1)

ロールパッケージ管理にアップロードしたロールパッケージファイル「zip」内に登録されているロール名とロールパッケージの紐付を閲覧できます。

12

Movement-変数紐付 (※1)

Movementで使用している変数を管理します。

13

多段変数メンバー管理 (※1)

ロールパッケージ管理にアップロードしたロールパッケージファイル「zip」内のデフォルト変数定義ファイルやITA readmeファイルで定義している多段変数の構造を管理します。

14

多段変数配列組合せ管理 (※1)

ロールパッケージ管理にアップロードしたロールパッケージファイル「zip」内のデフォルト変数定義ファイルやITA readmeファイルで定義している多段変数配列組合せを管理します。

Tip

※1 非表示メニューは、内部処理で使用するメニューです。
ITAをインストールした状態では表示されないメニューに設定されています。
非表示メニューを表示するには、管理コンソール ▶ ロール・メニュー紐付管理 で各メニューの復活処理を行います。詳細は「 管理コンソール 」を参照してください。
内部処理で使用するメニューには、登録を行わないようにしてください。

4.4. Ansible-LegacyRole利用手順

Ansible-LegacyRoleの利用手順について説明します。

4.4.1. Ansible-LegacyRoleの作業フロー

以下は、Ansible-LegacyRoleで作業を実行するまでの流れです。
  • 作業フロー詳細と参照先

    1. 作業対象への接続情報を登録
      Ansible共通 ▶ 機器一覧 から、作業対象への接続情報を登録します。
      詳細は「 機器一覧 」を参照してください。
    2. オペレーション名の登録
      基本コンソール ▶ オペレーション一覧 から、作業用のオペレーション名を登録します。
      詳細は「 オペレーション一覧 」を参照してください。
    3. Ansible Automation Controllerホスト情報を登録(必要に応じて実施)
      Ansible共通 ▶ Ansible Automation Controllerホスト一覧 から、Ansible Automation Controllerのホスト情報を登録します。
      詳細は「 Ansible Automation Controller ホスト一覧 」を参照してください。
    4. インターフェース情報の登録
      Ansible共通 ▶ インターフェース情報 から、Ansible Core、Ansible Automation Controllerのどちらを実行エンジンにするかを選択し、実行エンジンのサーバへの接続情報を登録します。
      詳細は「 インターフェース情報 」を参照してください。
    5. Movementの登録
      Ansible-LegacyRole ▶ Movement一覧 から、作業用のMovementを登録します。
      詳細は「 Movement一覧 」を参照してください。
    6. ロールパッケージの登録
      Ansible-LegacyRole ▶ ロールパッケージ管理 から、作業で使用するロールパッケージを登録します。
      詳細は「 ロールパッケージ管理 」を参照してください。
    7. グローバル変数の登録(必要に応じて実施)
      Ansible共通 ▶ グローバル変数管理 から、ロールパッケージ内で使用するグローバル変数を登録します。
      詳細は「 グローバル変数管理 」を参照してください。
    8. テンプレートファイルの登録(必要に応じて実施)
      Ansible共通 ▶ テンプレート管理 から、ロールパッケージ内で使用するテンプレートファイルとテンプレート埋込変数を登録します。
      詳細は「 テンプレート管理 」を参照してください。
    9. ファイル素材の登録(必要に応じて実施)
      Ansible共通 ▶ ファイル管理 から、ロールパッケージ内で使用するファイル素材とファイル埋込変数を登録します。
      詳細は「 ファイル管理 」を参照してください。
    10. 管理対象外変数の登録(必要に応じて実施)
      Ansible共通 ▶ 管理対象外変数リスト から、変数抜出対象の資材から抜出した変数で、 Ansible-LegacyRole ▶ 代入値自動登録Movement名:変数名 に表示したくない変数を登録します。
      詳細は「 管理対象外変数リスト 」を参照してください。
    11. Movementにロールパッケージを登録
      Ansible-LegacyRole ▶ Movement-ロール紐付 から、登録したMovementでインクルードするロールパッケージを登録します。
      詳細は「 Movement-ロール紐付 」を参照してください。
    12. 多段変数の最大繰返数を登録(必要に応じて実施)
      Ansible-LegacyRole ▶ 変数ネスト管理 から、多段変数で配列定義されているメンバー変数の配列の最大繰返数を登録します。
      詳細は「 変数ネスト管理 」を参照してください。
    13. パラメータシートの作成
      パラメータシート作成・定義 から、作業対象の設定に使用するデータを登録するためのパラメータシートを作成します。
      詳細は「 パラメータシート作成機能 」を参照してください。
    14. パラメータシートにデータを登録
      前項で作成したパラメータシートから、作業対象の設定に使用するデータを登録します。
      詳細は「 パラメータシート作成機能 」を参照してください。
    15. 代入値自動登録設定
      Ansible-LegacyRole ▶ 代入値自動登録設定 から、パラメータシートに登録されているオペレーションとホスト毎の項目の設定値と、Movementの変数を紐付けます。
      詳細は「 代入値自動登録設定 」を参照してください。
    16. 作業実行
      Ansible-LegacyRole ▶ 作業実行 から、Movementとオペレーションを選択し作業の実行を行います。
      詳細は「 作業実行 」を参照してください。
    17. 作業状態確認
      Ansible-LegacyRole ▶ 作業状態確認 から、実行した作業の状態をリアルタイムで閲覧できます。また、作業の緊急停止や、実行ログ、エラーログを監視することができます。
      詳細は「 作業状態確認 」を参照してください。
    18. 作業履歴確認
      Ansible-LegacyRole ▶ 作業管理 から、実行した作業の一覧が表示され履歴が確認できます。
      詳細は「 作業管理 」を参照してください。

4.5. Ansible-LegacyRole メニュー操作方法説明

本章では、Ansible-LegacyRoleで利用するメニューについて説明します。

4.5.1. 基本コンソール

基本コンソールについての操作は「 基本コンソール 」を参照してください。

4.5.2. Ansible共通

Ansible共通についての操作は「 Ansible共通 」を参照してください。

4.5.3. Ansible-LegacyRole

本節では、Ansible-LegacyRoleでの操作について記載します。

Movement一覧

  1. Movement情報のメンテナンス(閲覧/登録/更新/廃止)を行います。
    サブメニュー画面(Movement一覧)

    図 4.14 サブメニュー画面(Movement一覧)

  2. 登録 ボタンより、Movement情報の登録を行います。
    登録画面(Movement一覧)

    図 4.15 登録画面(Movement一覧)

  3. 登録画面の項目一覧は以下のとおりです。
    表 4.12 登録画面項目一覧(Movement一覧)

    項目

    説明

    入力必須

    入力方法

    制約事項

    MovementID

    登録時に自動採番した36桁の文字列が表示されます。

    自動入力

    Movement名

    Movementの名称を入力します。

    手動入力

    最大長255バイト

    遅延タイマー

    Movementの実行が指定期間遅延した場合に Ansible-LegacyRole ▶ 作業状態確認ステータス を「実行中(遅延)」として警告表示したい場合に指定期間(1~)を入力します。(単位:分)

    未入力の場合は警告表示しません。

    手動入力

    0~2,147,483,647

    Ansible利用情報

    ホスト指定形式

    IPアドレスで表現しないホストを指定したい場合に「ホスト名」を選択します。

    リスト選択

    説明欄記載のとおり。

    WinRM接続

    作業対象がWindowsServerの場合に「True」を選択します。

    リスト選択

    説明欄記載のとおり。

    ヘッダーセクション ※1

    ITAが自動生成する親Playbookの先頭からrolesセクションまでのセクションを編集します。

    未入力の場合は以下を適用します。

    - hosts: all
      remote_user: "{{ __loginuser__ }}"
      gather_facts: no
      become: yes
      # winrm接続の場合は become: yesは適用しません。
    

    各パラメータ値を変数で記述することも出来ます。

    become_user: '{{△vvv△}}'
    
    △:半角スペース
    ':シングル・ダブルコーテーションで必ず囲んで下さい。
    

    パラメータ値を変数で記述する場合の詳細は、「 インベントリファイル追加オプションとヘッダセクションのパラメータ値で変数抜出の対象となる変数の種類と書式 」を参照してください 。

    変数の具体値は Ansible-LegacyRole ▶ 代入値自動登録設定 から登録します。

    手動入力

    最大長4000バイト

    オプションパラメータ

    Movement固有のオプションパラメータを入力します。

    オプションパラメータについての詳細は「 オプションパラメータ一覧 」を参照してください。

    • Ansible共通 ▶ インターフェース情報実行エンジン が「Ansible Core」の場合
      ansible-playbookコマンドのオプションパラメータを入力します。
    • Ansible共通 ▶ インターフェース情報実行エンジン が「Ansible Automation Controller」の場合
      ジョブテンプレートのパラメータを入力します。
      ジョブテンプレートについての詳細は、Ansible Automation Controller公式マニュアルのユーザガイドを参照してください。

    Movement共通のオプションパラメータは Ansible共通 ▶ インターフェース情報オプションパラメータ から入力します。

    手動入力

    最大長4000バイト

    ansible.cfg

    作業実行時に使用するansible.cfgをアップロードします。

    未アップロードの場合は、デフォルトが使用されます。

    また、 Ansible-LegacyRole ▶ ロールパッケージ管理ロールパッケージファイル(ZIP形式) にansible.cfgが含まれている場合は、アップロードしたansible.cfgで上書きされます。

    ファイル選択

    最大サイズ100Mバイト

    Ansible Automation Controller利用情報

    実行環境 ※2

    Ansible Automation Controllerに構築されている実行環境が表示されます。

    使用する実行環境を選択します。

    未選択の場合は、Ansible Automation Controllerに設定されているデフォルトの実行環境が使用されます。

    リスト選択

    説明欄記載のとおり。

    備考

    自由記述欄です。

    手動入力

    最大長4000バイト

    Tip

    ※1 ヘッダーセクションで「become: yes」を設定した場合
    作業対象に以下の設定が必要です。
    ログインユーザの sudo権限を NOPASSWD付で /etc/sudoers に設定します。

       Demo_user ALL=(ALL) NOPASSWD:ALL

    Tip

    ※2 「 Ansible Automation Controllerデータ同期 」により取得したデータから選択します。

    警告

    WinRM接続 で「True」を選択した場合は接続するホストをすべてWindowsServerとみなします。

ロールパッケージ管理

  1. ユーザが作成したロールパッケージファイル(zip)のメンテナンス(閲覧/登録/更新/廃止)を行います。
    ロールパッケージファイルは、「roles」のある階層のディレクトリをzipにて圧縮したものを登録してください。ロールパッケージディレクトリ構成などは「 ロールパッケージの記述 」を参照してください。
    サブメニュー画面(ロールパッケージ管理)

    図 4.16 サブメニュー画面(ロールパッケージ管理)

  2. 登録 ボタンより、ロールパッケージの登録を行います。
    登録画面(ロールパッケージ管理)

    図 4.17 登録画面(ロールパッケージ管理)

  3. 登録画面の項目一覧は以下のとおりです。
    表 4.13 登録画面項目一覧(ロールパッケージ管理)

    項目

    説明

    入力必須

    入力方法

    制約事項

    項番

    登録時に自動採番した36桁の文字列が表示されます。

    自動入力

    ロールパッケージ名

    ITAで管理するロールパッケージ名を入力します。

    手動入力

    最大長255バイト

    ロールパッケージファイル

    作成したロールパッケージファイル(zip 形式)をアップロードします。

    アップロードするロールパッケージファイルに含まれるPlaybookファイルは、文字コードがUTF-8でBOMなしで作成して下さい。

    ファイル選択

    最大サイズ100Mバイト

    ターゲット

    Linux

    Linuxで使用可能なPlaybookの場合、「*」を選択します。

    未選択でも、作業実行に影響はありません。

    リスト選択

    説明欄記載のとおり。

    Windows

    Windowsで使用可能なPlaybookの場合、「*」を選択します。

    未選択でも、作業実行に影響はありません。

    リスト選択

    説明欄記載のとおり。

    その他

    Linux、Windows以外の用途で使用可能なPlaybookの場合、Playbookの用途を入力します。

    手動入力

    最大長4000バイト

    Python要否

    ターゲットの機器にPythonが必要の場合、「*」を選択します。

    未選択でも、作業実行に影響はありません。

    リスト選択

    説明欄記載のとおり。

    説明

    Playbookについての説明を入力します。

    手動入力

    最大長4000バイト

    説明(en)

    Playbookについての説明を英語で入力します。

    手動入力

    最大長4000バイト

    備考

    自由記述欄です。

    手動入力

    最大長4000バイト

警告

ロールパッケージ内に定義した変数を取り出すタイミング
内部の処理でロールパッケージ内に定義している変数を抽出します。抽出した変数は、「 代入値自動登録設定 」で具体値の登録が可能になります。
抽出のタイミングはリアルタイムではないので、「 代入値自動登録設定 」で変数が扱えるまでに 時間がかかる 場合があります。

警告

Movement単位での変数名の一意管理
Ansible-LegacyRoleでは、変数抜出対象資材から抜出した変数名をMovement単位で一意管理します。
同一ロールパッケージ内でロールを跨って同じ変数名を使用していて、変数構造が異なる場合、 Ansible-LegacyRole ▶ ロールパッケージ管理 の登録でエラーとなります。
具体的には、通常変数と多段変数や多段変数同士で多段構造が異なる場合、同じ変数名を使用していると登録でエラーとなります。
なお、ロールパッケージが異なる場合は上記の場合でも登録することが可能です。

具体例は下記の通りです。
e.g.)
表 4.14 具体例

No.

ロールパッケージ

ロール

defaults/main.yml

動作

パターン

1

package_A

role1

VAR_SAMPLE:
- { VAR_001: "aaaa" , VAR_002:"bbbb" }

・変数名が同じ
・多段変数のメンバー変数の定義が同じ
・メンバー変数の記載順序が異なる

role2

VAR_SAMPLE:
- { VAR_002: "bbbb" , VAR_001:"aaaa" }

2

package_A

role1

VAR_SAMPLE:
- { VAR_001: "aaaa" , VAR_002:"bbbb" }

×

・変数名が同じ
・多段変数のメンバー変数の定義が異なる

role2

VAR_SAMPLE:
- { VAR_003: "aaaa" , VAR_004:"bbbb" }

3

package_A

role1

VAR_SAMPLE:
- { VAR_001: "aaaa" , VAR_002:"bbbb" }

×

・変数名が同じ
・通常変数と多段変数が混在している

role2

VAR_SAMPLE: aaaa

Movement-ロール紐付

  1. Movementでインクルードするロールパッケージのメンテナンス(閲覧/登録/更新/廃止)を行います。
    サブメニュー画面(Movement-ロール紐付)

    図 4.18 サブメニュー画面(Movement-ロール紐付)

  2. 登録 ボタンより、Movementでインクルードするロールパッケージの登録を行います。
    登録画面(Movement-ロール紐付)

    図 4.19 登録画面(Movement-ロール紐付)

  3. 登録画面の項目一覧は以下のとおりです。
    表 4.15 登録画面項目一覧(Movement-ロール紐付)

    項目

    説明

    入力必須

    入力方法

    制約事項

    項番

    登録時に自動採番した36桁の文字列が表示されます。

    自動入力

    Movement

    Ansible-LegacyRole ▶ Movement一覧 で登録した Movement名 が表示されます。
    Movementを選択します。

    リスト選択

    ロールパッケージ名:ロール名

    Ansible-LegacyRole ▶ ロールパッケージ管理 で登録した ロールパッケージファイル(ZIP形式) に含まれているロール名が表示されます。
    Movementでインクルードするロールパッケージのロールを選択します。
    同一Movementに複数のロールパッケージは登録出来ません。

    リスト選択

    インクルード順序

    ロールの実行順序(1~)を入力します。
    入力されたインクルード順序(昇順)でロールが実行されます。

    手動入力

    1~2,147,483,647

    備考

    自由記述欄です。

    手動入力

    最大長4000バイト

変数ネスト管理

  1. Ansible-LegacyRole ▶ ロールパッケージ管理 で登録した ロールパッケージファイル(ZIP形式) で定義されている多段変数で、繰返配列が定義されているメンバー変数の配列の最大繰返数のメンテナンス(閲覧/更新)を行います。
    利用方法については、「 代入値自動登録設定 」を参照てください。
    サブメニュー画面(変数ネスト管理)

    図 4.20 サブメニュー画面(変数ネスト管理)

  2. 編集 ボタンより最大繰返数の更新を行います。
    登録画面(変数ネスト管理)

    図 4.21 登録画面(変数ネスト管理)

  3. 登録画面の項目一覧は以下のとおりです。
    表 4.16 登録画面項目一覧(変数ネスト管理)

    項目

    説明

    入力必須

    入力方法

    制約事項

    項番

    登録時に自動採番した36桁の文字列が表示されます。

    自動入力

    最大繰返数

    配列の最大繰返数を1~1,024の範囲で入力します。
    最大繰返数の上限値は「管理コンソール - システム設定」より識別ID「MAXIMUM_ITERATION_ANSIBLE-LEGACYROLE」の設定値にて、1~1024の範囲内で変更することが可能です。

    手動入力

    入力値1~1,024(「システム設定」の設定値により変動)

    備考

    自由記述欄です。

    手動入力

    最大長4000バイト

警告

初期登録および繰返数の更新タイミング
内部の処理でロールパッケージ内に定義している多段変数繰返配列で定義されているメンバー変数の繰返数を初期登録します。初期登録後、変数ネスト管理で繰返数を更新することが出来ます。
なお、初期登録および繰返数の更新はリアルタイムではないので、「 代入値自動登録設定 」で変数が扱えるまでに 時間がかかる 場合があります。

代入値自動登録設定

  1. パラメータシートの項目の設定値とMovementの変数との紐付管理(閲覧/登録/更新/廃止)を行います。
    登録した情報は作業実行により Ansible-LegacyRole ▶ 代入値管理Ansible-LegacyRole▶ 作業対象ホスト に反映されます。
    サブメニュー画面(代入値自動登録設定)

    図 4.22 サブメニュー画面(代入値自動登録設定)

  2. 登録 ボタンより、パラメータシートの項目の設定値とMovementの変数との紐付登録を行います。
    登録画面(代入値自動登録設定)

    図 4.23 登録画面(代入値自動登録設定)

  3. 登録画面の項目一覧は以下のとおりです。
    表 4.17 登録画面項目一覧(代入値自動登録設定)

    項目

    説明

    入力必須

    入力方法

    制約事項

    項番

    登録時に自動採番した36桁の文字列が表示されます。

    自動入力

    パラメータシート(From)

    メニューグループ:メニュー:項目

    パラメータシートの項目が表示されます。

    対象の項目を選択します。

    選択対象となるパラメータシートはパラメータシート作成 ▶ パラメータシート定義・作成 ▶ 作成対象で、パラメータシート(ホスト/オペレーションあり)を選択して作成したパラメータシートの項目になります。

    リスト選択

    説明欄記載のとおり。

    代入順序

    パラメータシートがバンドルの場合、パラメータシートで登録している 代入順序 を入力します。

    ※1

    手動入力

    1~2,147,483,647

    登録方式

    IaC変数(To) で選択した変数の具体値に設定する内容を選択します。

    • Value型
      項目の設定値が IaC変数(To) で選択した変数の具体値になります。
    • Key型
      項目の名称が IaC変数(To) で選択した変数の具体値になります。

    リスト選択

    説明欄記載のとおり。

    Movement名

    Ansible-LegacyRole ▶ Movement一覧 で登録したMovement名 が表示されます。

    Movementを選択します。

    リスト選択

    説明欄記載のとおり。

    IaC変数(To)

    Movement名:変数名

    Ansible-LegacyRole ▶ Movement-ロール紐付 で登録した資材で使用している変数が表示されます。

    パラメータシート(From) で選択した項目の具体値を紐付けたい変数を選択します。

    リスト選択

    説明欄記載のとおり。

    Movement名:変数名:メンバー変数

    Movement名:変数名 で多段変数を選択した場合に多段変数のメンバー変数が表示されます。

    メンバー変数を選択します。

    ※2

    リスト選択

    説明欄記載のとおり。

    代入順序

    複数具体値が設定できる変数の場合に必須入力になります。

    具体値の代入順序(1~)を入力します。入力値に従い昇順で代入されます。具体値が複数ない場合でも代入順序(1~)を入力します。

    ※3

    手動入力

    1~2,147,483,647

    NULL連携

    パラメータシートの具体値がNULL(空白)の場合にAnsible-LegacyRole ▶ 代入値管理 にNULL(空白)の値を登録するかを選択します。

    • True
      パラメータシートの値がどのような値でも Ansible-LegacyRole ▶ 代入値管理 に登録が行われます。
    • False
      パラメータシートに値が入力されていれば Ansible-LegacyRole ▶ 代入値管理 に登録が行われます。

    未選択の場合、Ansible共通 ▶ インターフェース情報NULL連携 の値が適用されます。

    リスト選択

    説明欄記載のとおり。

    備考

    自由記述欄です。

    手動入力

    最大長4000バイト

Tip

※1:パラメータシート(バンドル)を使用する場合のみ必須
パラメータシート(バンドル)のリピート設定されている項目とMovementの変数を紐付ける場合、 Ansible-LegacyRole ▶ 代入値自動登録設定 でパラメータシート(From) の代入順序を入力する必要があります。
パラメータシート(バンドル)と代入値自動登録設定の関係を以下の図に示します。
パラメータシート(バンドル)使用時の代入値自動登録設定登録方法

Tip

※2:選択した変数が多段変数の場合のみ必須
多段変数の場合にのみメンバー変数の選択が必要になります。メンバー変数に表示される変数は具体値を必要とする変数のみです。
メンバー変数名の表示は各階層の変数を「.」でつないで表示します。
繰返配列の場合は「[ ]」で繰返位置(0~)をつないで表示します。繰返し配列の数は Ansible-LegacyRole ▶ 変数ネスト管理 で設定を行います。

e.g.) 代入値自動登録設定で選択できるメンバー変数と変数ネスト管理で最大繰返数を更新後に選択できるメンバー変数の確認
  1. 下記のようにロールパッケージの変数定義ファイル(defaults/main.yml)に変数を定義して、 Ansible-LegacyRole ▶ ロールパッケージ管理 でロールパッケージを登録します。
    変数定義ファイルの記述内容
    VAR_aaaa:
      - name: alice
        object: obj1
        directory:
          - craete_dir: /dir
        password:
          - craete_pass:
            sample:
              - sample_pass: pass1
          - craete_pass:
            sample:
              - sample_pass: pass2
        user:
          root:
            - craete_users:
              prod:
                - prod_user: user1
              dev:
                - dev_user: user2
    
  2. 1. のように変数を定義してロールパッケージを登録した場合、 Ansible-LegacyRole ▶ 変数ネスト管理 には下記のように登録され、 Ansible-LegacyRole ▶ 代入値自動登録設定 ではデフォルトで下記のメンバー変数が選択できます。
    表 4.18 変数ネスト管理の登録内容

    変数名

    メンバー変数名

    最大繰返数

    VAR_aaaa

    0

    1

    VAR_aaaa

    0.directory

    1

    VAR_aaaa

    0.password

    1

    VAR_aaaa

    0.password.sample

    1

    VAR_aaaa

    0.user.root

    1

    VAR_aaaa

    0.user.root.dev

    1

    VAR_aaaa

    0.user.root.prod

    1

    表 4.19 代入値自動登録設定で選択可能なメンバー変数

    変数名

    メンバー変数名

    VAR_aaaa

    [0].directory[0].create_dir

    VAR_aaaa

    [0].name

    VAR_aaaa

    [0].object

    VAR_aaaa

    [0].password[0].create_pass

    VAR_aaaa

    [0].password[0].sample[0].sample_pass

    VAR_aaaa

    [0].user.root[0].create_users

    VAR_aaaa

    [0].user.root[0].dev[0].dev_user

    VAR_aaaa

    [0].user.root[0].prod[0].prod_user

  3. Ansible-LegacyRole ▶ 変数ネスト管理 でメンバー変数「0.user.root.prod」の最大繰返数を初期値"1"から"3"に更新します。
    表 4.20 変数ネスト管理の更新内容

    変数名

    メンバー変数名

    最大繰返数

    VAR_aaaa

    0.user.root.prod

    3

  4. 3. のようにメンバー変数を更新した場合、 Ansible-LegacyRole ▶ 代入値自動登録設定 で選択できるメンバー変数も下記のように更新されます。
    (メンバー変数 [0].user.root[0].prod[1].prod_user と [0].user.root[0].prod[2].prod_user がプルダウンに追加されました。)
    表 4.21 代入値自動登録設定で選択可能なメンバー変数

    変数名

    メンバー変数名

    VAR_aaaa

    [0].directory[0].create_dir

    VAR_aaaa

    [0].name

    VAR_aaaa

    [0].object

    VAR_aaaa

    [0].password[0].create_pass

    VAR_aaaa

    [0].password[0].sample[0].sample_pass

    VAR_aaaa

    [0].user.root[0].create_users

    VAR_aaaa

    [0].user.root[0].dev[0].dev_user

    VAR_aaaa

    [0].user.root[0].prod[0].prod_user

    VAR_aaaa

    [0].user.root[0].prod[1].prod_user

    VAR_aaaa

    [0].user.root[0].prod[2].prod_user

Tip

※3:選択した変数が複数具体値設定可能な変数の場合のみ必須
特定の複数具体値変数に対して代入順序が連続していなくても問題ありません。
連続していない場合は詰めて処理されます。

e.g.)複数具体値変数に代入順序を入力して作業実行する場合
  1. 下記のようにロールパッケージの変数定義ファイル(defaults/main.yml)に変数を定義して、 Ansible-LegacyRole ▶ ロールパッケージ管理 でロールパッケージを登録します。
    変数定義ファイルの記述内容
    VAR_substitutionA:
      - user-name
      - group-name
      - meta-name
    
    VAR_substitutionB:
      - login
      - authorized
      - space
      - cluster
    
  2. Ansible-LegacyRole ▶ 代入値自動登録設定 でパラメータシートに登録されている項目の設定値とRole内の変数を紐付けします。
    表 4.22 パラメータシートの登録内容

    ホスト名

    オペレーション名

    パラメータ

    項目1

    項目2

    項目3

    項目4

    test-host

    test-ope

    value1

    value2

    value3

    value4

    表 4.23 代入値自動登録設定の登録内容

    メニュー名

    項目

    変数名

    代入順序

    sample-menu

    項目1

    VAR_substitutionA

    30

    sample-menu

    項目2

    VAR_substitutionA

    10

    sample-menu

    項目3

    VAR_substitutionA

    20

    sample-menu

    項目1

    VAR_substitutionB

    2

    sample-menu

    項目2

    VAR_substitutionB

    4

    sample-menu

    項目3

    VAR_substitutionB

    1

    sample-menu

    項目4

    VAR_substitutionB

    3

  3. 作業実行時、ホスト変数ファイル(host_vars/test-host)には、代入値自動登録設定で登録した変数が下記のように出力されます。
    ホスト変数ファイルへの出力内容
    VAR_substitutionA:
      - value2
      - value3
      - value1
    VAR_substitutionB:
      - value3
      - value1
      - value4
      - value2
    

Tip

ホスト変数ファイルへの出力
代入値自動登録設定で登録した変数のみが作業実行時にホスト変数ファイルへ出力されます。
多段変数も同様で具体値を登録しているメンバー変数のみとなります。

e.g.) 代入値自動登録設定で具体値を登録した変数と作業実行時にホスト変数ファイルに出力される変数の確認
  1. 下記のようにロールパッケージの変数定義ファイル(defaults/main.yml)に変数を定義して、 Ansible-LegacyRole ▶ ロールパッケージ管理 でロールパッケージを登録します。
    変数定義ファイルの記述内容
    VAR_output:
      - name: alice
        group: root
        user:
          root:
            - craete_users:
              prod:
                - prod_user: user1
              dev:
                - dev_user: user2
    
  2. Ansible-LegacyRole ▶ 代入値自動登録設定 でパラメータシートに登録されている項目の設定値とRole内の変数を紐付けします。
    表 4.24 パラメータシートの登録内容

    ホスト名

    オペレーション名

    パラメータ

    項目1

    項目2

    test-host

    test-ope

    value1

    value2

    表 4.25 代入値自動登録設定の登録内容

    メニュー名

    項目

    変数名

    メンバー変数名

    sample-menu

    項目1

    VAR_output

    [0].name

    sample-menu

    項目2

    VAR_output

    [0].user.root[0].dev[0].dev_user

  3. 作業実行時、ホスト変数ファイル(host_vars/test-host)には、代入値自動登録設定で登録した変数が下記のように出力されます。
    ホスト変数ファイルへの出力内容
    VAR_output:
      - name: value1
        user:
          root:
          - dev:
            - dev_user: value2
    

Tip

ファイル埋込変数とテンプレート埋込変数をPlaybookの変数に紐付して使用する例
e.g.) ファイル埋込変数 CPF_test とテンプレート埋込変数 TPF_sample を代入値自動登録設定でPlaybookの変数に紐付して使用する場合
  1. Ansible共通 ▶ ファイル管理Ansible共通 ▶ テンプレート管理 で下記のように登録します。
    表 4.26 ファイル管理の登録内容

    ファイル埋込変数名

    ファイル素材

    CPF_test

    test_file.txt

    表 4.27 テンプレート管理の登録内容

    テンプレート埋込変数名

    テンプレート素材

    TPF_sample

    sample.tpl

  2. パラメータシート定義・作成 で「Ansible共通:ファイル管理:ファイル埋込変数名」「Ansible共通:テンプレート管理:テンプレート埋込変数名」をパラメータシートの項目としてパラメータシート作成後、パラメータシートで項目の設定値としてファイル埋込変数とテンプレート埋込変数を登録します。
    パラメータシート定義・作成画面

    図 4.24 パラメータシート定義・作成画面

    表 4.28 サンプルパラメータシートの登録内容

    ホスト名

    オペレーション名

    パラメータ

    ファイル管理

    テンプレート管理

    test-host

    test-ope

    CPF_test

    TPF_sample

  3. Ansible-LegacyRole ▶ 代入値自動登録設定 で2. のパラメータシートに登録した項目の設定値とPlaybookの変数を紐付して Ansible-LegacyRole ▶ 作業実行 で作業実行します。
    表 4.29 代入値自動登録設定の登録内容

    メニュー名

    項目

    変数名

    サンプルパラメータシート

    ファイル管理

    VAR_filetest

    サンプルパラメータシート

    テンプレート管理

    VAR_temptest

  4. Ansible-LegacyRole ▶ 作業状態確認代入値確認 ボタンで具体値に '{{ CPF_test }}' '{{ TPF_sample }}' が反映されていることが確認できます。
    作業状態確認の代入値管理

    図 4.25 作業状態確認の代入値管理

作業実行

作業対象のMovementをMovement一覧から選択します。
作業対象のオペレーションをオペレーション一覧から選択します。
作業実行には、3種類の実行種別があります。実行種別に応じたボタンをクリックすることで Ansible-LegacyRole ▶ 作業状態確認 に遷移し、実行されます。
作業実行画面

図 4.26 作業実行画面

実行種別ついて以下に説明します。
  1. 作業実行
    作業実行 ボタンをクリックすると、作業対象に対して構築作業を実行します。
  2. ドライラン
    ドライラン ボタンをクリックすると、実際に作業対象に対して構築作業をせず、ドライランを行うことができます。
    ドライランを行った場合の動作は、Ansible-Playbookコマンドの--checkパラメータを指定した実行となります。
  3. パラメータ確認
    パラメータ確認 ボタンをクリックすると、実際に作業対象に対して構築作業をせず、 Ansible-LegacyRole ▶ 代入値自動登録設定 に登録してある情報から作業対象のオペレーションとMovementに紐付く情報を Ansible-LegacyRole ▶ 代入値管理Ansible-LegacyRole ▶ 作業対象ホスト に反映し、確認することが出来ます。

Tip

予約日時の指定
「予約日時」を入力することで、実行を予約することがきます。
「予約日時」には、未来の日時のみ入力可能です。

作業状態確認

作業の実行状態を監視します。
サブメニュー画面(作業状態確認)

図 4.27 サブメニュー画面(作業状態確認)

  1. 実行状態表示
    実行状況に応じた「ステータス」が表示されます。
    また、実行ログ、エラーログに実行状況の詳細が表示されます。
    「実行種別」には、作業実行の場合は「通常」、ドライランの場合は「ドライラン」、パラメータ確認の場合は「パラメータ確認」が表示されます。
    ステータスが想定外エラーで終了した場合、エラーログにメッセージが表示されます。
    「呼出元Conductor」には、Conductorから実行した場合に、どのConductorから実行されたかを表示します。Ansible-LegacyRoleから直接実行した場合は空欄になります。
  2. 作業対象ホスト確認
    作業対象ホスト確認 ボタンで Ansible-LegacyRole ▶ 作業対象ホスト が表示され、作業対象のオペレーションとMovementに絞り込んだホストが表示されます。
  3. 代入値確認
    代入値確認 ボタンで Ansible-LegacyRole ▶ 代入値管理 が表示され、作業対象のオペレーションとMovementに絞り込んだ変数と具体値が表示されます。
  4. 緊急停止/予約取り消し
    緊急停止 ボタンで構築作業を停止させることができます。
    また、実行前の「予約実行」の作業の場合は、 予約取消 ボタンが表示されます。 予約取消 ボタンで予約実行が取り消せます。
  5. 実行ログ表示
    Ansible Automation Controllerで実行した場合、作業対象の Ansible共通 ▶ 機器一覧ユーザパスワードssh秘密鍵ファイルパスフレーズ接続タイプインスタンスグルーブ の項目値でグループ化された作業対象の単位でPlaybookが実行され、ansibleの実行ログが分割されます。
    さらに、 Ansible共通 ▶ インターフェース情報Ansible-LegacyRole ▶ Movement一覧オプションパラメータ でジョブスライス数を指定することによりグループ化された作業対象をさらにジョブスライス数で分割しplaybookが実行され、ansibleの実行ログも分割されます。
    実行ログが分割された場合、実行ログがTabで分割表示され、表示したい実行ログを選択する事ができます。
    実行ログのTabに表示される名称は以下の2種類があります。
    exec.log: 全ての実行ログをまとめたログファイルです。
    exec.log以外: 分割された実行ログファイルです。ファイル命名規則は以下になります。
    exec_<グループ番号>_<通番>
    表 4.30 分割された実行ログファイルの命名要素

    要素

    内容

    グループ番号

    作業対象の Ansible共通 ▶ 機器一覧ユーザパスワードssh秘密鍵ファイルパスフレーズ接続タイプインスタンスグルーブ の項目値でグルーブ化した 1 からの通番です。

    通番

    ジョブスライス数の設定によりグループ内を分割した 1 からの通番です。
    0 の場合はジョブスライス数で分割されなかったことを表します。
  6. ログ検索
    実行ログ、エラーログは、各ログのログ検索テキストボックスに検索したい文字列を入力することで、入力した文字列の箇所がハイライトで表示されます。
    また、「ログ検索」のチェックボックスをチェックすると、該当する行だけが表示されます。
    実行ログ、エラーログのリフレッシュ表示間隔と最大表示行数を、 Ansible共通 ▶ インターフェース情報状態監視周期(単位ミリ秒)進行状態表示行数 で設定できます。
  7. 投入データ
    実行したPlaybookなどをダウンロードすることができます。
    投入データの構成は「 Ansible実行時に使用される投入データとITAメニューの紐づけ 」を参照してください。
  8. 結果データ
    実行ログ、エラーログなどをダウンロードすることができます。
    結果データの構成は「 Ansible実行時に作成される結果データ 」を参照してください。

作業管理

作業の履歴を閲覧できます。
条件を指定し フィルタ ボタンをクリックすると、該当する作業の履歴を閲覧できます。
詳細 ボタンで Ansible-LegacyRole ▶ 作業状態確認 に遷移し、実行状態の詳細を閲覧することができます。
サブメニュー画面(作業管理)

図 4.28 サブメニュー画面(作業管理)

  1. 閲覧画面の項目一覧は以下のとおりです。
    表 4.31 閲覧画面項目一覧(作業管理)

    項目

    説明

    作業No.

    自動採番した36桁の文字列が表示されます。

    実行種別

    実行種別を表示します。

    ステータス

    作業実行のステータスを表示します。

    実行エンジン

    作業実行した実行エンジンを表示します。

    呼出元Conductor

    Conductorから実行した場合にConductor名が表示されます。

    実行ユーザ

    作業実行したユーザ名が表示されます。

    登録日時

    作業実行でボタンをクリックした日時が表示されます。

    Movement

    ID

    作業実行で選択したMovementのIDが表示されます。

    名称

    作業実行で選択したMovementの名称が表示されます。

    遅延タイマー

    作業実行で選択したMovementの遅延タイマーが表示されます。

    Ansible利用情報

    ホスト指定形式

    作業実行で選択したMovementのホスト指定形式が表示されます。

    WinRM接続

    作業実行で選択したMovementのWinRM接続が表示されます。

    ヘッダーセクション

    作業実行で選択したMovementのヘッダーセクションが表示されます。

    ansible.cfg

    作業実行で選択したMovementのansible.cfgがアップロード出来ます。

    Ansible Automation Controller 利用情報

    実行環境

    作業実行で選択したMovementの実行環境が表示されます。

    オペレーション

    No.

    作業実行で選択したオペレーションのIDが表示されます。

    名称

    作業実行で選択したオペレーションの名称が表示されます。

    投入データ

    投入データ一式をzip形式でアップロード出来ます。

    結果データ

    結果データ一式をzip形式でアップロード出来ます。

    作業状況

    予約日時

    作業実行で予約日時を設定した場合に予約日時が表示されます。

    開始日時

    作業実行を開始した日時が表示されます。

    終了日時

    作業実行が終了した日時が表示されます。

    収集状況

    ステータス

    収集機能のステータスを表示します。

    収集ログ

    収集機能のログがダウンロード出来ます。

    Conductorインスタンス番号

    Conductorから実行された場合にConductorインスタンス番号を表示します。

作業対象ホスト

  1. 作業実行毎の作業対象ホストを閲覧できます。
    サブメニュー画面(作業対象ホスト)

    図 4.29 サブメニュー画面(作業対象ホスト)

  2. 閲覧画面の項目一覧は以下のとおりです。
    表 4.32 閲覧画面項目一覧(作業対象ホスト)

    項目

    説明

    項番

    作業実行時に自動採番した36桁の文字列が表示されます。

    作業No

    作業実行時の作業Noが表示されます。

    オペレーション

    作業実行時のオペレーションが表示されます。

    Movement名

    作業実行時のMovementが表示されます。

    ホスト名

    作業実行時の対象ホストが表示されます。

    備考

    自由記述欄です。

代入値管理

  1. 作業実行毎の変数の具体値を閲覧できます。
    サブメニュー画面(代入値管理)

    図 4.30 サブメニュー画面(代入値管理)

  2. 閲覧画面の項目一覧は以下のとおりです。
    表 4.33 閲覧画面項目一覧(代入値管理)

    項目

    説明

    項番

    作業実行時に自動採番した36桁の文字列が表示されます。

    作業No

    作業実行時の作業Noが表示されます。

    オペレーション

    作業実行時のオペレーションが表示されます。

    Movement名

    作業実行時のMovementが表示されます。

    ホスト名

    作業実行時の作業対象ホストが表示されます。

    Movement名:変数名

    作業実行時の変数が表示されます。

    Movement名:変数名:メンバー変数

    多段変数のメンバー変数が表示されます。

    具体値

    文字列

    Sensitive設定

    「True」または「False」が表示されます。

    作業実行時の変数の具体値が表示されます。

    • Sensitive設定 が「True」の場合
      パラメータシートで入力した具体値は暗号化されITA上では表示されません。変数の具体値は、ansible-vaultで暗号化した内容が設定されます。
    • Sensitive設定 が「False」の場合
      パラメータシートで入力した具体値が表示されます。

    ファイル

    作業実行の変数に紐づくファイル名が表示されます。

    代入順序

    複数具体値変数の場合に、代入順序が表示されます。

    備考

    自由記述欄です。

4.6. 構築コード記述方法

4.6.1. ロールパッケージの記述

ロールパッケージの基本書式については、Ansible公式マニュアルのAnsibleベストプラクティスを参照してください。
ロールパッケージ管理 」でアップロードするロールパッケージファイルのZipに含めるべきディレクトリと、ITAでの扱いについて記述します。
(上位ディレクトリ)
│
├─── site.yml                                             ・・・・・・・・・・・・・・・・・・・・・・・・ (1)
│
├─── hosts                                                ・・・・・・・・・・・・・・・・・・・・・・・・ (2)
│
├─── group_vars                                           ・・・・・・・・・・・・・・・・・・・・・・・・ (3)
│
├─── host_vars                                            ・・・・・・・・・・・・・・・・・・・・・・・・ (4)
│
├─── ITA readme                                           ・・・・・・・・・・・・・・・・・・・・・・・・ (5)
│
└─── roles                                                ・・・・・・・・・・・・・・・・・・・・・・・・ (6)
        │
        ├─ [role名①]                                       ・・・・・・・・・・・・・・・・・・・・・・・・ (7)
        │     │
        │     ├── readme.md                               ・・・・・・・・・・・・・・・・・・・・・・・・ (8)
        │     │
        │     ├── tasks                                   ・・・・・・・・・・・・・・・・・・・・・・・・ (9)
        │     │      ├── main.yml
        │     │      └── user_files
        │     │      └── user.yml
        │     │
        │     ├── handlers                                ・・・・・・・・・・・・・・・・・・・・・・・・ (10)
        │     │      ├── main.yml
        │     │      └── user_files
        │     │      └── user.yml
        │     │
        │     ├── templates                               ・・・・・・・・・・・・・・・・・・・・・・・・ (11)
        │     │      ├── hosts.j2
        │     │      └── user_files
        │     │      └── user.j2
        │     │
        │     ├── files                                   ・・・・・・・・・・・・・・・・・・・・・・・・ (12)
        │     │      └── sudoers
        │     │
        │     ├── vars                                    ・・・・・・・・・・・・・・・・・・・・・・・・ (13)
        │     │      └─ main.yml
        │     │
        │     ├── defaults                                ・・・・・・・・・・・・・・・・・・・・・・・・ (14)
        │     │      ├── main.yml
        │     │      └── user_files
        │     │              └── user.yml
        │     │
        │     ├── meta                                    ・・・・・・・・・・・・・・・・・・・・・・・・ (15)
        │     │      └── main.yml
        │     │
        │     上記以外のディレクトリやファイルが存在する場合、 ITAは関知しません。
        │
        └─ [role名②] ロールの数に特に制限はありません。
含めるべきファイル
〇 :必要
△ :任意

ITAでの取り扱い

(1) site.yml (マスターPlaybook)

ITAで作成されるため、存在する場合は上書きされます。

(2) hosts

ITAで作成されるため、存在する場合は上書きされます。

(3) group_vars

ITAでは扱わないため、存在する場合は削除されます。

(4) host_vars

ITAで作成されるため、存在する場合は上書きされます。

(5) ITA readme

ITA readmeはロール毎に定義します。無くてもエラーにはなりません。
ITA readmeは、文字コードがUTF-8のBOMなしで作成してください。
詳細については「 ITAreadme の記述 」をご確認ください。

(6) roles

rolesディレクトリが存在しない場合はアップロードでエラーになります。

(7) roles/[role 名①]

role名ディレクトリが存在しない場合はアップロードでエラーになります。
tasksディレクトリを含むディレクトリをroleとして扱います。
ディレクトリ階層が深くても問題ありません。

(8) roles/[role 名①]/readme.md

ITA は関知しません。

(9) roles/[role 名①]/tasks

tasksディレクトリは必須です。
playbookファイルは、文字コードがUTF-8のBOMなで作成してください。
main.ymlがない場合はアップロードでエラーになります。
main.yml以外のファイルも配置できます。
サブディレクトリにmain.yml以外のファイルを配置できます。

(10) roles/[role 名①]/handlers

handlersディレクトリの有無は関知しません。
playbookファイルは、文字コードがUTF-8のBOMなしで作成してください。
main.ymlの有無は関知しません。
main.yml以外のファイルも配置できます。
サブディレクトリにファイルを配置できます。

(11) roles/[role 名①]/templates

templatesディレクトリの有無は関知しません。
ファイルは、文字コードがUTF-8のBOMなしで作成してください。
サブディレクトリにファイルを配置できます。

(12) roles/[role 名①]/files

filesディレクトリの有無は関知しません。
ファイル及びサブディレクトリの有無は関知しません。
ファイル内容は関知しません。

(13) roles/[role 名①]/vars

varsディレクトリの有無は関知しません。
playbookファイルは、文字コードがUTF-8のBOMなしで作成してください。
ファイル及びサブディレクトリの有無は関知しません。
ファイル内容は関知しません。

(14) roles/[role 名①]/defaults

defaultsディレクトリの有無は関知しません。
playbookファイルは、文字コードがUTF-8のBOMなしで作成してください。
main.ymlの有無は関知しません。
main.yml以外のファイルも配置できます。
サブディレクトリにmain.yml以外のファイルを配置できます。

(15) roles/[role 名①]/meta

metaディレクトリの有無は関知しません。
playbookファイルは、文字コードがUTF-8のBOMなしで作成してください。
ファイル及びサブディレクトリの有無は関知しません。
ファイル内容は関知しません。

マスターPlaybook

ITAで作成するマスターPlaybookはへッダーセクションとrolesセクションで構成されます。
  1. へッダーセクション
    ヘッダーセクションは、デフォルト値が決まっていますが、 Ansible-LegacyRole ▶ Movement一覧ヘッダーセクション で変更することが出来ます。
    ▼ヘッダーセクションのデフォルト値
    - hosts: all
      remote_user: "{{ __loginuser__ }}"
      gather_facts: no
      become: yes
    # winrm接続の場合は「become: yes」は省略されます。
    
  2. rolesセクション
    アップロードさたロールパッケージ内のロールを、 Ansible-LegacyRole ▶ Movement-ロール紐付インクルード順序 に従いroleで実行します。
    ../../_images/role_session.png

ロールパッケージ内のロール名をディレクトリ階層にした場合の留意点

下記のようなディレクトリ階層のロールパッケージを例に説明します。
└── roles
       ├── parent
       │     ├── sample_role1
       │     │ ├── defaults
       │     │ └── tasks
       │     └── sample_role2
       │            ├── defaults
       │            ├── sample_role3
       │            │     ├── defaults
       │            │     └── tasks
       │            ├── sample_role4
       │            │     ├── defaults
       │            │     └── tasks
       │            └── tasks
       ├── sample_role5
       │     └── defaults
       └── sample_role6
              ├── defaults
              └── tasks
  1. ロールとして認識するディレクトリは、tasksディレクトリがあるディレクトリになります。
    この例だと、ロールして扱うディレクトリ階層(ロール名)は以下の3個になります。
    • parent/sample_role1

    • parent/sample_role2

    • sample_role6

  2. tasksディレクトリが複数あるディレクトリ階層の除外
    parent/sample_role2/sample_role3とparent/sample_role2/sample_role4にもtasksディレクトリがありますが、parent/sample_role2にtasksディレクトリがありロールとして認識していますので、ロールとして扱いません。

4.6.2. ITAreadme の記述

Playbook中に直接変数を定義したくない場合など、defaults変数定義ファイルに変数が定義されていない際に、ITA readmeファイルに変数の定義を設定することで、代入値管理機能で変数の値を指定することができます。

ITA readmeのファイル名の命名規則

 ita_readme_[ロール名].yml
 e.g.)

ロール名

作成するファイル名

mysql

ita_readme_mysql.yml

mysql/install

ita_readme_mysql%install.yml

警告

roleのディレクトリ階層が深い場合、ロール名に含まれる / を % に置き換える必要があります。

ITA readmeのフォーマット

フォーマットはYAML形式となります。
文字コードはUTF-8のBOMなしで作成してください。
ITA readmeに定義されている変数の具体値がホスト変数ファイルに出力されるまでの流れを、以降「 代入値管理機能。 」と称します。
また、ITA readmeとdefaults変数定義ファイルで変数定義が重なった場合、ITA readmeの変数構造が適用されます。

Tip

ITA readmeとdefaults変数定義ファイルで変数定義が重なった場合など、以下のルールで処理されます。
表 4.34 変数採用ルール

defaults変数定義ファイル

ITA readme

変数構造の適用先

定義あり

定義なし

デフォルト変数定義ファイル

定義なし

定義あり

ITA readme

定義あり

定義あり

ITA readme

ITA readmeは、作業実行時はロールパッケージから切り離されます。
ITA readmeに記載した変数と具体値は、ansibleに渡ることはありません。

4.6.3. 「ita_readme」の活用例

Ansible-LegacyRoleにおける「ita_readme」の活用例について、観点1~7を列挙します。

前提として、Ansible-LegacyRole(「roles」ディレクトリ)は外部から取得したものとします。
以下は、「ita_readme」を用いてアップロードから結果確認までを表した全体イメージ図です。
全体イメージ図

図 4.31 全体イメージ図

以降、上記の図をベースに観点1~7について掘り下げていきます。
表 4.35 Ansible Automation Controllerシステム要件

No.

観点

1

外部から取得したAnsible-LegacyRoleを編集せず利用する

2

「ita_readme」の役割

3

「defaults/main.yml」に記載の変数定義およびデフォルト値について

4

「host_varsファイル」と「ITAのパラメータシート」について

5

「defaults/main.yml」に追記したい場合の救済処置

6

playbookにおけるlength評価への応用

7

playbookにおけるdefined評価への応用

  • 観点1:外部から取得したAnsible-LegacyRoleを編集せず利用する
    外部(Galaxy等)から取得したAnsible-LegacyRole(「roles」ディレクトリ)は編集を加えずに利用いただくことが可能です。
    そのため「ita_readme」を「roles」ディレクトリの外に置いて、Ansible-LegacyRole(「roles」ディレクトリ)内で使われている変数にパラメータを与えることが可能となっております。
観点1のイメージ図

図 4.32 観点1のイメージ図

  • 観点2:「ita_readme」の役割について
    「ita_readme」は変数名および変数の型をITAに伝えるための機能です。
    言い換えれば、「ita_readme」は変数の具体値(パラメータ)を定義するための機能ではありません(具体値を記載してもITAで認識しません)。

    具体値を与える方法を以降の観点で説明します。
観点2のイメージ図

図 4.33 観点2のイメージ図

  • 観点3:「defaults/main.yml」に記載の変数定義およびデフォルト値について
    「roles」配下の「defaults/main.yml」はそのまま変更なくansibleに渡されます。
    変数定義およびデフォルト値はhost_varsで定義されない限り有効となります。(例:『VAR_A:aaa』)
観点3のイメージ図

図 4.34 観点3のイメージ図

  • 観点4:「host_varsファイル」と「ITAのパラメータシート」について
    host_varsファイルはITAのパラメータシートから実行ごとに自動作成されます。
観点4のイメージ図

図 4.35 観点4のイメージ図

  • 観点5:「defaults/main.yml」に追記したい場合の救済処置
    Ansible-LegacyRole(「roles」ディレクトリ)に変更を加えたい場合、救済処置として「ita_readme」に変数名および型を記述することが可能です。

    既に「defaults/main.yml」に記載がある変数を、改めて「ita_readme」に定義する必要はありません。
    もし二つのファイルで同じ変数が定義されている場合は、「ita_readme」側が優位になります。

    ※下図のとおり、変数「VAR_H」を「ita_readme」に記述することで変数の追加が可能
観点5のイメージ図

図 4.36 観点5のイメージ図

  • 観点6:playbookにおけるlength評価への応用
    変数に対し具体値があるか否かによって、length評価における条件分岐に活用することが可能です。
    例えば、「defaults/main.yml」に『VAR_C:[]』がある状態で、変数「VAR_C」に具体値を与えずに実行した場合length=0となります。
    反対に、何らかの具体値を与えて実行した場合length>0となります。(例:『VAR_X:sss』)
観点6のイメージ図

図 4.37 観点6のイメージ図

  • 観点7:playbookにおけるdefined評価への応用
    変数に対し具体値を定義しているか否かによって、defined評価による条件分岐に活用することが可能です。
    例えば、「defaults/main.yml」で定義のない変数「VAR_G」と「VAR_H」を、「ita_readme」で定義を記述します。「ita_readme」に記述することで、ITAのパラメータシートで取り扱うことが可能となります。

    変数「VAR_G」に具体値を付与せず実行すると、「defaults/main.yml」および「host_vars」に定義されずに動作するためdefined→falseとなります。
    反対に、変数「VAR_H」に具体値「kkk」を付与し実行すると、「host_vars」に定義されて動作するためdefined→trueとなります。
観点7のイメージ図

図 4.38 観点7のイメージ図

4.7. 付録

4.7.1. Ansible実行時に使用される投入データとITAメニューの紐づけ

ITAの各メニューより情報を抜出してAnsible実行に必要な投入データを作ります。この際、 Ansible共通 ▶ 機器一覧パスワードAnsible-LegacyRole ▶ 代入値管理Sensitive設定 が「True」に設定されている変数の具体値は、ansible-vaultで暗号化されています。
「投入データ」はZIP形式で Ansible-LegacyRole ▶ 作業状態確認投入データ よりダウンロードが可能です。
ダウンロードした投入データを所定のディレクトリに解凍することで、Ansibleを直接実行することも可能です。

各種データとITAメニューの関係性は以下の通りです。

Ansible-LegacyRole投入データ

表 4.36 Ansible-LegacyRole投入データ

メニューグループ

メニュー

項目

ディレクトリ解凍時のパス

Ansible-LegacyRole

ロールパッケージ管理

ロールパッケージ

/roles

Ansible 共通

テンプレート管理

テンプレート素材

/template_files

Ansible 共通

ファイル管理

ファイル素材

/copy_files

Ansible-LegacyRole

代入値管理

具体値(ファイル)

/upload_files

Ansible 共通

グローバル変数管理

変数名/具体値

/host_vars

Ansible-LegacyRole

代入値管理

変数名/具体値

/host_vars

Ansible-LegacyRole

template 管理

テンプレート埋込変数

/host_vars

Ansible-LegacyRole

ファイル管理

ファイル埋込変数

/host_vars

Ansible共通

機器一覧

ログインユーザ ID
ログインパスワード ※ansible-vault で暗号化
ホスト名
DNSホスト名
IPアドレス

/host_vars

Ansible共通

機器一覧

ssh 認証鍵ファイル

/ssh_key_files

Ansible共通

機器一覧

サーバ証明書

/winrm_ca_files

Ansible共通

インターフェース情報

オプションパラメータ

/AnsibleExecOption.txt

Ansible-LegacyRole

Movement一覧

オプションパラメータ

/AnsibleExecOption.txt

Ansible共通

機器一覧

ログインユーザ ID
ログインパスワード ※ansible-vault で暗号化
ホスト名
DNSホスト名
IP アドレス
インベントリファイル追加オプション
WinRM 接続情報
接続オプション

/hosts

Ansible-LegacyRole

Movement-ロール紐付

ロール名・インクルード順序

/site.yml

4.7.2. Ansible実行時に作成される結果データ

「投入データ」をansibleで実行した結果を「結果データ」としてZIP形式で保存します。
「結果データ」はZIP形式で Ansible-LegacyRole ▶ 作業状態確認結果データ よりダウンロードが可能です。

Ansible-LegacyRole 結果データに保存されるファイル一覧

表 4.37 Ansible-LegacyRole結果データに保存されるファイル一覧

ファイル名

記録内容

Ansible Coreの場合

Ansible Automation Controllerの場合

result.txt

Ansibleの実行結果を記録

error.log

作業実行時のエラーメッセージ出力先ファイル
Ansible-playbbokコマンドの標準エラー出力の出力先ファイル
作業実行確認のエラーログに表示される内容

exec.log.org

Ansible-playbbokコマンドの標準出力の出力先ファイル

exec.log

Aexec.log.orgを加工したファイル
作業実行確認の実行ログに表示される内容

exec_<作業番号>_<グループ番号>

分割された実行ログファイル
ファイル名の命名規則は「 作業状態確認 」の実行ログ表示を参照してください。

forced.txt

緊急停止をした場合の記録ファイル

user_files

実行したplaybookでITA独自変数「__workflowdir__」にファイル出力をした場合の出力先ディレクトリ。