LoginSignup
1
1

More than 1 year has passed since last update.

Exastro IT Automation クイックスタート(ver1.9.0)

Last updated at Posted at 2022-01-07

はじめに

Exastro IT Automationとは
システム構成(IaC+パラメータ)を管理するためのフレームワークです。
【Exastro-suite】より

今回は、12月にリリースされましたITAのver1.9を利用して、ITAのインターフェースをスムーズに体感できる「クイックスタート」に触れてみたいと思います。
「クイックスタート」では、システム構築においてよくあるLinuxサーバのパッケージのインストール作業を通して、構築対象サーバごとの作業とパッケージ管理を自動化・一元管理を行い、従来のシステム構築とは異なる効率的なシステム構築を体感できます。(【クイックスタート】より)

作業環境

今回は、以下の環境で進めていきます。

image.png

  • Exastro IT Automation 1.9.0
  • CentOS Linux7.8(ITAサーバ用)
  • CentOS Linux7.8(ターゲットマシン用)
  • Windows10(クライアント)
  • Google Chrome(Win10側)

シナリオ

【仕込編】

  1. Playbookをアップロードしてジョブ(Movement)に紐付け
  2. ジョブ(Movement)をジョブフロー(Conductor)に組み込む
  3. CMDBにパラメータシートを設定
  4. パラメータシートの項目とPlaybookの変数を紐付け

【実行編 1回目】
5. 機器一覧にターゲットとなるLinuxマシンを登録
6. 作業名の(Operation)の登録
7. パラメータシートにデータを登録
8. ジョブフロー(Conductor)の実行
9. 実行結果の確認

【実行編 2回目】
10. 作業名(Operation)の登録
11. パラメータシートにデータを登録
12. ジョブフロー(Conductor)の実行
13. 実行結果の確認

【参考】
CMDBパラメータの履歴管理方法

シナリオ実行イメージ図

image.png

今回は、以下のPlaybookを使用します。
※文字コードは「UTF-8」、改行コードは「LF」、拡張子は「yml」形式で作成してください。
 また、インデントにご注意ください。
 ファイルアップロードができなかったり、実行エラーが発生します。

yum_package_install.yml
- name: install the latest version of packages
  yum:
    name: "{{ item }}"
    state: latest
  with_items:
    - "{{ VAR_packages }}"

仕込編

1. Playbookをアップロードしてジョブに紐づけ

① 新規Movementを登録

ITAの以下のメニューから、「Movement一覧」へ新規Movementを登録します。
メニュー: Ansible-Legacy >> Movement一覧
image.png

以下のように登録します。

Movement名 ホスト指定形式
パッケージインストール IP

② 「Playbook素材集」へ新規Playbookを登録

ITAの以下のメニューから、作成したyum_package_install.ymlをPlaybook素材集へアップロードします。
メニュー: Ansible-Legacy >> Playbook素材集
image.png

以下のように登録します。

Playbook素材名 Playbook素材
yum_package_install (作成したPlaybook)

※Playbookをアップロードする場合「ファイル選択」を押下し、作成したymlファイルを選択した後、事前アップロードを押下しないと登録がうまく行えませんので、ご注意ください。
アップロード情報が表示されていることを確認した後、「登録」ボタンを押下してください。

③ アップロードしたPlaybookをMovementに紐づけ

ITAの以下のメニューから、アップロードしたPlaybookをMovementに紐付けます。

メニュー: Ansible-Legacy >> Movement-Playbook紐付
image.png

以下のように登録します。

Movement Playbook素材 インクルード順序
パッケージインストール yum_package_install 1

インクルード順序って何?

今回のシナリオでは1ジョブ(Movement)に対して1つのplaybookを紐付けましたが、
1つのジョブ(Movement)に複数のplaybookを紐づけられます。
playbookが様々なジョブ(Movement)に再利用できます。
図2-4.png

2. ジョブ(Movement)をジョブフロー(Conductor)に組み込む

Conductorを作成する

ITAの以下のメニューから、Conductorを作成します。

メニュー: Conductor >> Conductorクラス編集

下図の順序の通り入力、移動、連結させ登録します。
①Conductorクラス編集を押下
②Conductor名に**「パッケージインストール」**と入力
③パッケージインストールを選択し、ドラッグ&ドロップ
④Conductorを連結
image.png

3. CMDBにパラメータシートを設定

パラメータシートの作成

