収集・比較機能

本シナリオでは、簡単な例として、ユーザー管理を題材に Exastro IT Automation の基本操作を学習します。
収集機能
収集機能とは、ITAで実施した、作業実行結果(規定のフォーマットで出力されたソースファイル)を元に、パラメータシートへ値を自動で登録する機能。
比較機能
比較機能とは、ITAのパラメータシート作成機能で作成したパラメータシートを比較し、差分を出力する機能です。

作業前システム情報の収集

パラメータシートの作成

まずは、収集機能を使って現在のシステム情報を収集していきましょう。
収集機能は、登録された設定値から対象のファイルの値をパラメータシートに登録、更新します。
今回利用する Ansible Playbookは以下のPlaybookになります。下記のパラメータが管理できるようにパラメータシートを作成しましょう。
リスト 306 system_collection.yml
- name: set variable
  set_fact:
    test: "{{ VAR_hostname }}"

- name: make yaml file
  blockinfile:
    create: yes
    mode: 644
    insertbefore: EOF
    marker: ""
    dest: "/tmp/system.yml"
    content: |
      ansible_architecture              : {{ ansible_architecture }}
      ansible_bios_version              : {{ ansible_bios_version }}
      ansible_default_ipv4__address     : {{ ansible_default_ipv4.address }}
      ansible_default_ipv4__interface   : {{ ansible_default_ipv4.interface }}
      ansible_default_ipv4__network     : {{ ansible_default_ipv4.network }}
      ansible_distribution              : {{ ansible_distribution }}
      ansible_distribution_file_path    : {{ ansible_distribution_file_path }}
      ansible_distribution_file_variety : {{ ansible_distribution_file_variety }}
      ansible_distribution_major_version: {{ ansible_distribution_major_version }}
      ansible_distribution_release      : {{ ansible_distribution_release }}
      ansible_distribution_version      : {{ ansible_distribution_version }}
      ansible_machine                   : {{ ansible_machine }}
      ansible_memtotal_mb               : {{ ansible_memtotal_mb }}
      ansible_nodename                  : {{ ansible_nodename }}
      ansible_os_family                 : {{ ansible_os_family }}
      ansible_pkg_mgr                   : {{ ansible_pkg_mgr }}
      ansible_processor_cores           : {{ ansible_processor_cores }}

- name: Copy the make yaml file to local
  fetch:
    src: "/tmp/system.yml"
    dest: "{{ __parameter_dir__ }}/{{ inventory_hostname }}/"
    flat: yes
パラメータシート作成 ▶ パラメータシート定義・作成 から、システム情報を収集してくるために、「システム情報」というパラメータシートを作成します。
パラメータシート作成
表 119 パラメータシート作成の項目の設定値1

設定項目

項目1設定値

項目2設定値

項目3設定値

項目4設定値

項目5設定値

項目6設定値

グループ

ansible_default_ipv4

ansible_default_ipv4

ansible_default_ipv4

項目の名前

ansible_architecture

ansible_bios_version

address

interface

network

ansible_distribution

項目の名前(Rest API用)

ansible_architecture

ansible_bios_version

address

interface

network

ansible_distribution

入力方式

文字列(単一行)

文字列(単一行)

文字列(単一行)

文字列(単一行)

文字列(単一行)

文字列(単一行)

選択項目

64

64

64

64

64

64

正規表現

初期値

必須

一意制約

説明

備考

パラメータシート作成
表 120 パラメータシート作成の項目の設定値2

設定項目

項目7設定値

項目8設定値

項目9設定値

項目10設定値

項目11設定値

項目12設定値

グループ

項目の名前

ansible_distribution_file_path

ansible_distribution_file_variety

ansible_distribution_major_version

ansible_distribution_release

ansible_distribution_version

ansible_machine

項目の名前(Rest API用)

ansible_distribution_file_path

ansible_distribution_file_variety

ansible_distribution_major_version

ansible_distribution_release

ansible_distribution_version

ansible_machine

入力方式

文字列(単一行)

文字列(単一行)

