17
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のキホンの”キ”

Last updated at Posted at 2020-07-19

関連リンク

#はじめに

この記事は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台のターゲットサーバにそれぞれ異なるディレクトリを作成します。

環境.png

#今回紹介するシナリオ

まず、Playbookを実行できるようにします。
次に、CMDBにパラメータシートを設定し、データを登録します。
そして、パラメータシートとPlaybookの変数を紐付け、ジョブフロー(Symphony)を実行します。

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

シナリオ.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:ディレクトリ作成 dir-make 1

図6.png

**

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

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

##2. ジョブ(Movement)をジョブフロー(Symphony)に組み込む
「基本コンソール」メニューグループ >> 「Symphonyクラス編集」メニュー
を選択し、Symphony名称を設定し、右側のフィールドからMovementをドラッグ&ドロップします。

図8.png

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

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

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

図9.png

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

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

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

図10.png

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

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

図11.png

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

図12.png

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

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

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

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

メニューグループ名称 表示順序
サーバ基本設定 1
サーバ基本設定(参照用) 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)
メニューグループのパネル画像を自作できる
メニューグループ管理にはパネル画像を自作する機能がついています。 ![図15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/662076/1ddd4f6b-cff9-bc95-7159-8cae0fda4cfa.png) 詳細は[利用手順マニュアル 管理コンソール](https://exastro-suite.github.io/it-automation-docs/asset/Documents_ja/Exastro-ITA_利用手順マニュアル_管理コンソール.pdf)を参照ください。

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

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

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

図16.png


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

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

メニュー名 項目名 表示順序 入力方式 文字列(単一行)
最大バイト数
ディレクトリ設定 path 1 文字列(単一行) 32
ディレクトリ設定 owner 2 文字列(単一行) 32
ディレクトリ設定 group 3 文字列(単一行) 32
ディレクトリ設定 mode 4 文字列(単一行) 32

図17.png


###5-4. 定義したメニュー名/項目名でパラメータシートを作成する

先に説明したとおり、メニュー=パラメータシートですので、
メニューを作成することになります。

「メニュー作成」メニューグループ >> 「メニュー作成実行」メニュー
を選択し、作成するメニュー名のチェックボックスを選択し、「メニュー作成開始」ボタンを押します。

図18.png

ここで、「メニュー作成管理」ボタンを押すと、実行ステータスを確認できます。
ステータスが完了の場合、「作成したメニュー」ボタンを押すと、作成したメニューに遷移することができます。

図19.png

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

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

図20.png

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

図21.png

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

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

図22.png

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

図23.png

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

図24.png

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

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

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

#まとめ
今回はITAのパラメータシートを活用して、2台のターゲットマシンのディレクトリ作成を行います。
通常、ディレクトリ作成はloopモジュールを使って再帰的に作成できるように書きますが、
今回はシンプルに1つ作成します。
次は複雑なPlaybookとそれに対するITAでのメニュー構成を紹介したいと思います。

#関連リンク

17
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
17
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?