ITAの以下のメニューから、パラメータシートを作成します。
メニュー: メニュー作成 >> メニュー定義/作成
image.png

以下のように登録します。
②メニュー作成情報

メニュー名 作成対象 表示順序
インストールパッケージ一覧 パラメータシート(ホスト/オペレーション含む) 1

④カラムグループ

グループ名
インストールパッケージ

次に5つ項目を作成します。
image.png

以下のように登録します。
今回は、プルダウン選択内にデフォルトで用意されているメニュー作成:選択1:*-(ブランク)を利用します。
「*」を選択するとインストール対象「ブランク(空白)」を選択するとインストールの対象外といった形で使用することができます。

項目名 入力方式 選択項目
httpd プルダウン選択 メニュー作成:選択1:*-(ブランク)
mariadb-server プルダウン選択 メニュー作成:選択1:*-(ブランク)
php プルダウン選択 メニュー作成:選択1:*-(ブランク)
perl プルダウン選択 メニュー作成:選択1:*-(ブランク)
python プルダウン選択 メニュー作成:選択1:*-(ブランク)

作成した「インストールパッケージ」グループに項目をドラッグ&ドロップします。
カラムグループに、項目をドラッグ&ドロップをすることで、1つのグループに複数の項目を設定することができます。
一覧(プレビュー)では、作成している帳票のプレビューが確認できます。
image.png

下図のようにできましたら、「作成」ボタンを押下します。
image.png

パラメータシートの確認方法

「メニュー作成」メニューグループ >> 「メニュー作成履歴」メニューから作成したパラメータシートの確認ができます。
図4-7.png

4. パラメータシートの項目とPlaybookの変数を紐付ける

ITAの以下メニューから、パラメータシートの項目とPlaybookの変数を代入値自動登録設定にて紐付けます。
代入値自動登録設定につきましては、下記をご参考ください。

代入値自動登録設定とは
代入値自動登録設定を1度設定しパラメータシートにデータを登録することで、Playbook実行時に登録データを使用することができます。また、「連携対象としたパラメータシートのオペレーション」「ホスト毎の項目の設定値」「紐付けた Movement」「紐付けた変数の情報」を代入値管理と作業対象ホストに自動で反映します。

変数の紐づけ登録方式には、以下の3つのタイプがあります。

登録方式 今回使用 説明
Value型 基本的なタイプであり、表の中の値を変数に紐づけるものです。
Key型 表の項目(列名)を変数に紐づけるものです。
項目の設定値が空白の場合は紐づけ対象外になります。
Key-Value型 項目名称(Key)と設定値(Value)の両方を変数に紐づけることができます。

今回のシナリオでは、表の項目(列名)をPlaybookに具体値として代入したいので、登録方式は「Key型」を選択します。
詳細については、システム構築・運用の効率化ガイドブックを参照ください。

実際に、ITAの以下のメニューから代入値自動登録設定を行います。
メニュー: Ansible-Legacy >> 代入値自動登録設定
image.png

以下の登録を行います。

メニューグループ:メニュー 項目 登録方式 Movement Key変数
変数名
代入順序
代入値自動登録用:インストールパッケージ一覧 パラメータ/インストールパッケージ/httpd Key型 パッケージインストール VAR_packages 1
代入値自動登録用:インストールパッケージ一覧 パラメータ/インストールパッケージ/mariadb-server Key型 パッケージインストール VAR_packages 2
代入値自動登録用:インストールパッケージ一覧 パラメータ/インストールパッケージ/php Key型 パッケージインストール VAR_packages 3
代入値自動登録用:インストールパッケージ一覧 パラメータ/インストールパッケージ/perl Key型 パッケージインストール VAR_packages 4
代入値自動登録用:インストールパッケージ一覧 パラメータ/インストールパッケージ/python Key型 パッケージインストール VAR_packages 5

表示フィルタを開き、5件登録されていることを確認します。
image.png

ここまでが仕込編となります。一度設定することで繰り返し利用することが可能です。

実行編 1回目

5. 機器一覧にターゲットとなるLinuxマシンを登録

ITAの以下のメニューから、今回パッケージをインストールするターゲットホストを登録します。
登録する項目がたくさんありますが、Ansible-Legacyを実行するための必須項目は、以下の6項目です。
「ホスト名」「IPアドレス」「ログインユーザID」「ログインパスワード管理」「ログインパスワード」「認証方式」
メニュー: 基本コンソール >> 機器一覧
image.png

