関連リンク
- Exastro IT Automationをインストールしてみた(v1.7.0)
- Exastro IT Automation クイックスタート (ver1.7.0)
- [Exastroコミュニティ](https://exastro-suite.github.io/it-automation-docs/ind
ex_ja.html) - 利用手順マニュアル メニュー作成機能
#はじめに
この記事はITAver1.4.1をベースに紹介しています。
2020年7月31日にITAver1.5.0がリリースされており、多くの機能が追加されています。
同じシナリオですが、ITAver1.5.0で実施している記事はコチラになります。
今回の記事ではExastro IT Automation(以下ITAと表記)のWeb画面を使って、CMDBを設定し、Ansible Playbook(以下、playbook)と連動させた自動作業をご紹介します。
ITAをまだインストールしていない場合は、関連リンクのExastro IT Automationインストールをお試しください。
今回はExastro IT Automationインストールで作成したシステム管理者(administrator)で操作します。
###作業環境
- Exastro IT Automation 1.4.1
- CentOS Linux 7.8(ITAサーバ用)
- CentOS Linux 7.8(ターゲットマシン用)×2
- Windows 10(クライアント)
- Google Chrome 83.0.4103.116(Win10側)
2台のターゲットサーバにそれぞれ異なるディレクトリを作成します。
#今回紹介するシナリオ
まず、Playbookを実行できるようにします。
次に、CMDBにパラメータシートを設定し、データを登録します。
そして、パラメータシートとPlaybookの変数を紐付け、ジョブフロー(Symphony)を実行します。
- Playbookをアップロードしてジョブ(Movement)に紐付ける
- ジョブ(Movement)をジョブフロー(Symphony)に組み込む
- ITAのCMDBの機器一覧(デフォルト)にターゲットとなるLinuxマシンを登録
- 作業名(Operation)の登録
- CMDBにパラメータシートを設定
- パラメータシートにデータを登録
- パラメータシートの項目とPlaybookの変数の紐づけ
- ジョブフロー(Symphony)の実行
- 実行結果の確認
今回は以下の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:ディレクトリ作成 | dir-make | 1 |
****
##2. ジョブ(Movement)をジョブフロー(Symphony)に組み込む
「基本コンソール」メニューグループ >> 「Symphonyクラス編集」メニュー
を選択し、Symphony名称を設定し、右側のフィールドからMovementをドラッグ&ドロップします。
##3. ITAのCMDBの機器一覧(デフォルト)にターゲットとなるLinuxマシンを登録
「基本コンソール」メニューグループ >> 「機器一覧」メニュー
を選択し、登録します。
登録するデータは以下です。
HW機器種別 | ホスト名 | IPアドレス | ログインユーザID | ログインパスワード 管理 |
ログインパスワード | Legacy/Role利用情報 認証方式 |
---|---|---|---|---|---|---|
SV | target101 | 10.197.18.77 | root | ● | ******** | パスワード認証 |
SV | target102 | 10.197.18.79 | root | ● | ******** | パスワード認証 |
##4. 作業名(Operation)の登録
「基本コンソール」メニューグループ >> 「投入オペレーション一覧」メニュー
を選択し、登録します。
登録するデータは以下です。
オペレーション名 | 実施予定日時 |
---|---|
ディレクトリ作成作業 | 2020/07/20 14:00 |
##5. CMDBにパラメータシートを設定
ところで、ITAのメニューグループとメニューの関係について、改めて整理してみました。
下図のように、メニューグループ内にたくさんのメニューが入っていて、
メニュー=パラメータシートと考えてよいと思います。
今回、新しいパラメータシートを設定する、つまりメニューを作ることになります。
作成するメニューにはその置き場となるメニューグループが必要ですので、
まずはメニューグループを登録します。
それから、メニュー(=パラメータシート)を設定します。
詳しくは、ITAの利用手順マニュアル メニュー作成機能を参照ください。
###5-1. パラメータシートを所属させるメニューグループを用意する
「管理コンソール」メニューグループ >> 「メニューグループ管理」メニュー
を選択し、登録します。
登録するデータは以下です。
後程パラメータシートを作成する際に参照用に所属させるメニューグループも合わせて作成しておきます。
メニューグループ名称 | 表示順序 |
---|---|
サーバ基本設定 | 1 |
サーバ基本設定(参照用) | 2 |
参照用って何?
メニューグループのパネル画像を自作できる
###5-2. パラメータシートのメニュー名を定義する
「メニュー作成」メニューグループ >> 「メニュー作成情報」メニュー
を選択し、登録します。
登録するデータは以下です。
メニュー名 | 作成対象 | 表示順序 | 用途 | ホスト用メニューグループ | 参照用メニューグループ |
---|---|---|---|---|---|
ディレクトリ設定 | パラメータシート(ホスト/オペレーション含む) | 1 | ホスト用 | サーバ基本設定 | サーバ基本設定(参照用) |
###5-3. パラメータシートの項目名を定義する
「メニュー作成」メニューグループ >> 「メニュー項目作成情報」メニュー
を選択し、登録します。
登録するデータは以下です。
単一行以外の表記については、利用手順マニュアル メニュー作成機能に記載がありますが、今後、パラメータシートの作成詳細編を記事公開したいと思います。
メニュー名 | 項目名 | 表示順序 | 入力方式 | 文字列(単一行) 最大バイト数 |
---|---|---|---|---|
ディレクトリ設定 | path | 1 | 文字列(単一行) | 32 |
ディレクトリ設定 | owner | 2 | 文字列(単一行) | 32 |
ディレクトリ設定 | group | 3 | 文字列(単一行) | 32 |
ディレクトリ設定 | mode | 4 | 文字列(単一行) | 32 |
###5-4. 定義したメニュー名/項目名でパラメータシートを作成する
先に説明したとおり、メニュー=パラメータシートですので、
メニューを作成することになります。
「メニュー作成」メニューグループ >> 「メニュー作成実行」メニュー
を選択し、作成するメニュー名のチェックボックスを選択し、「メニュー作成開始」ボタンを押します。
ここで、「メニュー作成管理」ボタンを押すと、実行ステータスを確認できます。
ステータスが完了の場合、「作成したメニュー」ボタンを押すと、作成したメニューに遷移することができます。
メニューを再作成するときのハマりどころ
##6. パラメータシートにデータを登録
いよいよターゲットマシンに設定するデータの登録を行います。
データの登録先は前の手順で設定したパラメータシートです。
「サーバ基本設定」メニューグループ >> 「ディレクトリ設定」メニュー
を選択し、登録します。
登録するデータは以下です。
|ホスト名|オペレーション|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|
##7. パラメータシートの項目とPlaybookの変数の紐付け
パラメータシートの項目とPlaybookの変数を紐付けました。
一度紐付け設定を行っておけば、パラメータシートにデータを登録するだけで、Playbook実行時に登録データが利用できます。
「Amsible-Legacy」メニューグループ >> 「代入値自動登録設定」メニュー
を選択し、登録します。
登録するデータは以下です。
メニューグループ:メニュー | 項目 | 登録方式 | Movement | Value変数 変数名 |
---|---|---|---|---|
1:サーバ基本設定:1:ディレクトリ設定 | パラメータ/path | Value型 | 1:dir-make | 1:VAR_dir_name |
1:サーバ基本設定:1:ディレクトリ設定 | パラメータ/owner | Value型 | 1:dir-make | 2:VAR_owner |
1:サーバ基本設定:1:ディレクトリ設定 | パラメータ/group | Value型 | 1:dir-make | 3:VAR_group |
1:サーバ基本設定:1:ディレクトリ設定 | パラメータ/mode | Value型 | 1:dir-make | 4:VAR_mode |
##8. ジョブフロー(Symphony)の実行
最後に、ターゲットマシンへ登録データを設定します。
「基本コンソール」メニューグループ >> 「Symphony作業実行」メニュー
を選択し、作成したジョブフロー(Symphony)と作業名(Operation)のラジオボタンを選択し、実行ボタンをクリックします。
ジョブ(Movement)をクリックすると詳細を確認することができます。
詳細画面のInputDataから実行時のplaybook一式(host_varsやinventryを含む)をダウンロードできます。
また、ResultDataから実行結果をダウンロードできます。
ジョブフロー(Symphony)が正常終了すると、以下の画面が表示されターゲットマシンへの設定も完了です。
##9. 実行結果の確認
パラメータシートに登録したデータが反映できているか確認しました。
ターゲットマシンに接続して、作成したディレクトリを確認しました。
$ ll / | grep work
drw-r--r-- 2 root root 6 Jul 14 09:33 work1
$ ll / | grep work
drwxr-xr-x 2 root root 6 Jul 14 09:33 work2
パラメータシートに登録したデータが設定されていることを確認できました。
#まとめ
今回はITAのパラメータシートを活用して、2台のターゲットマシンのディレクトリ作成を行います。
通常、ディレクトリ作成はloopモジュールを使って再帰的に作成できるように書きますが、
今回はシンプルに1つ作成します。
次は複雑なPlaybookとそれに対するITAでのメニュー構成を紹介したいと思います。
#関連リンク