Ansible Driver【実習編】※本書では「Exastro IT Automation」を「ITA」として記載します。

Exastro IT Automation Version 1.10
Exastro developer

目次
■はじめに
① Ansible-Legacy
1. 作業環境とシナリオ
2. 必要なファイルの作成
3. Movementの設定
4. Conductorの作成
5. オペレーションの登録
6. 機器一覧への登録
7. パラメータシート作成
8. データの登録
9. 代入値自動登録設定
10.代入値・対象ホストの確認
11.作業の実行③ Ansible-Pioneer
1. 作業環境とシナリオ
2. 対話ファイルの作成
3. OS種別の作成
4. Movementの設定
5. オペレーションの登録
6. 機器一覧への登録
7. パラメータシート作成
8. データの登録
9. 代入値自動登録設定
10.代入値・対象ホストの確認
11.作業の実行② Ansible-LegacyRole
1. 作業環境とシナリオ
2. ロールパッケージの準備
3. Movementの設定
4. オペレーションの登録
5. 機器一覧への登録
6. パラメータシート作成
7. データの登録
8. 代入値自動登録設定
9. 代入値と対象ホストの確認
10.作業の実行

A) 付録

はじめに 本書の使い方▌本書の使い方⚫ ３つのシナリオを体感する「Ansible-Legacy」 「Ansible-LegacyRole」 「Ansible-Pioneer」3モードを実際に利用し、それぞれの強みと利用法を体感いただけます。
各シナリオは独立しており、必要な章を選んで学習できます。
第1章 Ansible-Legacy編
Playbook(YAMLファイル)を登録、利用する

第2章 Ansible-LegacyRole編

ロールパッケージを登録、利用する

第3章 Ansible-Pioneer編
ITAが提供するAnsible独自モジュールを用い、対話ファイルを登録、利用する
Exastro3

第１章 Ansible‐Legacy編

1.1 作業環境とシナリオ▌作業環境
本章で使用する作業環境は以下の通りです。(第2章Ansible-LegacyRole編に共通)
ITAホストサーバーとは別に、ターゲットとなるサーバーをご用意ください。

ITAホストサーバー• CentOS 7 (※1)
• ITA 1.10.0• Ansible 2.11.2
ターゲット• CentOS 7 (※2)
CentOS 7
ITA
1.10.0

Ansible2.11.2ITAホストサーバー

CentOS 7
ターゲットサーバー※1 今回はホストサーバーとしてCentOS7を利用致しますが、ITAはRHEL7系およびRHEL8系のOSで導入いただけます。
※2 Ansibleの動作対象となるOSであれば、問題なく利用いただけます。
Exastro5

1.1 作業環境とシナリオ▌シナリオ
大別して3ステップから成る作業を実行し、Playbookの再利用性を体感いただけます。
① Movementを組み合わせてConductorを作成する。
② メニューを作成し、パラメータを登録する。
③ 作成したConductorを実行する。

▌イメージ
今回は「Apache・Tomcat」両サービスのインストールと起動を行います。

① Conductorを１つ作成する
Playbook①：Yumインスト―ル② パラメータシートを作成（Playbookへの代入値や作業対象を管理）

Playbook②：ポートの開放
Playbook③：index.htmlの配置
Playbook④：サービスの起動③ 両サービスの追加を確認する
・Apache・Tomcat

Playbook⑤：サービスの起動確認
ターゲットサーバ

Exastro6