以下の項目を登録します。
自分のサーバに基づいて、登録を行ってください。

HW機器種別 ホスト名 IPアドレス ログインユーザID ログインパスワード管理 ログインパスワード Legacy/Role利用情報認識方式
SV (任意のホスト名) (任意のIPアドレス) (任意のログインユーザID (任意のパスワード) パスワード認証

6. 作業名の(Operation)の登録

ITAの以下のメニューから、Operationの登録を行います。
メニュー: 基本コンソール >> オペレーション一覧
image.png
以下のように登録します。

オペレーション名 実行予定日時
オペレーション1 (任意の予定日時)

7. パラメータシートにデータを登録

ITAの以下のメニューから、仕込編で用意したインストールパッケージ一覧にデータを入力していきます。
メニュー: 入力用 >> インストールパッケージ一覧
image.png
以下のように登録します。

ホスト名 オペレーション名 httpd mariadb-server php perl python
(機器一覧で登録したホスト名) オペレーション1 * * * *

表示フィルタを開き、「フィルタ」ボタンを押下すると登録したデータを確認することができます。
image.png

8. ジョブフロー(Conductor)の実行

ITAの以下のメニューから、実行を行います。
実行する「Conductor」と「オペレーション」を選択してください。

メニュー: Conductor >> Conductor作業実行
image.png

選択後、実行ボタンを押下します。
image.png

「Conductor作業確認」メニュー画面に切り替わります。
ジョブフローが正常終了すると、以下の画面が表示されターゲットマシンへの設定も完了です。
image.png

ジョブ(Movement)を選択し、Doneのアイコンまたは右側のOperation statusをクリックすると作業詳細を確認することができます。
投入データや結果データをダウンロードすることも可能です。
image.png

9. 実行結果の確認

作業状態確認から、Ansibleの実行ログをリアルタイムで確認することができます。
image.png

今回の実行では、httpd,php,perl,pythonをインストールする設定を行いました。
以下、は実行ログから抽出したログの一部になります。

~~~~~~~~~~~~~~~~~~~~~~~~省略~~~~~~~~~~~~~~~~~~~~~~~Installed:
    httpd.x86_64 0:2.4.6-97.el7.centos
Dependency Installed: 
    httpd-tools.x86_64 0:2.4.6-97.el7.centos mailcap.noarch 0:2.1.41-2.el7
Complete! 
 "]}
~~~~~~~~~~~~~~~~~~~~~~~~省略~~~~~~~~~~~~~~~~~~~~~~~
Installed: 
    php.x86_64 0:5.4.16-48.el7 
Dependency Installed: 
    libzip.x86_64 0:0.10.1-8.el7 php-cli.x86_64 0:5.4.16-48.el7 php-common.x86_64 0:5.4.16-48.el7
Complete! 
"]}
~~~~~~~~~~~~~~~~~~~~~~~~省略~~~~~~~~~~~~~~~~~~~~~~~ 
Updated:
    perl.x86_64 4:5.16.3-299.el7_9 
Dependency Updated: 
    perl-libs.x86_64 4:5.16.3-299.el7_9 
Complete!
"]}
~~~~~~~~~~~~~~~~~~~~~~~~省略~~~~~~~~~~~~~~~~~~~~~~~
Updated:
    python.x86_64 0:2.7.5-90.el7 
Dependency Updated: 
    python-libs.x86_64 0:2.7.5-90.el7 
Complete! 
"]}

ターゲットマシンからでも、パッケージがインストールできていることを確認することができます。

$ yum list installed httpd
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: ftp-srv2.kddilabs.jp
 * extras: ftp-srv2.kddilabs.jp
 * updates: ftp-srv2.kddilabs.jp
Installed Packages
httpd.x86_64                    2.4.6-97.el7.centos                     @updates

実行編 2回目

実行するターゲットを変更する必要がないため、実行1回目の6~9を行います。
それぞれ登録するデータが異なるので注意してください。

10. 作業名(Operation)の登録

ITAの以下のメニューから、Operationの登録を行います。
メニュー: 基本コンソール >> オペレーション一覧
image.png

以下のように登録します。
実施予定日時は、1回目で登録した日時よりも後の日時を選択してください。

オペレーション名 実施予定日時
オペレーション2 (任意の日時)

11. パラメータシートにデータを登録

ITAの以下のメニューから、新規データを登録します。
メニュー: 入力用 >> インストールパッケージ一覧
image.png

以下のように登録します。

ホスト名 オペレーション httpd mariadb-server php perl python
(機器一覧で登録したホスト名) オペレーション2 * * * * *

12. ジョブフロー(Conductor)の実行

ITAの以下のメニューから、実行する「Conductor」と「オペレーション」を選択し、
実行を行ってください。
メニュー: Conductor >> Conductor作業実行
image.png

実行すると「Conductor作業確認」メニュー画面に切り替わります。
ジョブフローが正常終了すると、以下の画面が表示されターゲットマシンへの設定も完了です。
image.png

実行編1回目同様、ジョブ(Movement)を選択し、Doneのアイコンまたは右側のOperation statusをクリックすると作業詳細を確認することができます。
投入データや結果データをダウンロードすることも可能です。
image.png

13. 実行結果の確認

作業状態確認から、Ansibleの実行ログをリアルタイムで確認することができます。
image.png
以下は実行ログから抽出したログの一部になります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1983857/6d2d9cb5-638f-f79e-8707-bc3f5759345e.png)
~~~~~~~~~~~~~~~~~~~~~~省略~~~~~~~~~~~~~~~~~~~~~~~ "results": ["All packages providing httpd are up to date",
 ""]}
