関連リンク
#はじめに
前回まで、Exastro IT Automation(以下ITAと略)に搭載されている、
Ansible3モードのうちの2つ(Ansible-Legacy、Ansible-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にホスト追加を実施します。
具体的な手順はこのようになります。
- 事前準備
- Movementの設定
- オペレーションの設定
- 代入値管理(パラメータシートの作成)
- 作業実行
##1.事前準備
今回は以下の対話ファイルを使用します。
書式やモジュールについての詳細はマニュアルを参照するとよいです。
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
の中身を確認します。
# 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の自動設定について説明したいと思います。(現在作成中)
関連リンク
###索引