16
6

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 ver1.5.0のキホンの"キ"

Last updated at Posted at 2020-08-12

関連リンク

#はじめに
2020/07/31にExastro IT Automation ver1.5.0(以下ITAver1.5.0)がリリースされました。
パラメータシートが感覚的に作成できるようになり、より高度なジョブフローを作成できるConductorが搭載されました。
前回紹介した記事Exastro IT Automationのキホンの”キ”をITAver1.5.0で実施してみたいと思います。
今回の記事でもExastro IT Automation(以下ITAと表記)のWeb画面を使って、CMDBを設定し、Ansible Playbook(以下、playbook)と連動させた自動作業をご紹介します。

playbookを実行するにあたり、ITAに必要なデータを登録する【仕込編】と、実際に実行する【実行編】の両方をご紹介します。
ITAは動作させる1playbookに対して、一度【仕込編】を行えば、その後パラメータを変更して実行する際には【実行編】のみ実施すればよいソフトウェアとなっています。

ITAをまだインストールしていない場合は、関連リンクのExastro IT Automationインストール(v1.5.0)をお試しください。

今回はExastro IT Automationインストール(v1.5.0)で作成したシステム管理者(administrator)で操作します。

###作業環境


  • Exastro IT Automation 1.5.0
  • CentOS Linux 7.8(ITAサーバ用)
  • CentOS Linux 7.8(ターゲットマシン用)×2
  • Windows 10(クライアント)
  • Google Chrome 83.0.4103.116(Win10側)

2台のターゲットサーバにそれぞれ異なるディレクトリを作成します。

#今回紹介するシナリオ

まず、Playbookを実行できるようにし、パラメータシートとPlaybookの変数を紐付けを行います。
次に、CMDBにパラメータシートを設定し、データを登録します。
そして、高度なジョブフロー(Conductor)を実行します。
新機能のところだけ知りたい方は【仕込編】2. ジョブ(Movement)をジョブフロー(Conductor)に組み込む【仕込編】3. CMDBにパラメータシートを設定を見ていただければよいです。

【仕込編】1. Playbookをアップロードしてジョブ(Movement)に紐付ける
【仕込編】2. ジョブ(Movement)をジョブフロー(Conductor)に組み込む
【仕込編】3. CMDBにパラメータシートを設定
【仕込編】4. パラメータシートの項目とPlaybookの変数の紐づけ
【仕込編】5. ITAのCMDBの機器一覧(デフォルト)にターゲットとなるLinuxマシンを登録
【実行編】6. 作業名(Operation)の登録
【実行編】7. パラメータシートにデータを登録
【実行編】8. ジョブフロー(Conductor)の実行
【実行編】9. 実行結果の確認

図2-2.png

今回は以下のPlaybookを利用します。

mkdir.yml
- name: Make Directory
  file:
    path: "{{ VAR_dir_name }}"
    owner: "{{ VAR_owner }}"
    group: "{{ VAR_group }}"
    mode: "{{ VAR_mode }}"
    state: directory

##【仕込編】1. Playbookをアップロードしてジョブ(Movement)に紐付ける
###1.1 Movementを登録
「Ansible-Legacy 」メニューグループ >> 「Movement一覧」メニュー
を選択し、登録します。

登録したデータは以下です。

Movement名 ホスト指定形式
ディレクトリ作成 IP

図3.png

###1.2 Playbookアップロード
「Ansible-Legacy 」メニューグループ >> 「プレイブック素材集」メニュー
を選択し、用意したmkdir.ymlをプレイブック素材にアップロードを行います。

登録するデータは以下です。

プレイブック素材名 プレイブック素材
mkdir mkdir.yml

図4.png

ファイルをアップロードするときのハマりどころ
playbookをアップロードする際には、事前アップロードボタンを押してから登録ボタンを押す必要があります。 ![図5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/662076/68ddcc4b-c6b4-643c-6474-ae25678772db.png)

###1.3 アップロードしたplaybookをMovementに紐付け
「Ansible-Legacy 」メニューグループ >> 「Movement詳細」メニュー
を選択し、登録します。