~~~~~~~~~~~~~~~~~~~~省略~~~~~~~~~~~~~~~~~~~~~~~ Installed:
    mariadb-server.x86_64 1:5.5.68-1.el7 
Dependency Installed: 
    mariadb.x86_64 1:5.5.68-1.el7 
    perl-Compress-Raw-Bzip2.x86_64 0:2.061-3.el7 
    perl-Compress-Raw-Zlib.x86_64 1:2.061-4.el7 
    perl-DBD-MySQL.x86_64 0:4.023-6.el7 
    perl-DBI.x86_64 0:1.627-4.el7 
    perl-IO-Compress.noarch 0:2.061-2.el7 
    perl-Net-Daemon.noarch 0:0.48-5.el7 
    perl-PlRPC.noarch 0:0.2020-14.el7
Dependency Updated: 
    mariadb-libs.x86_64 1:5.5.68-1.el7
Complete!
"]}
~~~~~~~~~~~~~~~~~~~~~省略~~~~~~~~~~~~~~~~~~~~~~~ "results": ["All packages providing php are up to date",
 ""]} 
~~~~~~~~~~~~~~~~~~~~~省略~~~~~~~~~~~~~~~~~~~~~~~ "results": ["All packages providing perl are up to date", 
""]}
 ~~~~~~~~~~~~~~~~~~~~~省略~~~~~~~~~~~~~~~~~~~~~~~ "results": ["All packages providing python are up to date", 
""]} 

今回の実行では、新にmariadb-serverのインストールを行いました。
その為、他のパッケージとの依存関係の解決、他の4つのパッケージ(httpd,php,perl,python)のバージョンアップが行われていることが確認できます。
また、すべて最新版であることが確認でき、サーバの状態が保たれたことがわかります。

【参考】 CMDBパラメータの履歴管理の方法

ITAはCMDBに「誰が・いつ・何をしたのか?」を履歴管理し、その時に時点でシステムのパラメータがどうなっているかを抽出できる機能があります。
image.png

ITAの以下のメニューから、実際にパラメータが管理できているかどうか確認していきます。

基準日時を入力せずにフィルタをかける

メニュー: 参照用 >> インストールパッケージ一覧
image.png
現時点での最新データが表示されることが確認できます。

2回目の実行を行った基準日時より前の日付を入力してフィルタをかける

image.png
1回目の実行結果が表示されることが確認できます。

1回目の実行を行った基準日時より前の日付を入力してフィルタをかける

image.png
何も表示されないことが確認できます。

まとめ

v1.9を利用して、クイックスタートに触れてみました。
今回、インストールのみの実行を行いましたが、実施いたしました手順踏むことで様々なことを自動化することが可能かと思います。(例:起動・通信許可・ファイルコピー)
また、こちらでは1つのMovementに対して1つのPlaybookのみを登録し実行しましたが、複数のPlaybookを登録することも可能ですのでぜひ試してみてください。
ExastroITAは現在v1.9まで公開されています。今後の新たな機能も気になるところです。

参考にしたサイト

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