#関連リンク
- Exastro IT Automationをインストールしてみた(v1.6.0)
- Exastro IT Automationを実際に動かしてみた(クイックスタート)
- Exastroコミュニティ
- 利用手順マニュアル メニュー作成機能
- Exastro IT Automationのキホンの”キ”
- Exastro IT Automation ver1.5.0のキホンの"キ"
#はじめに
2020/11/25にExastro IT Automation Ver1.6.0(以下ITAver1.6.0)がリリースされました。
ITAver1.6.0で追加された機能として、主に以下の4点があります。
- メインメニュー画面にWidgetを配置することができ、リンクや画像も配置可能になった。
- アクセス権がロール・メニュー紐付管理のメニュー単位での管理に加え、レコード単位での管理となった。
- パラメータシートのカラムにパスワード、フィルアップロード、リンクが作成できるようになった。
- サーバなどの機器へパラメータを収集するplaybookを実施し、収集した値をパラメータシートに自動登録することができるようになった。
本記事ではExastro IT Automation ver1.5.0のキホンの"キ"を参考に、ITAver1.6.0で進めようと思います。
また、Conductor実施時には(簡単にですが)分岐機能を使っての処理を追加してみたいと思います。
###作業環境
2台のターゲットサーバにそれぞれ異なるディレクトリを作成します。
- Exastro IT Automation 1.6.0
- CentOS Linux 7.8(ITAサーバ用)
- CentOS Linux 7.8(ターゲットマシン用)×2
- Windows 10(クライアント)
- Google Chrome 83.0.4103.116(Win10側)
#今回紹介するシナリオ
まず、Playbookを実行できるようにし、パラメータシートとPlaybookの変数を紐付けを行います。
次に、CMDBにパラメータシートを設定し、データを登録します。
そして、高度なジョブフロー(Conductor)を実行します。
【仕込編】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
- name: Error Output
shell: echo "`date '+%Y/%m/%d %H:%M:%S'` failed to make directory "{{ VAR_dir_name }}"" >> /tmp/error_log
##【仕込編】1. Playbookをアップロードしてジョブ(Movement)に紐付ける
###1.1 Movementを登録
「Ansible-Legacy 」メニューグループ >> 「Movement一覧」メニュー
を選択し、登録します。
登録したデータは以下です。
Movement名 | ホスト指定形式 |
---|---|
ディレクトリ作成 | IP |
エラーファイル出力 | IP |
ITA 1.6.0で追加されたアクセス権
###1.2 Playbookアップロード
「Ansible-Legacy 」メニューグループ >> 「プレイブック素材集」メニュー
を選択し、用意したmkdir.yml
、error_output.yml
をプレイブック素材にアップロードを行います。
登録するデータは以下です。
プレイブック素材名 | プレイブック素材 |
---|---|
mkdir | mkdir.yml |
error_output | error_output.yml |
ファイルをアップロードするときのハマりどころ
###1.3 アップロードしたplaybookをMovementに紐付け
「Ansible-Legacy 」メニューグループ >> 「Movement詳細」メニュー
を選択し、登録します。
登録するデータは以下です。
Movement | プレイブック素材 | インクルード順序 |
---|---|---|
1:ディレクトリ作成 | mkdir | 1 |
2:エラーファイル出力 | error_output | 1 |
****
##【仕込編】2. ジョブ(Movement)をジョブフロー(Conductor)に組み込む
「Conductor」メニューグループ >> 「Conductorクラス編集」メニュー
を選択し、Nameを設定し、右側のMovementタブから作成したMovementをドラッグ&ドロップします。
今回のシナリオでは2つのMovementを扱い、エラー時の動作も準備します。
functionタブには条件分岐や別のジョブフロー(Conductor)を呼び出す部品群がありますので、作成したいジョブフロー(Conductor)に合わせて利用することが可能となっています。
##【仕込編】3. CMDBにパラメータシートを設定
ところで、ITAのメニューグループとメニューの関係について、改めて整理してみました。
下図のように、メニューグループ内にたくさんのメニューが入っていて、
メニュー=パラメータシートと考えてよいと思います。
今回、新しいパラメータシートを設定する、つまりメニューを作ることになります。
作成するメニューにはその置き場となるメニューグループが必要ですので、
まずはメニューグループを登録します。
それから、メニュー(=パラメータシート)を設定します。
詳しくは、ITAの利用手順マニュアル メニュー作成機能を参照ください。
###3-1. パラメータシートのメニュー名を定義する
「メニュー作成」メニューグループ >> 「メニュー定義/作成」メニュー
を選択し、登録します。
下記図の②で登録するデータは以下です。
メニュー名 | 作成対象 | 表示順序 |
---|---|---|
ディレクトリ設定 | パラメータシート(ホスト/オペレーション含む) | 1 |
下記図の⑦で登録するデータは以下です。
単一行以外の表記については、利用手順マニュアル メニュー作成機能に記載がありますが、今後、パラメータシートの作成詳細編を記事公開したいと思います。
項目名 | 入力方式 | 最大バイト数 |
---|---|---|
path | 文字列(単一行) | 32 |
owner | 文字列(単一行) | 32 |
group | 文字列(単一行) | 32 |
mode | 文字列(単一行) | 32 |
###3-2. 作成したパラメータシートを確認する
「メニュー作成」メニューグループ >> 「メニュー作成履歴」メニュー
から作成したパラメータシートを確認します。
メニューを再作成するときのハマりどころ
##【仕込編】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 |
1:サーバ基本設定:1:ディレクトリ設定 | パラメータ/path | Value型 | 2:error_output | 5:VAR_dir_name |
##【仕込編】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/12/04 12:00 |
##【実行編】7. パラメータシートにデータを登録
いよいよターゲットマシンに設定するデータの登録を行います。
データの登録先は前の手順で設定したパラメータシートです。
「入力用」メニューグループ >> 「ディレクトリ設定」メニュー
を選択し、登録します。
登録するデータは以下です。
|ホスト名|オペレーション|path|owner|group|mode|
|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
|target101|2020/12/04 12:00_1:ディレクトリ作成作業|/work1|root|root|0644|
|target102|2020/12/04 12: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 Dec 4 21:17 work1
$ ll / | grep work
drwxr-xr-x 2 root root 6 Dec 4 21:17 work2
パラメータシートに登録したデータが設定されていることを確認できました。
ディレクトリ作成が失敗した場合には、エラーファイル出力が実行され、エラーログが出力されます。
$ cat /tmp/error_output
2020/12/04 21:17:30 failed to make directory /work1
#まとめ
Exastro IT Automation ver1.5.0のキホンの"キ"をITAver1.6.0で実施してみました。
今回はシンプルなシナリオに、成否での分岐機能を追加してみましたが、
Conductorには、平行処理機能や一時停止機能、
他のジョブフロー(Conductor,Symphony)呼出など様々な機能があります。
それらを組み合わせることで、より複雑な作業を自動化できると考えています。
#関連リンク