Exastro IT Automationの3つのAnsibleモードを使ってみた(③Ansible-Pioneer編)


関連リンク

#はじめに
前回まで、Exastro IT Automation(以下ITAと略)に搭載されている、
Ansible3モードのうちの2つ(Ansible-LegacyAnsible-LegacyRole)について説明しました。

今回はその3モードの最後の1つ、Ansible-Pioneerについて説明したいと思います。
引き続き、Ansible実習編を参考しています。

##作業環境


  • Exastro IT Automation 1.5.0
  • CentOS Linux 7(ITAサーバ)
  • CentOS Linux 7(targetサーバ)
  • Windows 10(ITAクライアント)
  • Google Chrome(Win10側)

##Ansible-Pioneerとは
Ansible-Pioneerとは、なんとITAの独自モジュールです。
対話ファイルというものを作成すると、直接実行するPlaybookからPioneerモジュールを使って対話ファイルを順番に実行していきます。

Ansibleのどのモジュールを使っても自動化できない場合、手動作業を挟んでしまうと自動化のメリットが半減しますよね。
そこで、Ansible-Pioneerが自動化を止めない最後の切り札となるわけです。
Telnet・SSHでログイン可能であれば対応可能なので、幅広い機器に対応できますね。
これでより柔軟な自動化を実現できます。

Ansible-Pioneerについて詳しくは、コミュニティサイトのAnsible-Driver座学編を参考にして下さい.

#③Ansible-Pioneer編
今回はPioneer独自モジュールを用い、対象ホストの/tmp/hostsにホスト追加を実施します。

具体的な手順はこのようになります。

  1. 事前準備
  2. Movementの設定
  3. オペレーションの設定
  4. 代入値管理(パラメータシートの作成)
  5. 作業実行

##1.事前準備
今回は以下の対話ファイルを使用します。
書式やモジュールについての詳細はマニュアルを参照するとよいです。

add_host.yml

conf:
  timeout: 20
  
exec_list:
  - expect: 'password'
    exec: '{{ __loginpassword__ }}'

#“register”を用い、‘cat /tmp/hosts’ の標準出力を登録
  - command: 'cat /tmp/hosts'
    prompt: root@{{ __loginhostname__ }}
    register: result_stdout
    when:
      - VAR_hosts_ip is define
      - VAR_hosts_name is define

  - command: 'echo {{ item.0 }} {{ item.1 }} >> /tmp/hosts'
    prompt: 'root@{{ __loginhostname__ }}'
    when:
      - VAR_hosts_ip is define
      - VAR_hosts_name is define
#“with_items”を用いた繰り返し処理を定義
    with_items:
      - '{{ VAR_hosts_ip }}'
      - '{{ VAR_hosts_name }}'
#“exec_when”を用いた分岐処理を定義
#判定は繰り返しごとに行われる
    exec_when:
      - result_stdout no match({{ item.0 }} *{{ item.1 }})
#登録された出力中に指定文字列が存在しないときに処理を行う

##2.Movementの設定
ここでは、Roleに関連付けるMovementの設定について述べます。
###Movementの作成
「Ansible-Pioneer」メニューグループ >> 「Movement一覧」
を選択し、登録作業ボタンより登録作業を開始します。

必須入力項目は「Movement名」「ホスト指定形式」です。

※Movement:各機器に対する構築ツールを使った構築、設定などの作業の単位

今回は下表のように設定します。

入力内容
Movement名 add_host
ホスト指定形式 IP

①必須入力項目を入力
②入力後、[登録]ボタンをクリック


###OS種別マスタの作成
PioneerはターゲットホストのOSに応じて、実際に投下されるコードを選択することができます。

「Ansible-Pioneer」メニューグループ >> 「OS種別マスタ」
を選択し、登録作業ボタンより登録作業を開始します。

今回のターゲットホストはCentOS7のサーバなので、以下のように設定します。

入力内容
OS種別名 CentOS7
SV


①必須入力項目を入力
②入力後、[登録]ボタンをクリック


###機器一覧情報への追加
先程登録したOS種類とターゲットマシンを紐付けます。

「基本コンソール」メニューグループ >> 「機器一覧」を選択します。
[フィルタ]ボタンを押下し、対象となる機器(target)の[更新]を押下します。

次に下表のように選択・設定します。

入力内容
プロトコル ssh
OS種別 CentOS7


①必須入力項目を入力
②入力後、[更新]ボタンをクリック


###対話種別の作成

「Ansible-Pioneer」メニューグループ >> 「対話種別リスト」
を選択し、登録作業ボタンより登録作業を開始します。

次に下表のように選択・設定します。

入力内容
対話種別名 hosts追加


①必須入力項目を入力
②入力後、[登録]ボタンをクリック


###対話ファイル素材の登録
「Ansible-Pioneer」メニューグループ >> 「対話ファイル素材集」
を選択し、登録作業をします。

対話種別、OS種別は先程作成したものを、
プレイブック素材には先ほど作成した「add_hosts.yml」を使用します。
ファイル指定後は必ず事前アップロードボタンを押す必要があります。