文字列(単一行)

文字列(単一行)

文字列(単一行)

文字列(単一行)

選択項目

64

64

64

64

64

64

正規表現

初期値

必須

一意制約

説明

備考

パラメータシート作成
表 121 パラメータシート作成の項目の設定値3

設定項目

項目13設定値

項目14設定値

項目15設定値

項目16設定値

項目17設定値

グループ

項目の名前

ansible_memtotal_mb

ansible_nodename

ansible_os_family

ansible_pkg_mgr

ansible_processor_cores

項目の名前(Rest API用)

ansible_memtotal_mb

ansible_nodename

ansible_os_family

ansible_pkg_mgr

ansible_processor_cores

入力方式

文字列(単一行)

文字列(単一行)

文字列(単一行)

文字列(単一行)

文字列(単一行)

選択項目

64

64

64

64

64

正規表現

初期値

必須

一意制約

説明

備考

表 122 パラメータシート作成情報の設定値

項目名

設定値

項番

(自動入力)

パラメータシート名

システム情報

パラメータシート名(REST)

system_information

作成対象

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

表示順序

1

バンドル利用

「利用する」にチェックを入れない(無効)

最終更新日時

(自動入力)

最終更新者

(自動入力)

次に、パラメータシート作成 ▶ パラメータシート定義・作成 から、Ansibleを実行するために必要となる、「ホスト名紐付け用」というパラメータシートを作成します。
パラメータシート作成
表 123 パラメータシート作成(ホスト名紐付け用)の項目の設定値

設定項目

項目1設定値

項目の名前

hostname

項目の名前(Rest API用)

hostname

入力方式

プルダウン選択

選択項目

Ansible項目:機器一覧:ホスト名

参照項目

初期値

必須

一意制約

説明

備考

表 124 パラメータシート作成(ホスト名紐付け用)のパラメータシート作成情報の設定値

設定項目

設定値

項番

(自動入力)

パラメータシート名

ホスト名紐付け用

パラメータシート名(REST)

host_association

作成対象

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

表示順序

2

バンドル利用

「利用する」にチェックを入れない(無効)

最終更新日時

(自動入力)

最終更新者

(自動入力)

作業手順の登録

作業手順を登録するために、Exastro IT Automation で扱う作業単位である Movement (ジョブ)を定義します。
定義した Movement に対して、Ansible Playbook の紐付けを行います。
Ansible-Legacy ▶ Movement一覧 から、システム情報収集のための Movement を登録します。
Movement
Exastro IT Automation における、最小の作業単位のことを指します。
1回の Movement 実行は、1回の ansible-playbook コマンドの実行と同じです。
Movement登録
表 125 Movement 情報の設定値

Movement名

Ansible利用情報

ホスト指定形式

ヘッダーセクション

システム情報収集

IP

※ヘッダーセクションを参照

リスト 307 ヘッダーセクション
- hosts: all
  remote_user: "{{ __loginuser__ }}"
  gather_facts: yes
  become: yes

Ansible Playbook 登録

Ansible Playbook の登録を行います。Ansible Playbook は運用手順書内に記載されたコマンドに該当します。
本シナリオでは system_collection.yml を使用します。
リスト 308 system_collection.yml
- name: set variable
  set_fact:
    test: "{{ VAR_hostname }}"

- name: make yaml file
  blockinfile:
    create: yes
    mode: 644
    insertbefore: EOF
    marker: ""
    dest: "/tmp/system.yml"
    content: |
      ansible_architecture              : {{ ansible_architecture }}
      ansible_bios_version              : {{ ansible_bios_version }}
      ansible_default_ipv4__address     : {{ ansible_default_ipv4.address }}
      ansible_default_ipv4__interface   : {{ ansible_default_ipv4.interface }}
      ansible_default_ipv4__network     : {{ ansible_default_ipv4.network }}
      ansible_distribution              : {{ ansible_distribution }}
      ansible_distribution_file_path    : {{ ansible_distribution_file_path }}
      ansible_distribution_file_variety : {{ ansible_distribution_file_variety }}
      ansible_distribution_major_version: {{ ansible_distribution_major_version }}
      ansible_distribution_release      : {{ ansible_distribution_release }}
      ansible_distribution_version      : {{ ansible_distribution_version }}
      ansible_machine                   : {{ ansible_machine }}
      ansible_memtotal_mb               : {{ ansible_memtotal_mb }}
      ansible_nodename                  : {{ ansible_nodename }}
      ansible_os_family                 : {{ ansible_os_family }}
      ansible_pkg_mgr                   : {{ ansible_pkg_mgr }}
      ansible_processor_cores           : {{ ansible_processor_cores }}