1.2 必要なファイルの作成 (1/4)▌Playbookの作成
本シナリオで使用する５つのPlaybookを作成しましょう。
⚫ 注意事項✓文字コードは“UTF-8”✓改行コードは“LF”✓拡張子は”yml”✓コロンの後は半角スペースを入れる✓インデントを揃える- name: install package with yum
yum:
name: "{{ item }}"state: present
with_items: "{{ VAR_package_name }}"Exastro(例） 1-yum_install.yml

ファイル名：1-yum_install.yml
指定したパッケージをインストールします。
変数には複数具体値変数が代入されます。

7

1.2 必要なファイルの作成 (2/4)▌Playbookの作成- name: install firewalldyum:
pkg: firewalld
state: present

ファイル名：2-open_port.yml
firewalldをインストール、起動し、指定したポート宛の通信を許可します。

- name: start firewalld
service:name: firewalld
state: started
enabled: yes- name: open ports
firewalld:
port: "{{ VAR_port_number }}“state: enabledpermanent: yes
immediate: true

Exastro8

1.2 必要なファイルの作成 (3/4)▌Playbookの作成- name: copy index.html
copy:
src: “{{ CPF_index_html }}”dest: /var/www/html/index.html
owner: rootgroup: root
mode: 0644
backup: yes
when: ‘VAR_service_name == “httpd”’

ファイル名: 3-copy_index.yml- name: start service
service:name: "{{ VAR_service_name }}"state: started
enabled: yes

ファイル名: 4-start_service.yml- name: check if service is running and enabledcommand: 'systemctl status {{ VAR_service_name }}'register: command_result
failed_when:- '"enabled" not in command_result.stdout'- '"running" not in command_result.stdout'

ファイル名: 5-check_service.yml

Exastroファイルをコピーし配置します。

指定したサービスを起動します。

サービスが起動したことを確認します。

9

1.2 必要なファイルの作成 (4/4)▌index.htmlの作成
本シナリオでは「ファイル管理機能」を利用した設定ファイルの配置を行います。
以下のファイルを作成してください。

以下のhtmlファイルをドキュメントルート直下に配置します。

ファイル名: index.html<html><head><title>私のページ</title></head><body>
Ansible-Driver実習<br></body></html>Exastro実行作業完了後、正しくindex.html
ファイルが配置されるとこのような画面が見えます。

10

1.3 Movementの設定 (1/4)▌Movementを作成する
先のPlaybookを関連付けるMovementを登録しましょう。
「Ansible-Legacy」メニューグループ > 「Movement一覧」メニュー① 「登録」サブメニュー の「登録開始」ボタンを押下する。
② 各項目で下表のように選択または入力し、「登録」ボタンを押下する。

2
Movement名

Exastroホスト指定形式

Install_Packages

IP

Open_Ports

IP

Start_Service

IP11

1.3 Movementの設定 (2/4)▌Playbookを登録する作成したPlaybookをITAに登録しましょう。
「Ansible-Legacy」メニューグループ > 「Playbook素材集」メニュー① 「登録」サブメニュー の「登録開始」ボタンを押下する。
② 「ファイルを選択」からPlaybookを選択し、「事前アップロード」ボタンを押下する。
③ 各項目で下表のように選択または入力し、「登録」ボタンを押下する。

2

ExastroPlaybook素材名

Playbook素材

yum_install

1-yum_install.yml

open_ports

2-open_ports.yml

copy_index

3-copy_index.yml

start_service

4-start_service.yml

check_service_state

5-check_service.yml

12

1.3 Movementの設定 (3/4)▌素材ファイルを登録する
用意したhttpd設定ファイルを、ITAに登録しましょう。
「Ansible共通」メニューグループ > 「ファイル管理」メニュー① 「登録」サブメニュー の「登録開始」ボタンを押下する。
② ［ファイルを選択］から素材ファイルを選択し、「事前アップロード」ボタンを押下する。
③ 各項目で下表のように選択または入力し、「登録」ボタンを押下する。

2
ファイル埋込変数名
CPF_index_html

Exastroファイル素材
index.html

13

1.3 Movementの設定 (4/4)▌MovementにPlaybookを登録する作成したMovementとPlaybook素材を関連付けましょう。作業内容を分割し、分かりやす
い名前をつけることで再利用が容易になります。
「Ansible-Legacy」メニューグループ > 「Movement-Playbook紐付」メニュー① 「登録」サブメニュー の「登録開始」ボタンを押下する。

② 各項目で下表のように選択または入力し、「登録」ボタンを押下する。

2

Point
セットで実行するPlaybookとして、「Start Service」には3つをまとめて関連付けています。

Exastro

関連付け表
Movement

Playbook素材

インクルード順序

Install Packages

yum_install

1

Open Ports

open_ports

1

Start Service

copy_index

1

Start Service

start_service

2

Start Service

check_service_state3
14

1.4 Conductorの作成▌Conductorを作成する
定義したMovementをまとめたConductorを作成しましょう。
「 Conductor」メニューグループ > 「Conductorクラス編集」メニュー

Conductorの名前を入力する。

3

Conductor名

1

サービス追加

作業順にノード同士を繋ぐ。
Movement

作業順序

Install Packages

1

Open Ports

2

Start Service

32

4 「登録」ボタンを押下する。

Exastroドラッグ＆ドロップで必要なMovementを追加する。

15

1.5 オペレーションの登録▌オペレーションを新規登録する
オペレーションを作成し、Movementとホストを関連付けましょう。
※オペレーションとは、作業全体を示すITAシステム内で使用する作業名称です。
「基本コンソール」メニューグループ > 「オペレーション一覧」メニュー① 「登録」サブメニュー の「登録開始」ボタンを押下する。
② 各項目で下表のように選択または入力し、「登録」ボタンを押下する。

2
オペレーション名

実施予定日時Install Apache(任意でご入力下さい)

Install Tomcat(任意でご入力下さい)※ 「実施予定日時」は管理用の項目です。自動的に処理が実行されるわけではありません。
Exastro16

1.6 機器一覧への登録▌機器一覧にホストを登録する
作業の実行対象となるホストをITAに登録しましょう。
「基本コンソール」メニューグループ > 「機器一覧」メニュー① 「登録」サブメニュー の「登録開始」ボタンを押下する。
② 各項目で下表のように選択または入力し、「登録」ボタンを押下する。

2
項目

Exastro

入力内容

HW機器種別SV

ホスト名(任意の値)IPアドレス(任意の値)

ログインユーザID(任意の値)

管理●

ログインパスワード(任意の値)

認証方式

パスワード認証17

1.7 パラメータシートの作成 (1/2)▌メニューを作成する
パラメータシートを作成し、ターゲットホストに適用するパラメータを管理しましょう。
「 メニュー作成」メニューグループ > 「メニュー定義・作成」メニュー > 「メニュー作
成情報」タブ
① 各項目で下表のように選択または入力し、次項の処理を実施する。

1
項目名

Exastro

入力内容

メニュー名

Legacy実践

作成対象

パラメータシート(ホスト/オペレーションあり)

表示順序

1

18

1.7 パラメータシートの作成 (2/2)▌パラメータシートの項目名を定義する
前項に続き、シートの項目を定義していきましょう。
「 メニュー作成」メニューグループ > 「メニュー定義・作成」メニュー① 「項目」ボタンを押下する。
② 各項目で下表のように選択または入力し、「作成」ボタンを押下する。
1

2

Exastro

項目名

入力方式

最大バイト数package_name

文字列(単一行)

32

package_name_sub

文字列(単一行)32

port_number

文字列(単一行)

32

service_name

文字列(単一行)

32

2

19

1.8 データの登録▌パラメータシートにデータを登録する
前項の操作でパラメータシートが作成されました。作成したメニューに移動し、データを入力していきましょう。
「入力用」メニューグループ > 「Legacy実践」メニュー(作成したメニュー)① 「登録」サブメニュー の「登録開始」ボタンを押下する。

② 各項目で下表のように選択または入力し、「登録」ボタンを押下する。

2
ホスト名

オペレーション

package_namepackage_name_sub

port_number

service_name(対象のホスト)

Install Apache

httpd

(空欄)

80/tcphttpd(対象のホスト)

Install Tomcat

tomcattomcat-webapps

8080/tcp

tomcatExastro20

1.9 代入値自動登録設定▌代入値自動登録設定を行う
パラメータシートの入力が終わったところで、各項目と変数を関連付けていきます。
「Ansible-Legacy」メニューグループ > 「代入値自動登録設定」メニュー① 「登録」サブメニュー の「登録開始」ボタンを押下する。
② 各項目で下表のように選択または入力し、「登録」ボタンを押下する。

2
メニュー

Exastro項目

登録方式

Movement

Value変数
変数名

代入順序

Legacy実践package_name

Value型

Install Packages

VAR_package_name1

Legacy実践package_name_sub

Value型

Install Packages

VAR_package_name2

Legacy実践

port_number

Value型Open Ports

VAR_port_number(空欄)

Legacy実践

service_name

Value型

Start Service

VAR_service_name

(空欄)

21

1.10 代入値・対象ホストの確認▌代入値と作業対象ホストを確認する
代入値自動登録により指定された値と対象ホストを確認しましょう。
「Ansible-Legacy」メニューグループ > 「作業対象ホスト」メニュー「Ansible-Legacy」メニューグループ > 「代入値管理」メニュー① 「表示フィルタ」サブメニューの「フィルタ」ボタンを押下する② 「legacy代入値自動登録設定プロシージャ」によって正しい値が指定されていることを確認する。

「作業対象ホスト」
メニュー「代入値管理」
メニュー

Exastro22

1.11 作業の実行 (1/3)▌Conductorを実行する
前項までの操作で、Conductorの作成と代入値の登録が終了しました。最後にConductorを実行し、結果を対象ホストで確認してください。
「Conductor」メニューグループ > 「Conductor作業実行」メニュー

1

実行するConductorを選択する。

2

オペレーションを選択する。

Point
今回は「Install Apache」「Install Tomcat」2つのオペレーションに対してConductorは同じものを利用して、2回作業実行します。

Exastro3

画面下部より、「実行」
ボタンを押下する。

Tips
実行後、自動で【Conductor作
業確認】へ画面遷移します。

23

1.11 作業の実行 (2/3)▌Conductorの実行結果を確認する
作業確認画面では、全体およびノードごとの実行結果を確認できます。投入したMovementを選択すると、詳細結果へのリンクを表示できます。
「Conductor」メニューグループ > 「Conductor作業確認」メニュー

1

確認したいノードを選択する。

2

リンクや作業の情報が表示される。

Tips「DONE」をクリックすることで詳細結果へ移動できます。

Exastro24

1.11 作業の実行 (3/3)▌Movement毎の詳細結果を確認する
リンクをクリックすると画面が遷移し、実行ステータスやログが表示されます。投入データ
や出力データを確認することもできます。
実行ステータス

ログ

Tips

Tips

投入データや結果データをまとめた
zipファイルをダウンロードできます。

以下のURLにて、Apache及びTomcatのインストールを確認できます。
Apache- http://(ホストのIPアドレス):80
Tomcat- http://(ホストのIPアドレス):8080

Exastro25

第２章 Ansible-LegacyRole編

2.1 作業環境とシナリオ(1/3)▌作業環境
本章で使用する作業環境は以下の通りです。(第1章Ansible-Legacy編と共通)
ITAホストサーバーとは別に、ターゲットとなるサーバーをご用意ください。

ITAホストサーバー• CentOS 7 (※1)
• ITA 1.10.0• Ansible 2.11.2
ターゲット• CentOS 7 (※2)
CentOS 7
ITA
1.10.0

Ansible2.11.2ITAホストサーバー

CentOS 7
ターゲットサーバー※1 今回はホストサーバーとしてCentOS7を利用致しますが、ITAはRHEL7系およびRHEL8系のOSで導入いただけます。
※2 Ansibleの動作対象となるOSであれば、問題なく利用いただけます。
Exastro27

2.1 作業環境とシナリオ(2/3)▌シナリオのイメージ
LegacyRoleの最たる特長は、ロールパッケージの登録・利用が可能な点です。
本章ではAnsible GalaxyからダウンロードしたRoleをITAに登録・実行する作業を行います。

①ダウンロード④ パラメータシートを作成(代入値を管理)

Role

メニュー作成Ansible-Galaxy

ITALegacyRole② ITAreadmeと読替表を作成③ Movement、オペレーションの登録を行う。

Exastroターゲットサーバ⑤ 作業を実行する

28

2.1 作業環境とシナリオ(3/3)▌ロールダウンロード
まず、以下のURLからRoleを取得してください。
https://galaxy.ansible.com/weareinteractive/sudo/etc/sudoers.d配下にファイルを追加するロールパッケージです。

▌ダウンロード方法① 「GitHib Repo」ボタンを押下する② 「Code」ボタンを押下する③ 「DownLoadZIP」を押下する
2

1

3

Exastro29

2.2 ロールパッケージの準備(1/5)▌パッケージ準備のまえに今回使用するRoleのdefaults/main.ymlを見てみましょう(下図参照)。
実行前に変更するべき箇所が2点あります。
--# sudo_defaults:
正しいマッピング例はコメントアウトされ、#(中略) ~~~~# package name (version)
空の配列だけが定義されています。
1
sudo_package: sudo
# list of username or %groupname
sudo_users: []➢ ITAreadmeを用いて構造を変更し、# list of username or %groupname and their defaults
読替表を用いてITAでの編集を可能にしましょう。
sudo_defaults: []# default sudoers filesudo_sudoers_file: ansible# path of the sudoers.d directorysudo_sudoers_d_path: /etc/sudoers.d
実行時に生成するファイル名は# delete other files in `sudo_sudoers_d_path`
利用者が変更したい箇所です。
purge_other_sudoers_files: no2- defaults: env_reset# - name: user1➢ 読替表を用いてITAでの編集を可能にしましょう。
# defaults: requiretty# sudo_users:# - name: '%group1'# - name: 'bar'# nopasswd: yes~~~~

このような場合、ITAreadmeと読替表を作成することで、パッケージ中のファイルを変更することなく変数定義に必要な変更を加えることができます。
Exastro30

2.2 ロールパッケージの準備(2/5)▌ITAreadmeの作成
ita_readmeは、変数の定義を追加・変更するための設定ファイルです。

※ITAreadmeについて、詳細はマニュアルをご参照ください。
ファイル名: ita_readme_ansible-sudo-master.yml

Tips

sudo_users:- name:

イメージ図

実際に利用される変数

正しいマッピングに変更する。
defaults/main.yml
sudo_package: sudo
sudo_users: []sudo_package: sudo
sudo_users:- name: example_name1

正しいマッピングを記入する。
ITAreadme
sudo_users:- name:2

本書からテキストをコピーする
場合、各記号が反映されないことがあるためご注意ください。

代入値管理
変数名
LCA_sudo_users

メンバー変数名[0].name

具体値
example_name（読替表については次項で説明します。）

Exastro31

2.2 ロールパッケージの準備(3/5)▌読替表の作成
読替表は、defaults変数定義ファイルまたはITAreadmeに定義されている「VAR_...」以
外の変数に対して、ITAで具体値を設定できるようにするファイルです。
※読替表について、詳細はマニュアルをご参照ください。
ファイル名: ita_translation-table_ansible-sudo-master.txt
LCA_sudo_users: sudo_users
LCA_sudo_sudoers_file: sudo_sudoers_file

イメージ図
defaults/main.yml
sudo_users: []~~~~ (中略) ~~~~
sudo_sudoers_file: ansible

実際に利用される変数
ITAreadme
sudo_users:- name:sudo_users:- name: example_namesudo_sudoers_file: example_sudoers

代入値管理
読替表
LCA_sudo_users: sudo_users
LCA_sudo_sudoers_file: sudo_sudoers_file

変数名
LCA_sudo_users
LCA_sudo_sudoers_file

Exastroメンバー変数名(ITAreadmeで追加)[0].name

具体値
example_nameexample_sudoers322.2 ロールパッケージの準備(4/5)▌必要なファイルをzipにまとめる
これまでの作成物を下記の構造通りのzipファイルにまとめてください。
① 「roles」フォルダを作成し、ダウンロードした「ansible-sudo-master」を入れる。
② 「roles」フォルダと同階層に読替表とITAreadmeを配置する③ 「roles」フォルダ、読替表、ITAreadmeをまとめてzipで圧縮する。

1

2

3

Exastro「roles」配下へ「ansible-sudo-master」を配置する。

読替表とITAreadmeを配置する。

まとめてzipで圧縮する。

33

2.2 ロールパッケージの準備(5/5)▌ロールパッケージの中身を確認する
作成したロールパッケージの中身が以下の階層になっていることを確認してください。
roles.zip

Tips├roles│├ansible-sudo-master

文字列に抜け漏れが無いかご確認ください。
（例）アンダースコア、コロン、半角スペース、ハイフン│├defaults││└main.yml│├tasks││└main.yml││～～～～～││～～～～～(例） ita_readme_ansible-sudo-master.yml│└README.md├ita_readme_ansible-sudo-master.yml└ita_translation-table_ansible-sudo-master.txt
Tips

ExastroLegacyRoleは右記２つの条件を満たす
フォルダをRoleとして扱います。

① 「roles」フォルダの配下に存在する。
② 「tasks」フォルダを含む。

34

2.3 Movementの設定 (1/3)▌Movementを作成する
Roleを関連付けるMovementを1つ作成しましょう。
「Ansible-LegacyRole」メニューグループ > 「Movement一覧」メニュー① 「登録」サブメニュー の「登録開始」ボタンを押下する。
② 各項目で下表のように選択または入力し、「登録」ボタンを押下する。

2
項目名

Exastro

入力内容

Movement名

Sudoer登録

ホスト指定形式

IP35

2.3 Movementの設定 (2/3)▌ロールパッケージの登録
作成したロールパッケージファイルを登録しましょう。
「Ansible-LegacyRole」メニューグループ > 「ロールパッケージ管理」メニュー① 「登録」サブメニュー の「登録開始」ボタンを押下する。
② 「ファイルを選択」から作成したzipファイルを選択し、「事前アップロード」を押下する。
③ 各項目で下表のように選択または入力し、「登録」ボタンを押下する。

ロールパッケージ名

Exastrosudo-master36

2.3 Movementの設定 (3/3)▌Movementにロール名を登録する
Movementに個別のロール名を登録しましょう。
「Ansible-LegacyRole」メニューグループ > 「Movement-ロール紐付」メニュー① 「登録」サブメニュー の「登録開始」ボタンを押下する。

② 各項目で下表のように選択または入力し、「登録」ボタンを押下する。

2
Movement名

ロールパッケージ名

Sudoer登録

sudo-master

ロール名
ansible-sudo-master

インクルード順序
1※同一Movement内に複数のロールパッケージを登録しないでください。実行時に想定外エラーとなります。

Exastro37

2.4 オペレーションの設定▌オペレーションの新規登録
オペレーションを作成し、Movementとホストを関連付けましょう。
「基本コンソール」メニューグループ > 「オペレーション一覧」メニュー① 「登録」サブメニュー の「登録開始」ボタンを押下する。

② 各項目で下表のように選択または入力し、「登録」ボタンを押下する。

2

項目名

入力内容

オペレーション名

LegacyRole_Practice

実施予定日時(任意の値を入力下さい。)※ 「実施予定日時」は管理用の項目です。自動的に処理が実行されるわけではありません。
Exastro38

2.5 機器一覧への登録▌機器一覧へホストを登録する
作業の実行対象となるホストをITAに登録しましょう。
「基本コンソール」メニューグループ > 「機器一覧」メニュー① 「登録」サブメニュー の「登録開始」ボタンを押下する。
② 各項目で下表のように選択または入力し、「登録」ボタンを押下する。

2

Exastro項目

入力内容

HW機器種別SV

ホスト名(任意の値)IPアドレス(任意の値)

ログインユーザID(任意の値)

管理●

ログインパスワード(任意の値)

認証方式

パスワード認証39

2.6 パラメータシート作成(1/2)▌メニューを作成する
パラメータシートを作成し、ターゲットホストに適用するパラメータを管理しましょう。
「 メニュー作成」メニューグループ > 「メニュー定義・作成」メニュー > 「メニュー作
成情報」タブ
① 各項目で下表のように選択または入力し、次項の処理を実施する。

1
項目名

Exastro

入力内容

メニュー名

LegacyRole実践

作成対象

パラメータシート(ホスト/オペレーションあり)

表示順序

2

40

2.6 パラメータシート作成(2/2)▌パラメータシートの項目名を定義する
前項に続き、シートの項目を定義していきましょう。
「 メニュー作成」メニューグループ > 「メニュー定義・作成」メニュー① 「項目」ボタンを押下する。
② 各項目で下表のように選択または入力し、「作成」ボタンを押下する。
1
2
項目名

入力方式

最大バイト数

sudoer_name

文字列(単一行)32

sudoer_filename

文字列(単一行)

32

2
Exastro41

2.7 データの登録▌パラメータシートにデータを登録する
前項までの操作で、パラメータシートが作成できました。ターゲットホストの設定に使用するデータを登録しましょう。
「入力用」メニューグループ > 「LegacyRole実践」メニュー(作成したメニュー)① 「登録」サブメニュー の「登録開始」ボタンを押下する。
② 各項目で下表のように選択または入力し、「登録」ボタンを押下する。

2

Exastro

ホスト名

オペレーション

sudoer_namesudoer_filename(対象のホスト)

LegacyRole_Practice

example_nameexample_sudoers422.8 代入値自動登録設定▌代入値自動登録設定を行う
パラメータシートの入力が終わったところで、各項目と変数を関連付けていきます。
「Ansible-LegacyRole」メニューグループ > 「代入値自動登録設定」メニュー① 「登録」サブメニュー の「登録開始」ボタンを押下する。
② 各項目で下表のように選択または入力し、「登録」ボタンを押下する。

2
メニューグループ：メニュー

Exastro項目

登録方式

Movement

Value変数
変数名

Value変数
メンバー変数名

LegacyRole実践用

sudoer_name

Value型

Sudoer登録

LCA_sudo_users[0].name

LegacyRole実践用

sudoer_filename

Value型

Sudoer登録

LCA_sudo_sudoers_file

(空欄)

43

2.9 代入値・対象ホストの確認▌代入値と作業対象ホストを確認する
代入値自動登録により指定された値と対象ホストを確認しましょう。
「Ansible-LegacyRole」メニューグループ > 「作業対象ホスト」メニュー「Ansible-LegacyRole」メニューグループ > 「代入値管理」メニュー① 「表示フィルタ」サブメニューの「フィルタ」ボタンを押下する② 「legacy代入値自動登録設定プロシージャ」によって正しい値が指定されていることを確認する。
「作業対象ホスト」メニュー「代入値管理」メニュー

Exastro44

2.10 作業の実行 (1/2)▌Movementを直接実行する
本シナリオで作成したMovementは一つです。Conductorの作成を省き、直接実行機能を使用しましょう。
「Ansible-LegacyRole」メニューグループ > 「作業実行」メニュー

1 実行するMovementを選択する。

2 オペレーションを選択する。

3

Exastro「実行」ボタンを押下する。

Tips
実行後、自動で【作業確認】へ画面遷移します。

45

2.10 作業の実行 (2/2)▌実行結果を確認する
作業を実行すると画面が遷移し、実行ステータスやログが表示されます。
「Ansible-LegacyRole」メニューグループ > 「作業状態確認」メニュー
実行ステータスログ

Tips

投入データや結果データをまとめた
zipファイルをダウンロードできます。

Tips

結果を対象ホストで確認する場合、/etc /sudoers.d配下をご参照ください。

Exastro46

第3章 Ansible-Pioneer編

3.1 作業環境とシナリオ▌作業環境
本書で使用する作業環境は以下の通りです。NW機器の操作を実施しますので、下記の通り
環境をご用意ください。

ITAホストサーバー・CentOS 7 (※1)
・ITA 1.10.0
・Ansible 2.11.2
ターゲット・仮想ルータ「vyos」 １台
・Cisco製NW機器 1台(※２)
仮想ルータ「vyos」1台

CentOS 7
ITA
1.10.0

Ansible2.11.2
Cisco製
NW機器 1台
ITAホストサーバー

作業ターゲット群※1 今回はホストサーバーとしてCentOS7を利用致しますが、ITAはRHEL7系およびRHEL8系のOSで導入いただけます。
※2 本資料では各項目への入力例としてレイヤ３スイッチを採用しています。ルーターやレイヤ２スイッチを利用する場
合、適宜読み替えてください。
Exastro48

3.1 作業環境とシナリオ▌シナリオ
Ansible-Pioneerを用いてベンダの異なるNW機器に対してログサーバの指定を行います。
以下3つのPioneerモードの特長を体験いただけるシナリオとなっています。
① telnetもしくはsshの疎通さえあれば、対話ファイルの実行が可能② 対話種別とOS種別を活かした、OSの差異を意識しない作業実行③ 独自モジュールによる作業の繰り返しや条件分岐▌イメージ

Movementの作成

Movement①

パラメータシートを利用した代入値や作業対象ホストの設定

START

対話種別①
syslogサーバ設定

END

ExastroOS種別①
vyos_RT
OS種別①
vyos_RT

OS種別②
Cisco_L3SW

OS種別②
Cisco_L3SW

49

3.2 対話ファイルの作成(1/3)▌対話ファイルの作成
本シナリオで使用するファイルを作成しましょう。
⚫ 注意事項✓文字コードは“UTF-8”✓改行コードは“LF”✓拡張子は”yml”✓インデントを揃える

vyosへのログサーバ登録コマンドです。
“with_items”を用いて繰り返し処理を行っています。

設定の確認を行っています。
設定情報を出力し、所定の文字列が無い場
合に結果を“failed”とします。
“with_items”による繰り返しごとに条件判定が行われます。
Exastroファイル名: vyos_set_syslog_server.yml
conf:timeout: 10
exec_list:- expect: 'password:'
exec: '{{ __loginpassword__ }}'- expect: '{{ __loginuser__ }}@{{ __loginhostname__ }}'exec: 'set terminal length 0'- expect: '{{ __loginuser__ }}@{{ __loginhostname__ }}'exec: 'configure'- command: 'set system syslog host {{ item.0 }} facility all level {{ VAR_log_severity }}'prompt: 'vyos@{{ __loginhostname__ }}'with_items:- '{{ VAR_syslog_server_ip }}'when:- VAR_log_severity is define- expect: 'vyos@{{ __loginhostname__ }}'exec: 'commit'- expect: 'vyos@{{ __loginhostname__ }}'exec: 'save'- expect: 'vyos@{{ __loginhostname__ }}'exec: 'exit'- command: 'show configuration'
prompt: 'vyos@{{ __loginhostname__ }}'with_items:- '{{ VAR_syslog_server_ip }}'failed_when:- stdout match(host *{{ item.0 }})50

3.2 対話ファイルの作成(2/3)▌対話ファイルの作成
同様に、右記のファイルも作成しましょう。
ファイル名: ios_set_syslog_server.yml

conf:timeout: 10
exec_list:- expect: 'Username:'
exec: '{{ __loginuser__ }}'- expect: 'Password:'
exec: '{{ __loginpassword__ }}'- expect: '{{ __loginhostname__ }}'exec: 'enable'- expect: 'Password:'
exec: '{{ __loginpassword__ }}'- expect: '{{ __loginhostname__ }}'exec: 'terminal length 0'

ログについての設定を表示し、”register”で標準出力の内容を格納しています。

- command: 'show logging'prompt: '{{ __loginhostname__ }}'register: result_stdout- expect: '{{ __loginhostname__ }}'exec: 'configure terminal'

CiscoIOSへのログサーバ登録コマンドです。
“with_items”を用いて繰り返し処理を行っています。
“exec_when”では、上で格納した内容に応じて処理の実行判定を行っています。

- command: 'logging host {{ item.0 }}'prompt: '{{ __loginhostname__ }}'with_items:- '{{ VAR_syslog_server_ip }}'exec_when:- result_stdout no match(Logging to {{ item.0 }})- command: 'logging facility {{ VAR_log_facility }}'prompt: '{{ __loginhostname__ }}'when:- VAR_log_facility is define- command: 'logging trap {{ VAR_log_severity }}'prompt: '{{ __loginhostname__ }}'when:- VAR_log_severity is define

Exastro51

3.2 対話ファイルの作成(3/3)▌対話ファイルを確認する
インデントに誤りが無いかご確認ください。
記述方法についてはマニュアルをご確認ください。

(例） vyos_set_syslog_server.yml
Exastro(例） ios_set_syslog_server.yml
52

3.3 OS種別の作成▌「OS種別」を作成する
PioneerはターゲットホストのOSに応じて、実際に投下されるコードを選択することができます。
まずは「OS種別」をITAに登録しましょう。
「Ansible-Pioneer」メニューグループ > 「OS種別マスタ」メニュー① 「登録」サブメニュー の「登録開始」ボタンを押下する。
② 各項目で下表のように選択または入力し、「登録」ボタンを押下する。

2
OS種別名

Exastro機器種別 / NW

vyos_RT●

Cisco_L3SW●

53

3.4 Movementの設定 (1/4)▌Movementを作成する
MovementはITAにおける作業の最小単位です。Movementを作成し、対話種別と紐づけていきましょう。
「Ansible-Pioneer」メニューグループ > 「Movement一覧」メニュー① 「登録」サブメニュー の「登録開始」ボタンを押下する。

② 各項目で下表のように選択または入力し、「登録」ボタンを押下する。

2

Exastro項目

入力内容

Movement名

ログサーバ設定

ホスト指定形式

IP54

3.4 Movementの設定 (2/4)▌対話種別を作成する
次に「対話種別」を作成しておきましょう。

「Ansible‐Pioneer」メニューグループ > 「対話種別リスト」メニュー① 「登録」サブメニュー の「登録開始」ボタンを押下する。

② 各項目で下表のように選択または入力し、「登録」ボタンを押下する。

2

Exastro

項目名

入力内容

対話種別名

syslogサーバ指定55

3.4 Movementの設定 (3/4)▌対話ファイルを登録する
準備を終えたところで対話ファイルを登録しましょう。これまでに作成した対話種別やOS種
別と紐づけます。
「Ansible-Pioneer」メニューグループ > 「対話ファイル素材集」メニュー① 「登録」サブメニュー の「登録開始」ボタンを押下する。

② 「ファイルを選択」から対話ファイルを選び、「事前アップロード」を押下する。
③ 他項目を下表のように選択し、「登録」ボタンを押下する。

2
対話種別

Exastro

OS種別

対話ファイル素材

syslogサーバ指定

vyos_RT

vyos_set_syslog_server.yml

syslogサーバ指定

Cisco_L3SW

ios_set_syslog_server.yml

56

3.4 Movementの設定 (4/4)▌Movementに対話種別を登録する
Movementと対話種別を関連付けましょう。
「Ansible-Pioneer」メニューグループ > 「Movement-対話種別紐付」メニュー① 「登録」サブメニュー の「登録開始」ボタンを押下する。
② 各項目で下表のように選択または入力し、「登録」ボタンを押下する。

2
項目

Exastro

入力内容

Movement

ログサーバ設定

対話種別

syslogサーバ指定

インクルード順序

157

3.5 オペレーションの登録▌オペレーションを新規登録する
オペレーションを作成し、Movementとホストを関連付けましょう。
「基本コンソール」メニューグループ > 「オペレーション一覧」メニュー① 「登録」サブメニュー の「登録開始」ボタンを押下する。
② 各項目で下表のように選択または入力し、「登録」ボタンを押下する。

2
項目名

入力内容

オペレーション名

Pioneer_Practice

実施予定日時(任意の値をご入力下さい)※ 「実施予定日時」は管理用の項目です。自動的に処理が実行されるわけではありません。
Exastro58

3.6 機器一覧への登録（1/2)▌機器一覧にNW機器を登録する
機器一覧から今回の作業対象を登録しましょう。LegacyモードやLegacy-Roleモードと異なり、「Pioneer利用情報」の記入が必要となる点に留意してください。
「基本コンソール」メニューグループ > 「機器一覧」メニュー① 「登録」サブメニュー の「登録開始」ボタンを押下する。

② 各項目で下表のように選択または入力し、「登録」ボタンを押下する。（次項に続く）

2

Exastro項目

Vyos仮想ルータ

HW機器種別NW

ホスト名(任意の値）IPアドレス(任意の値)

ログインユーザID(任意の値）

管理●

ログインパスワード(任意の値）

認証方式

パスワード認証

Pioneer利用情報/プロトコル

ssh

Pioneer利用情報/OS種別

vyos_RT59

3.6 機器一覧への登録（2/2)▌機器一覧にNW機器を登録する
機器一覧から今回の作業対象を登録しましょう。
「基本コンソール」メニューグループ > 「機器一覧」メニュー① 「登録」サブメニュー の「登録開始」ボタンを押下する。
② 各項目で下表のように選択または入力し、「登録」ボタンを押下する。

2

Exastro項目

Cisco機器

HW機器種別NW

ホスト名(任意の値）IPアドレス(任意の値)

ログインユーザID(任意の値）

管理●

ログインパスワード(任意の値）

Pioneer利用情報/プロトコル

telnetPioneer利用情報/OS種別

Cisco_L3SW

60

3.７ パラメータシート作成 (1/2)▌メニューを作成する
パラメーターシートを作成し、ターゲットホストに適用するパラメータを作成・管理しましょう。
「メニュー作成」メニューグループ > 「メニュー定義・作成」メニュー > 「メニュー作成
情報」タブ① 各項目で下表のように選択または入力し、次項の処理を実施する。

1
項目

Exastro

入力内容

メニュー名

Pioneer実践

作成対象

パラメータシート(ホスト/オペ
レーションあり)

表示順序

3

61

3.7 パラメータシート作成 (2/2)▌パラメータシートの項目名を定義する
前項に続き、シートの項目を定義していきましょう。
「メニュー作成」メニューグループ > 「メニュー定義・作成」メニュー
1 押下して新しい項目を追加する。

2
項目名

3

Exastro

入力方式

最大
バイト数

syslog_server_ip

文字列(単一行)32

sub_syslog_server_ip

文字列(単一行)32

log_facility

文字列(単一行)32

log_severity

文字列(単一行)

32

押下してメニュー作成を実行する。

62

3.8 データの登録▌パラメータシートにデータを登録する
メニューを作成できたところで、ターゲットホストの設定に使用するデータを登録しましょう。
「入力用」メニューグループ > 「Pioneer実践」メニュー (作成したメニュー)① 「登録」サブメニュー の「登録開始」ボタンを押下する。

② 各項目で下表のように選択または入力し、「登録」ボタンを押下する。

2
ホスト名

オペレーション

syslog_server_ip

sub_syslog_server_ip

log_facility

log_severity(Cisco機器を選択)

Pioneer_practice(任意のIPアドレス)(任意のIPアドレス)

local7info(vyosルータを選択)

Pioneer_practice(任意のIPアドレス)(任意のIPアドレス)

local7

info

Exastro63

3.9 代入値自動登録設定▌代入値自動登録設定を行う
パラメータシートの入力が終わったところで、各項目と変数を関連付けていきます。
「Ansible-Pioneer」メニューグループ > 「代入値自動登録設定」メニュー① 「登録」サブメニュー の「登録開始」ボタンを押下する。
② 各項目で下表のように選択または入力し、「登録」ボタンを押下する。

2
メニューグループ：
メニュー

項目

登録方式

Movement

Value変数
変数名

Value変数
代入順序

Pioneer実践

syslog_server_ip

Value型

ログサーバ設定

VAR_syslog_server_ip

1

Pioneer実践

sub_syslog_server_ip

Value型

ログサーバ設定

VAR_syslog_server_ip

2Pioneer実践

log_facility

Value型

ログサーバ設定

VAR_log_facility

空欄

Pioneer実践

log_severity

Value型

ログサーバ設定

VAR_log_severity

空欄

Exastro64

3.10 代入値・対象ホストの確認▌代入値と作業対象ホストを確認する
代入値自動登録により指定された値と対象ホストを確認しましょう。
「Ansible-Pioneer」メニューグループ > 「作業対象ホスト」メニュー「Ansible-Pioneer 」メニューグループ > 「代入値管理」メニュー① 「表示フィルタ」サブメニューの「フィルタ」ボタンを押下する。

② 「pioneer代入値自動登録設定プロシージャ」によって正しい値が指定されていることを確認する。
「作業対象ホスト」メニュー「代入値管理」メニュー

Exastro65

3.11 作業の実行 (1/2)▌Movementを直接実行する
本シナリオで作成したMovementは一つです。Conductorを作成する必要はありません「作業実行」メニューから個別実行しましょう。
「Ansible-Pioneer」メニューグループ > 「作業実行」メニュー

1 実行するMovementを選択する。

2 オペレーションを選択する。

3 「実行」ボタンを押下する。

Tips
実行後、自動で【作業状態確認】へ画面遷移します。

Exastro66

3.11 作業の実行 (2/2)▌実行結果を確認する
作業を実行すると画面が遷移し、実行ステータスやログが表示されます。
「Ansible-Pioneer」メニューグループ > 「作業状態確認」メニュー
実行ステータスログ

Point

投入データや結果データをまとめた
zipファイルをダウンロードできます。

Tips

コマンドで実行結果を確認する場合、以下のコマンドでログの設定を確認できます。

IOS - “# show logging”
vyos - ”$ show configuration”

Exastro67

A 付録

付録① Counductorで3モードを束ねて実行する▌3モードを束ねて実行する
本編ではモードごとの作業を個別に実行しましたが、Conductorを利用することで複数のモードの作業を実行するジョブフローを作成することもできます。

Point
各モードで作成したMovementや別のConductorが投入され、1つのジョブフローを形成しています。

Exastro69