①必須入力項目を入力(対話ファイル素材選択後、「事前アップロード」ボタンをクリック)
②入力後、[登録]ボタンをクリック


###Movementに対話ファイルを関連付ける
「Ansible-Pioneer」メニューグループ >> 「Movement詳細」
を選択し、登録作業をします。

必須入力項目は「Movement」「対話種別」「インクルード順序」です。

次に下表のように選択・設定します。

入力内容
Movement add_hosts
対話種別 hosts追加
インクルード順序 1


①必須入力項目を適宜選択、入力
②[登録]ボタンをクリック


##3.オペレーションの設定
オペレーションを作成し、Movementとホストを関連付けます。

ここでのオペレーションは、作業全体を示すITAシステム内で使用する作業名称のことを指します。

「基本コンソール」メニューグループ >> 「投入オペレーション一覧」
を選択し、登録を開始します。

必須入力項目は「オペレーション名」「実施予定日」です。

今回は下表のように設定します。

項目名 入力内容
オペレーション名 Pioneer_Practice
実施予定日時 (任意の値)


①必須入力項目「オペレーション名」「実施予定日」の入力
②[登録]ボタンをクリック


##4.代入値管理(パラメータシートの作成)
###パラメータシートの作成
パラメータシートを作成し、ターゲットマシンに適用するパラメータを管理します。

「メニュー作成」メニューグループ >> 「メニュー定義/作成」
を選択、必須項目を入力します。

必須入力項目は「メニュー名」「作成対象」「表示順序」「用途」「対象メニューグループ>>ホスト」です


①必須入力項目を適宜選択、入力
②[対象メニューグループ]ボタンをクリック



③メニューグループを図のように選択
 (メニューグループは前々回記事「Ansibleモード共通設定」にて作成済み)
④[決定]ボタンをクリック


###パラメータシートの項目名を定義
前項で[決定]ボタンをクリックしたその続きです。

ここではシートの項目を定義します。

項目を追加し、「項目名」「入力方式」「最大バイト数」を下図のように設定します。


⑤[項目]をクリックし、新しい項目を3つ追加
⑥図のように選択、入力、変更
⑦[作成]ボタンをクリック


###パラメータの登録
ここまでで、パラメータシートの作成を行いました。
ここからはターゲットマシンの設定に使用するデータを登録します。

「AnsibleDriver実践用」メニューグループ >> 「Pioneer実践」
を選択し、登録を開始します。

必須入力項目は「ホスト名」「オペレーション」「パラメータ」です。

具体的な設定は以下の表を参考にします。

ホスト名 オペレーション hosts_ip hosts_ip_second hosts_name hosts_name_second
(対象のホスト) Pioneer_practice 192.168.10.10 192.168.20.5 www.test.com www.pioneer.com


①必須入力項目を適宜選択、入力
②[登録]ボタンをクリック


###代入値自動登録設定
各項目と変数を関連付けます。

「Ansible-Pioneer」メニューグループ >> 「代入値自動登録設定」
を選択し、登録作業をします。
具体的な設定は以下の表を参考にします。

メニュー 項目 登録方式 Movement Value変数-変数名 代入順序
Pioneer実践 hosts_ip Value型 add_hosts VAR_hosts_ip 1
Pioneer実践 hosts_ip_second Value型 add_hosts VAR_hosts_ip 2
Pioneer実践 hosts_name Value型 add_hosts VAR_hosts_name 1
Pioneer実践 hosts_name_second Value型 add_hosts VAR_hosts_name 2

###代入値・作業ホストの確認

「Ansible-Pioneer」メニューグループ >> 「作業対象ホスト」
「Ansible-Pioneer」メニューグループ >> 「代入値管理」
の[フィルタ]をクリックし、「一覧/更新」を確認します。

設定した項目が、「pioneer代入値自動登録設定プロシージャ」によって正しい値に指定されているかを確認します。

作業対象ホスト

代入値管理

##5.作業実行

###Movementの実行

「Ansible-LegacyRole」メニューグループ >>「作業実行」を選択します。

実行するMovementとオペレーションを選択し、ページ下にある[実行]をクリックすることで作業が開始します。


①作成したMovementの選択
②作成したオペレーションの選択
③[実行]ボタンをクリック


###実行結果の確認
作業実行すると画面が遷移して、実行ステータスやログが表示されます。
また、投入データや結果データをまとめたZIPファイルをダウンロードすることができます。

適宜、必要項目を確認します。

また、ターゲットホストに移動し/tmp/hostsの中身を確認します。

target(centos7)
# cat /tmp/hosts

以下が表示され、ホストが追加されていれば成功です。

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.10.10 www.test.com
192.168.20.5 www.pioneer.com

#おわりに
ITAに搭載されているAnsible3モードの使い方について、3つの記事を作成し説明しました。

次回は、Windows Serverの自動設定について説明したいと思います。(現在作成中)

関連リンク

###索引