7
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

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

Last updated at Posted at 2020-09-14

関連リンク

#はじめに
前回まで、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側)

image.png

##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
image.png

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


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

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

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

入力内容
OS種別名 CentOS7
SV

image.png


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


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

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

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

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

image.png


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


###対話種別の作成

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

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

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

image.png


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


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

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


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


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

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

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

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

image.png


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


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

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

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

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

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

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

image.png


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


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

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

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


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


image.png


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


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

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

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

image.png


⑤[項目]をクリックし、新しい項目を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

image.png


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


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

「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

image.png

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

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

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

作業対象ホスト
image.png

代入値管理
image.png

##5.作業実行

###Movementの実行

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

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


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


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

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

また、ターゲットホストに移動し/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の自動設定について説明したいと思います。(現在作成中)

関連リンク

###索引

7
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?