登録するデータは以下です。

Movement プレイブック素材 インクルード順序
1:ディレクトリ作成 mkdir 1

図6.png

**

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

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

##【仕込編】2. ジョブ(Movement)をジョブフロー(Conductor)に組み込む
「Conductor」メニューグループ >> 「Conductorクラス編集」メニュー
を選択し、Nameを設定し、右側のMovementタブから作成したMovementをドラッグ&ドロップします。
今回のシナリオでは1つのMovementを扱うのみなので、高度な機能は利用しませんが、
functionタブには条件分岐や別のジョブフロー(Conductor)を呼び出す部品群がありますので、作成したいジョブフロー(Conductor)に合わせて利用することが可能となっています。

図2-8.png

##【仕込編】3. CMDBにパラメータシートを設定

ところで、ITAのメニューグループとメニューの関係について、改めて整理してみました。
下図のように、メニューグループ内にたくさんのメニューが入っていて、
メニュー=パラメータシートと考えてよいと思います。

図2-11.png

今回、新しいパラメータシートを設定する、つまりメニューを作ることになります。
作成するメニューにはその置き場となるメニューグループが必要ですので、
まずはメニューグループを登録します。
それから、メニュー(=パラメータシート)を設定します。

図12.png

詳しくは、ITAの利用手順マニュアル メニュー作成機能を参照ください。

###3-1. パラメータシートを所属させるメニューグループを用意する

「管理コンソール」メニューグループ >> 「メニューグループ管理」メニュー
を選択し、登録します。

登録するデータは以下です。
後程パラメータシートを作成する際に参照用に所属させるメニューグループも合わせて作成しておきます。

メニューグループ名称 表示順序
サーバ基本設定 1
サーバ基本設定(参照用) 2

図2-13.png

参照用って何?
パラメータシートを作成すると、データ登録するメニューと合わせて参照用のメニューが自動で作成されます。 参照用メニューは閲覧専用のメニューで、データ登録されたメニューに登録されているオペレーション日時から指定した日付における最新の登録データを参照できるメニューです。 ITAでCMDBを作成する際に自動で作成されます。 ![図14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/662076/f8440e26-f106-9e25-f2d7-5022fe31bb1e.png)
メニューグループのパネル画像を自作できる
メニューグループ管理にはパネル画像を自作する機能がついています。 ![図2-15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/662076/346890d5-c74f-d5fa-172d-588067b177fe.png)

詳細は利用手順マニュアル 管理コンソールを参照ください。


###3-2. パラメータシートのメニュー名を定義する
「メニュー作成」メニューグループ >> 「メニュー定義/作成」メニュー
を選択し、登録します。

下記図の②で登録するデータは以下です。

メニュー名 作成対象 表示順序 用途
ディレクトリ設定 パラメータシート(ホスト/オペレーション含む) 1 ホスト用

図2-16.png

図2-17.png

下記図の⑦で登録するデータは以下です。
単一行以外の表記については、利用手順マニュアル メニュー作成機能に記載がありますが、今後、パラメータシートの作成詳細編を記事公開したいと思います。

項目名 入力方式 最大バイト数
path 文字列(単一行) 32
owner 文字列(単一行) 32
group 文字列(単一行) 32
mode 文字列(単一行) 32

図2-18.png


###3-3. 作成したパラメータシートを確認する

「メニュー作成」メニューグループ >> 「メニュー作成履歴」メニュー
から作成したパラメータシートを確認します。

図2-19.png

メニューを再作成するときのハマりどころ
既存のメニューに対してメニュー作成開始ボタンを押下すると、メニューの再作成として、登録済みのデータは削除されます。

##【仕込編】4. パラメータシートの項目とPlaybookの変数の紐付け
パラメータシートの項目とPlaybookの変数を紐付けます。
一度紐付け設定を行っておけば、パラメータシートにデータを登録するだけで、Playbook実行時に登録データが利用できます。

「Ansible-Legacy」メニューグループ >> 「代入値自動登録設定」メニュー
を選択し、登録します。

登録するデータは以下です。