- name: Copy the make yaml file to local
  fetch:
    src: "/tmp/system.yml"
    dest: "{{ __parameter_dir__ }}/{{ inventory_hostname }}/"
    flat: yes
Ansible-Legacy ▶ Playbook素材集 から、上記のPlaybookを登録します。
Playbook登録
表 126 Ansible Playbook 情報の登録

Playbook素材名

Playbook素材

system_collection

system_collection.yml

Movement と Ansible Playbook の紐付け

Ansible-Legacy ▶ Movement-ロール紐付 から、Movement と Ansible Playbook の紐付けを行います。
本シナリオでは、 system_collection.yml を利用します。
Movement-Playbook紐付け
表 127 Movement-Playbook紐付け情報の登録

Movement名

Playbook素材

インクルード順序

システム情報収集

system_collection

1

パラメータシートの項目と Ansible Playbook の変数の紐付け

system_collection.ymlでは、VAR_hostname にシステム情報を収集したい作業対象ホストを入れます。
Ansible-Legacy ▶ 代入値自動登録設定 から、パラメータシートの項目と Ansible Playbook の変数の紐付けを行います。
代入値自動登録設定
表 128 グループの代入値自動登録設定の設定値

パラメータシート(From)

登録方式

Movement名

IaC変数(To)

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

代入順序

Movement名:変数名

代入順序

代入値自動登録用:ホスト紐付け用:パラメータ/hostname

入力無し

Value型

システム情報収集

システム情報収集:VAR_hostname

入力無し

収集項目値管理

収集項目値管理 にて、作業実行結果(ソースファイル)とパラメータシートの項目の紐づけ設定がされていないと、収集機能は動作しません。
Ansible共通 ▶ 収集項目値管理 から、ソースファイルとパラメータシートの項目の紐付情報の登録をします。
収集項目値管理
表 129 収集項目値管理の設定値

収集項目(From)

パラメータシート(To)

バース形式

PREFIX(ファイル名)

変数名

メニューグループ:項目

YAML

system

ansible_architecture

入力用:システム情報:パラメータ/ansible_architecture

YAML

system

ansible_bios_version

入力用:システム情報:パラメータ/ansible_bios_version

YAML

system

ansible_default_ipv4__address

入力用:システム情報:パラメータ/ansible_default_ipv4/address

YAML

system

ansible_default_ipv4__interface

入力用:システム情報:パラメータ/ansible_default_ipv4/interface

YAML

system

ansible_default_ipv4__network

入力用:システム情報:パラメータ/ansible_default_ipv4/network

YAML

system

ansible_distribution

入力用:システム情報:パラメータ/ansible_distribution

YAML

system

ansible_distribution_file_path

入力用:システム情報:パラメータ/ansible_distribution_file_path

YAML

system

ansible_distribution_file_variety

入力用:システム情報:パラメータ/ansible_distribution_file_variety

YAML

system

ansible_distribution_major_version

入力用:システム情報:パラメータ/ansible_distribution_major_version

YAML

system

ansible_distribution_release

入力用:システム情報:パラメータ/ansible_distribution_release

YAML

system

ansible_distribution_version

入力用:システム情報:パラメータ/ansible_distribution_version

YAML

system

ansible_machine

入力用:システム情報:パラメータ/ansible_machine

YAML

system

ansible_memtotal_mb

