0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Exastro IT Automation 2.4.0 の収集比較機能を使ってみた【後編】

Last updated at Posted at 2024-06-27

はじめに

本記事は後編になります。
↓先に前編をご覧ください。
Exastro IT Automation の収集比較機能を使ってみた【前編】

Exastro IT Automation(以下ITA)には、システムから設定値やファイルを取得してくる「収集機能」と収集した値を比較できる「比較機能」があります。
設計した値がちゃんと機器に設定されているか確認するのに便利そうなので試してみたいと思います。

収集機能のドキュメント
比較機能のドキュメント

収集比較機能とは

収集機能とは、ITAで行った作業の実行結果となるインベントリ(YAMLファイルとして出力されたソースファイル)をシステムから取得し、その値をITAのパラメータシートへ自動登録できる機能です。

収集比較の流れとしては以下の図のようになります。
① ITAから自動化ソフトウェアを介して、作業対象システムのインベントリを取得する。
② あらかじめ設定しておいたインベントリとパラメータシートとの紐付けをもとに、ITAのパラメータシートへ収集した値が自動登録される。

01.png

比較機能は、収集機能と合わせると以下のような活用ができます。
③ 期待値と実機から取得した値を比較する。
④ 取得した値同士を比較する。過去のある時点での値と、現在の値など。

比較機能概要

今回紹介するシナリオ

今回は以下4つのシナリオを紹介します。
収集機能は、パラメータ取得とファイル取得の2パターン。
比較機能は、取得したパラメータとファイルをそれぞれ別のデータと比較してみます。

  1. 【収集機能】パラメータ取得:ターゲットホストのOS情報を取得する
  2. 【収集機能】ファイル取得:ターゲットホストからSSL証明書を取得する
  3. 【比較機能】OS情報パラメータの比較
  4. 【比較機能】SSL証明書の比較

後編である本記事では比較機能の確認をします。

作業環境

今回の以下の作業環境で実施します。
image.png

3. 【比較機能】OS情報パラメータの比較

それではシナリオ3のOS情報パラメータの比較をやってみます。
ITAに期待値を設定し、GatherFactsで収集した値と比較してみます。
102.png

3.1 基本コンソール >> オペレーション一覧

期待値となるオペレーションを登録します。

オペレーション名(任意の名称) 実施予定日時(任意の時間)
GatherFacts101 現在時刻

※ 実施予定時間は情報として入力できるようになっているもので、タイマーではありません。

image.png

3.2 パラメーターシート作成 >> パラメーターシート定義一覧

Gathered Factsと全く同じメニューを作成し、「メニュー名」「表示順序」だけ変えます。
Gathered Factsを複製して一部変更していきます。

まず一覧のGathered Factsの「メニュー定義・作成」を押す。
image.png

「流用新規」を押す。
image.png

「パラメータシート名」「表示順序」だけ空の状態で複製されるので、そこだけ入力。
表示順序は何番でもよいですが、今回はシナリオ順に従って3にしておきます。
image.png

メニュー名(任意の名称) 表示順序
OS情報 3

「作成」を押してメニュー作成完了。
OS情報のメニューが作成されています。
image.png

3.3 入力用 >> OS情報

それでは作成した「OS情報」メニューに値を入力します。
今回は ansible_nodename だけわざと違う値を入力しておきます。
正:targethost
誤:hogehoge
image.png

パラメータ
ansible_architecture x86_64
ansible_bios_version VMW71.00V.13989454.B64.1906190538
ansible_default_ipv4__address 対象サーバIPアドレス
ansible_default_ipv4__interface ens192
ansible_default_ipv4__network 対象サーバネットワーク
ansible_distribution RedHat
ansible_distribution_file_path /etc/redhat-release
ansible_distribution_file_variety RedHat
ansible_distribution_major_version 9
ansible_distribution_release Plow
ansible_distribution_version 9.3
ansible_machine x86_64
ansible_memtotal_mb 3647
ansible_nodename hogehoge
ansible_os_family RedHat
ansible_pkg_mgr dnf
ansible_processor_cores 1

全部入力したら編集確認ボタンを押します。

3.4 比較 >> 比較設定

比較設定では、比較対象となる2つのメニューを選びます。今回は「Gathered Facts」と「OS情報」になります。

比較設定メニューへ以下を入力します。
image.png

比較名称 対象パラメータシート1(プルダウンから選択) 対象パラメータシート2(プルダウンから選択) 詳細設定フラグ(プルダウンから選択)
OS情報 OS情報 Gathered Facts False

