関連リンク
-
Exastro IT Automationインストール(v1.5.0)Exastro IT Automationをインストールしてみた(v1.7.2) -
Exastro IT Automationを実際に動かしてみた(クイックスタート)Exastro IT Automation クイックスタート (ver1.7.2) - Exastroコミュニティ
- 利用手順マニュアル メニュー作成機能
- Exastro IT Automationのキホンの”キ”
#はじめに
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. 実行結果の確認
今回は以下のPlaybookを利用します。
- 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 |
###1.2 Playbookアップロード
「Ansible-Legacy 」メニューグループ >> 「プレイブック素材集」メニュー
を選択し、用意したmkdir.yml
をプレイブック素材にアップロードを行います。
登録するデータは以下です。
プレイブック素材名 | プレイブック素材 |
---|---|
mkdir | mkdir.yml |
ファイルをアップロードするときのハマりどころ
###1.3 アップロードしたplaybookをMovementに紐付け
「Ansible-Legacy 」メニューグループ >> 「Movement詳細」メニュー
を選択し、登録します。
登録するデータは以下です。
Movement | プレイブック素材 | インクルード順序 |
---|---|---|
1:ディレクトリ作成 | mkdir | 1 |
****
##【仕込編】2. ジョブ(Movement)をジョブフロー(Conductor)に組み込む
「Conductor」メニューグループ >> 「Conductorクラス編集」メニュー
を選択し、Nameを設定し、右側のMovementタブから作成したMovementをドラッグ&ドロップします。
今回のシナリオでは1つのMovementを扱うのみなので、高度な機能は利用しませんが、
functionタブには条件分岐や別のジョブフロー(Conductor)を呼び出す部品群がありますので、作成したいジョブフロー(Conductor)に合わせて利用することが可能となっています。
##【仕込編】3. CMDBにパラメータシートを設定
ところで、ITAのメニューグループとメニューの関係について、改めて整理してみました。
下図のように、メニューグループ内にたくさんのメニューが入っていて、
メニュー=パラメータシートと考えてよいと思います。
今回、新しいパラメータシートを設定する、つまりメニューを作ることになります。
作成するメニューにはその置き場となるメニューグループが必要ですので、
まずはメニューグループを登録します。
それから、メニュー(=パラメータシート)を設定します。
詳しくは、ITAの利用手順マニュアル メニュー作成機能を参照ください。
###3-1. パラメータシートを所属させるメニューグループを用意する
「管理コンソール」メニューグループ >> 「メニューグループ管理」メニュー
を選択し、登録します。
登録するデータは以下です。
後程パラメータシートを作成する際に参照用に所属させるメニューグループも合わせて作成しておきます。
メニューグループ名称 | 表示順序 |
---|---|
サーバ基本設定 | 1 |
サーバ基本設定(参照用) | 2 |
参照用って何?
メニューグループのパネル画像を自作できる
詳細は利用手順マニュアル 管理コンソールを参照ください。
###3-2. パラメータシートのメニュー名を定義する
「メニュー作成」メニューグループ >> 「メニュー定義/作成」メニュー
を選択し、登録します。
下記図の②で登録するデータは以下です。
メニュー名 | 作成対象 | 表示順序 | 用途 |
---|---|---|---|
ディレクトリ設定 | パラメータシート(ホスト/オペレーション含む) | 1 | ホスト用 |
下記図の⑦で登録するデータは以下です。
単一行以外の表記については、利用手順マニュアル メニュー作成機能に記載がありますが、今後、パラメータシートの作成詳細編を記事公開したいと思います。
項目名 | 入力方式 | 最大バイト数 |
---|---|---|
path | 文字列(単一行) | 32 |
owner | 文字列(単一行) | 32 |
group | 文字列(単一行) | 32 |
mode | 文字列(単一行) | 32 |
###3-3. 作成したパラメータシートを確認する
「メニュー作成」メニューグループ >> 「メニュー作成履歴」メニュー
から作成したパラメータシートを確認します。
メニューを再作成するときのハマりどころ
##【仕込編】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 |
##【仕込編】5. ITAのCMDBの機器一覧(デフォルト)にターゲットとなるLinuxマシンを登録
「基本コンソール」メニューグループ >> 「機器一覧」メニュー
を選択し、登録します。
登録するデータは以下です。
HW機器種別 | ホスト名 | IPアドレス | ログインユーザID | ログインパスワード 管理 |
ログインパスワード | Legacy/Role利用情報 認証方式 |
---|---|---|---|---|---|---|
SV | target101 | 10.197.18.77 | root | ● | ******** | パスワード認証 |
SV | target102 | 10.197.18.79 | root | ● | ******** | パスワード認証 |
##【実行編】6. 作業名(Operation)の登録
「基本コンソール」メニューグループ >> 「投入オペレーション一覧」メニュー
を選択し、登録します。
登録するデータは以下です。
オペレーション名 | 実施予定日時 |
---|---|
ディレクトリ作成作業 | 2020/07/20 14:00 |
##【実行編】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|
##【実行編】8. ジョブフロー(Conductor)の実行
最後に、ターゲットマシンへ登録データを設定します。
「Conductor」メニューグループ >> 「Conductor作業実行」メニュー
を選択し、作成したジョブフロー(Conductor)と作業名(Operation)のラジオボタンを選択し、実行ボタンをクリックします。
ジョブ(Movement)を選択し、右側のOperation statusをクリックすると詳細を確認することができます。
詳細画面のInputDataから実行時のplaybook一式(host_varsやinventryを含む)をダウンロードできます。
また、ResultDataから実行結果をダウンロードできます。
ジョブフロー(Conductor)が正常終了すると、以下の画面が表示されターゲットマシンへの設定も完了です。
##【実行編】9. 実行結果の確認
パラメータシートに登録したデータが反映できているか確認しました。
ターゲットマシンに接続して、作成したディレクトリを確認しました。
$ ll / | grep work
drw-r--r-- 2 root root 6 Jul 20 14:49 work1
$ 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で実現するのかをご紹介したいと思います。
#関連リンク