メニューグループ:メニュー 項目 登録方式 Movement Value変数
変数名
1:サーバ基本設定:1:ディレクトリ設定 パラメータ/path Value型 1:mkdir 1:VAR_dir_name
1:サーバ基本設定:1:ディレクトリ設定 パラメータ/owner Value型 1:mkdir 2:VAR_owner
1:サーバ基本設定:1:ディレクトリ設定 パラメータ/group Value型 1:mkdir 3:VAR_group
1:サーバ基本設定:1:ディレクトリ設定 パラメータ/mode Value型 1:mkdir 4:VAR_mode

図21.png

##【仕込編】5. ITAのCMDBの機器一覧(デフォルト)にターゲットとなるLinuxマシンを登録
「基本コンソール」メニューグループ >> 「機器一覧」メニュー
を選択し、登録します。

登録するデータは以下です。

HW機器種別 ホスト名 IPアドレス ログインユーザID ログインパスワード
管理
ログインパスワード Legacy/Role利用情報
認証方式
SV target101 10.197.18.77 root ******** パスワード認証
SV target102 10.197.18.79 root ******** パスワード認証

図2-9.png

##【実行編】6. 作業名(Operation)の登録
「基本コンソール」メニューグループ >> 「投入オペレーション一覧」メニュー
を選択し、登録します。

登録するデータは以下です。

オペレーション名 実施予定日時
ディレクトリ作成作業 2020/07/20 14:00

図2-10.png

##【実行編】7. パラメータシートにデータを登録
いよいよターゲットマシンに設定するデータの登録を行います。
データの登録先は前の手順で設定したパラメータシートです。

「サーバ基本設定」メニューグループ >> 「ディレクトリ設定」メニュー
を選択し、登録します。

登録するデータは以下です。

|ホスト名|オペレーション|path|owner|group|mode|
|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
|target101|2020/07/20 13:00_1:ディレクトリ作成作業|/work1|root|root|0644|
|target102|2020/07/20 13:00_1:ディレクトリ作成作業|/work2|root|root|0755|

図20.png

##【実行編】8. ジョブフロー(Conductor)の実行
最後に、ターゲットマシンへ登録データを設定します。

「Conductor」メニューグループ >> 「Conductor作業実行」メニュー
を選択し、作成したジョブフロー(Conductor)と作業名(Operation)のラジオボタンを選択し、実行ボタンをクリックします。

図2-23.png

ジョブ(Movement)を選択し、右側のOperation statusをクリックすると詳細を確認することができます。
詳細画面のInputDataから実行時のplaybook一式(host_varsやinventryを含む)をダウンロードできます。
また、ResultDataから実行結果をダウンロードできます。

図2-24.png

ジョブフロー(Conductor)が正常終了すると、以下の画面が表示されターゲットマシンへの設定も完了です。

図2-25.png

##【実行編】9. 実行結果の確認
パラメータシートに登録したデータが反映できているか確認しました。
ターゲットマシンに接続して、作成したディレクトリを確認しました。

target101
$ ll / | grep work
drw-r--r--   2 root root    6 Jul 20 14:49 work1
target102
$ ll / | grep work
drwxr-xr-x   2 root root    6 Jul 20 14:49 work2

パラメータシートに登録したデータが設定されていることを確認できました。

#まとめ
前回紹介したExastro IT Automationのキホンの”キ”をITAver1.5.0で実施してみました。
大きく変更となる部分は以下2点です。
・パラメータシートが直観的に作成できるようになった。
・Conductorでより高度なジョブフローを定義できるようになった。

本記事では、【仕込編】と【実行編】という区分を設けて、ITAで新規のplaybookを実行する際に、
登録時に一度だけ行う作業を【仕込編】、繰り返し実行する際に行う作業を【実行編】として記載しました。 

今回実施したシナリオは非常にシンプルなシナリオのため、まだパラメータシートの作成やConductorの機能をご紹介しきれていません。
次回実施するシナリオでは、複雑なplaybookやジョブフローを定義し、それらをどうITAで実現するのかをご紹介したいと思います。

#関連リンク

16
6
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
16
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?