3.5 比較 >> 比較実行

それでは比較を実行します。

比較設定選択ボタンから先ほど登録した「OS情報」の比較定義を選択し、比較実行ボタンを押します。
image.png

すると、ansible_nodenameの値だけマークされていて、差分有りということが分かります。
image.png

これで期待値と収集した値との比較が成功しました!

4. 【比較機能】SSL証明書の比較

では最後に、収集日が異なり内容に差分のあるSSL証明書同士を比較してみます。

22.png

4.1 基本コンソール >> オペレーション一覧

比較用のオペレーションを作成します。

オペレーション名(任意の名称) 実施予定日時(任意の時間)
getSSL2 現在日時

image.png

4.2 内容の違うSSL証明書を用意しておく

今回は差分有りのファイルを用意したいので、Teratermでターゲットサーバの/etc/pki/tls/certs/に入り、SSL証明書(test.crt)の中身を一部書き換えておきました。

4.3 入力用 >>SSL証明書名

前編の記事の2.6と同様のメニューを使います。
オペレーションだけ比較用のgetSSL2にします。
image.png

ホスト名(プルダウンから選択) オペレーション パラメータ > ファイル名
targethost getSSL2 test.crt

4.4 Ansible-Legacy >> 作業実行

差分有りのSSL証明書を収集します。
Movementはシナリオ2と同じくgetSSLで、オペレーションだけ比較用のgetSSL2にします。

Movement Operation
getSSL getSSL2

image.png

image.png

image.png

作業実行ボタンから実行。
image.png

画面が自動で遷移してステータスが完了になりました。
image.png

4.5 入力用 >> SSL証明書

レコードが収集されているか確認します。
また、今回は基準日時(収集した日時)ベースで比較を行うので、基準日時を確認しておきます。
image.png

今回は以下の基準日時となっています。
オペレーション「getSSL1」:2024/6/24 16:07
オペレーション「getSSL2」:2024/6/25 18:55

4.6 比較 >> 比較定義

比較定義では、比較対象となる2つのメニューを選びます。
今回は両方とも「SSL証明書」になります。

比較メニューグループから比較定義へ、以下を入力します。
image.png

比較定名称(任意の名称) 比較対象メニュー1(プルダウンから選択) 比較対象メニュー2(プルダウンから選択) 詳細設定フラグ(プルダウンから選択)
SSL証明書 代入値自動登録用:5:SSL証明書 代入値自動登録用:5:SSL証明書 False

4.7 比較 >> 比較実行

それでは比較を実行します。

image.png

image.png

先ほど登録した「SSL証明書」の比較定義を選択し、比較対象となる2つの基準日時を入力します。
今回は以下の基準日時になっていたので、
オペレーション「getSSL1」:2024/6/24 16:07
オペレーション「getSSL2」:2024/6/25 18:55
この時点で収集されたファイルが反映されているであろう、以下の日時で比較してみます。

比較定義(プルダウンから選択) 基準日時1 基準日時2
SSL証明書 2024/6/24 17:00 2024/6/25 19:00

収集した時点と比較する時点は図にするとこのようになります。
image.png

基準日時を設定して比較実行をします。
image.png

すると、「パラメータ/ファイル」がマークされ、差分有りということがわかります。
これでファイル同士の比較ができました!
image.png

ファイル差分詳細ボタンからファイルの差分も確認することが出来ます。
image.png

補足:Conductorについて

今回はMovementひとつだけだったので、Ansible-Legacyの「作業実行」からMovement(ジョブ)を直接実行しましたが、ITAにはConductorというジョブフロー機能が搭載されており、これだと複数のMovementをつなげて実行することが出来ます。他のMovementと連動させてより複雑な作業実行をしたい場合はこちらを使います。

詳しくはこちらに載っています。

まとめ&収集比較機能の応用例

今回は比較機能を試してみました。
収集機能と合わせて使うことで、実機のパラメータ設定やファイルが想定した状態になっているのか確認出来ました。

実作業では、活用できるシーンが色々とありそうです。
たとえば、Network機器のshow running-configコマンド結果をファイルで取ってくる、AWSでEC2リストを取ってくるなど。いちいち手作業でやる必要がないので、作業の効率化やミスの防止にもつながりそうです。

比較機能では、作業実行の前後で期待値と実際の値(実機から取得した値)を比較することで、 作業前には「変更したい箇所」だけが差分で現れること/作業後には差分があらわれないこと を比較してチェックする、といった使い方も出来そうです。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?