入力用:システム情報:パラメータ/ansible_memtotal_mb

YAML

system

ansible_nodename

入力用:システム情報:パラメータ/ansible_nodename

YAML

system

ansible_os_family

入力用:システム情報:パラメータ/ansible_os_family

YAML

system

ansible_pkg_mgr

入力用:システム情報:パラメータ/ansible_pkg_mgr

YAML

system

ansible_processor_cores

入力用:システム情報:パラメータ/ansible_processor_cores

登録する件数が多いので、ファイル一括登録(Excel)から登録するのを推奨します。

作業対象の登録

作業を行う対象機器を登録します。

機器登録

作業対象となるサーバを機器一覧に登録します。
Ansible共通 ▶ 機器一覧 から、作業対象であるサーバーの接続情報を登録します。
機器一覧登録
表 130 機器一覧の設定値

HW機器種別

ホスト名

IPアドレス

ログインパスワード

ssh鍵認証情報

Ansible利用情報

ユーザ

ssh秘密鍵ファイル

Legacy/Role利用情報

認証方式

SV

server01

192.168.0.1 ※適切なIPアドレスを設定

接続ユーザ名

(秘密鍵ファイル)

鍵認証(パスフレーズなし)

Tip

今回のシナリオでは鍵認証で実行しますが、パスワード認証での実行も可能です。
認証方式は、作業対象サーバーへのログインの方法に応じて適宜変更してください。

システム情報収集作業の実施

まずは、いつ、どこの機器に対して、何を、どうするかといった情報を簡単に整理しておきましょう。
表 131 作業の方針

作業実施日時

2024/04/01 12:00:00

作業対象

server01(RHEL8)

作業内容

作業前データ収集

作業概要登録

オペレーション登録では、作業を実施する際の作業概要を定義します。
先に決めた作業の方針を元にオペレーション情報を記入しましょう。
オペレーション
実施する作業のことで、オペレーションに対して作業対象とパラメータが紐づきます。
基本コンソール ▶ オペレーション一覧 から、作業実施日時や作業名を登録します。
オペレーション登録
表 132 オペレーション登録内容

オペレーション名

実施予定日時

作業前データ収集

2024/04/01 12:00:00

Tip

作業実施日時は、本シナリオでは適当な日時で問題ありませんが、作業日が定まっている場合は、正確な作業実施の予定日時を設定することを推奨します。
定期作業などの繰り返し行われる作業のように、作業日が定まっていない場合は現在の日時を登録しても問題ありません。

パラメータ設定

作成したパラメータシートに作業対象ホストとオペレーションを登録します。
入力用 ▶ ホスト名紐付け用 から、作業対象ホストとオペレーションとパラメータを登録します。
作業前のパラメータ登録
表 133 作業前システム情報の設定値

ホスト名

オペレーション

パラメータ

オペレーション名

hostname

server01

2024/04/01 12:00:00_作業前データ収集

server01

作業実行

  1. 作業実行

    Ansible-Legacy ▶ 作業実行 から、システム情報収集 Movement を選択し、 作業実行 を押下します。
    次に、作業実行設定 で、オペレーションに 作業前データ収集 を選択し、作業実行 を押下します。
    作業状態確認 画面が開き、実行が完了した後に、ステータスが「完了」になったことを確認します。
作業実行
  1. 事後確認

    入力用 ▶ システム情報 から、パラメータの入力情報を確認しましょう。
    パラメータシート作成・定義で作成した、システム情報のパラメータが問題なく入力されているか確認しましょう。
    また、この後の比較作業で実施日時を入力する必要があるので、基本コンソール ▶ オペレーション一覧 から、実施した日付を確認しておきましょう。

ホスト名変更

それでは次に、今収集したシステム情報の1部を変更してみましょう。
今回は簡単なホスト名(ansible_nodename)の変更をしてみましょう。ホスト名の変更については クイックスタート を参照して任意のホスト名に変更しましょう。今回のシナリオではシステムのホスト名を admin_user に変更してこれ以降の作業を実施していきます。

作業後システム情報の収集

それではホスト名を変更した後(作業後)のシステム情報を収集していきましょう。
作業前とホスト名に変更が出ていますので、新しくオペレーションを作成し、新しいオペレーションと紐付いたパラメータを作成しましょう。

作業概要登録

基本コンソール ▶ オペレーション一覧 から、作業実施日時や作業名を登録します。
オペレーション登録
表 134 オペレーション登録内容

オペレーション名

実施予定日時

作業後データ収集

2024/05/01 12:00:00

パラメータ設定

入力用 ▶ ホスト名紐付け用 から、作業対象ホストとオペレーションとパラメータを登録します。
作業後のパラメータ登録
表 135 作業後システム情報の設定値

ホスト名

オペレーション

パラメータ

オペレーション名

hostname

admin_user

2024/05/01 12:00:00_作業後データ収集

admin_user

作業実行

  1. 作業実行

    Ansible-Legacy ▶ 作業実行 から、システム情報収集 Movement を選択し、 作業実行 を押下します。
    次に、作業実行設定 で、オペレーションに 作業後データ収集 を選択し、作業実行 を押下します。
    作業状態確認 画面が開き、実行が完了した後に、ステータスが「完了」になったことを確認します。
作業実行
  1. 事後確認

    入力用 ▶ システム情報 から、パラメータの入力情報を確認しましょう。
    パラメータシート作成・定義で作成した、システム情報のパラメータが問題なく入力されているか確認しましょう。
    問題なくシステム情報が収集出来ていれば、ホスト名変更前と変更後の2つのパラメータが入力されています。
    また、この後の比較作業で実施日時を入力する必要があるので、基本コンソール ▶ オペレーション一覧 から、実施した日付を確認しておきましょう。

システム情報の比較

それでは次に比較機能を使って、ホスト名変更前と変更後の収集データを比較して、結果にどのような差異が出ているのかを見てみましょう。

比較設定

パラメータの比較をする為に、まずは比較設定をしていきましょう。
比較 ▶ 比較設定 から、比較対象のパラメータを選択しましょう。
比較設定
表 136 比較設定

比較名称

対象パラメータシート1

対象パラメータシート2

詳細設定フラグ

備考

システム情報の差異

システム情報

システム情報

False

詳細設定フラグを設定すると、比較詳細設定を設定出来るようになります。
特定のパラメータのみ確認したい場合は詳細設定フラグをTrueにすると、特定のパラメータのみ比較出来るようになります。

比較実行

それでは比較機能を実行していきましょう。
比較 ▶ 比較実行 から、比較対象のパラメータを選択しましょう。
比較実行 ▶ 比較設定選択 から、システム情報の差異 比較設定 を選択し、次に  対象ホスト を選択し対象のホストを選択します。
次に、比較対象のパラメータシートを実施した日時をそれぞれ入力、選択します。実施した日時は 入力用 ▶ システム情報 から最終実行日時を確認してみてください。
最後に、比較実行 を押下します。
そうすると画面右側に比較結果が表示されますので、そちらから先ほど変更したホスト名(ansible_nodename)の欄を確認してみましょう。すると、変更前に収集したパラメータと変更後に収集したパラメータの差異が出ているのが確認できると思います。
比較設定1
比較設定2
表 137 比較実行

比較設定選択

ホスト選択

基準日時1

基準日時2

システム情報の差異

admin_user

※例→2024/08/23 15:24:09

※例→2024/08/23 15:31:39

Tip

基準日時は実際の最終更新日時を入力してください。

まとめ

本シナリオでは、システム情報を変更する前と後のデータを収集し、それらの収集してきたデータを比較するというシナリオで収集比較機能を学習しました。
収集機能を使うと、対象サーバのシステム情報を収集することができ、比較機能を使うと、パラメータシートで作成した項目の設定値の比較を行うことが出来ます。
比較機能を上手く使うと、パラメータシートの項目の設定値を簡単に管理することが出来ます。
より詳細な情報を知りたい場合は、マニュアル を参照してください。