※本シナリオに入る前に、Exastro IT Automation(ver2.4.0)のクイックスタートをやってみた(Ansible Legacy) を完了させておくことを推奨します。
はじめに
Exastro IT Automationとは
システム構成(IaC+パラメータ)を管理するためのフレームワークです。
【Exastro-suite】より
今回はパッケージのインストールやアンインストールといったパッケージ管理を自動化して行きたいと思います。
手順については、Learn Ansible Legacy を参考にしました。
今回は、以下のPlaybookを使用します。
文字コードは「UTF-8」、改行コードは「LF」、拡張子は「yml」形式で作成してください。
※ファイルアップロードができなかったり、実行エラーが発生するため、インデントにご注意ください。
---
- name: install package
yum:
state: installed
name: "{{ item.0 }}"
with_together:
- "{{ pkg_name }}"
- "{{ action }}"
when: item.1 == 'present'
- name: uninstall package
yum:
state: removed
name: "{{ item.0 }}"
with_together:
- "{{ pkg_name }}"
- "{{ action }}"
when: item.1 == 'absent'
以下のように、公式ドキュメントにあるシナリオを3回に分けて実施していきます。
パッケージ管理
Exastro IT Automation(ver2.4.0)のlearnをやってみた Ansible Legacy編 その①
ジョブフロー
Exastro IT Automation(ver2.4.0)のlearnをやってみた Ansible Legacy編 その②
ユーザー管理
Exastro IT Automation(ver2.4.0)のlearnをやってみた Ansible Legacy編 その③
作業環境
前回同様、以下の環境で進めていきます。
- Exastro IT Automation 2.4.0
- RHEL8(ITAサーバ用)
- RHEL8(ターゲットマシン用)
- Windows10(クライアント)
- Google Chrome(Win10側)
シナリオ
自動化するための作業には、事前準備として1度だけ実施すべき作業と、繰り返し実施する作業があります。
今回のシナリオでは、1~8が事前準備にあたり。9~13と14~18は繰り返し実施する作業にあたります。
【事前準備】
1.データシートの作成
2.パラメータシートにデータを登録
3.パラメータシートの作成
4.ジョブ(Movement)の登録
5.Ansible Playbookの登録
6.ジョブ(Movement)とAnsible Playbookの紐付け
7.パラメータシートの項目とPlaybookの変数を紐付け
8.機器一覧にターゲットマシンを登録(未実施の場合はAnsible Legacyのクイックスタートを参照)
【作業実行1回目】
9.作業名(オペレーション)の登録
10.パラメータシートにデータを登録
11.事前確認
12.作業実行
13.実行結果の確認
【作業実行2回目】
14.作業名(オペレーション)の登録
15.パラメータシートにデータを登録
16.事前確認
17.作業実行
18.実行結果の確認
事前準備
1.データシートの作成
データシートを作成します。
「パラメータシート作成」メニューグループ → 「パラメータシート定義・作成」メニューを選択します。
以下のように登録しました。
設定項目 | 項目1設定値 |
---|---|
項目の名前 | present_absent |
項目の名前(Rest API用) | present_absent |
入力方式 | 文字列(単一行) |
最大バイト数 | 16 |
必須 | ✓ |
一意制約 | ✓ |
以下のように登録しました。
設定項目 | 設定値 |
---|---|
パラメータシート名 | 状態 |
パラメータシート名(REST用) | state |
作成対象 | データシート |
表示順序 | 99999 |
入力後、作成をクリックします。
2.パラメータシートにデータを登録
「入力用」メニューグループ → 「状態」→ 「登録」を選択します。
以下のように登録しました。
present_absent | 備考 |
---|---|
present | インストール |
absent | アンインストール |
入力後は、「編集確認」 → 「編集反映」をクリックします。
3.パラメータシートの作成
パラメータシートを作成します。
「パラメータシート作成」メニューグループ → 「パラメータシート定義・作成」メニューを選択します。
以下のように登録しました。
設定項目 | 項目1設定値 | 項目2設定値 |
---|---|---|
項目の名前 | パッケージ名 | 状態 |
項目の名前(Rest API用) | package_name | state |
入力方式 | 文字列(単一行) | プルダウン選択 |
最大バイト数 | 64 | (項目なし) |
正規表現 | (項目なし) | |
選択項目 | (項目なし) | 入力用:present-absent |
参照項目 | (項目なし) | |
必須 | ✓ | ✓ |
以下のように登録しました。
設定項目 | 設定値 |
---|---|
パラメータシート名 | 導入パッケージ |
パラメータシート名(REST用) | packages |
作成対象 | パラメータシート(ホスト/オペレーションあり) |
表示順序 | 2 |
バンドル | 「利用する」に✓をいれる |
4.ジョブ(Movement)の登録
ジョブ(Movement)の登録を行います。
「Ansible-Lagacy」メニューグループ → 「Movement一覧」メニューを選択します。
以下のように登録しました。
Movement名 | ホスト指定形式 |
---|---|
パッケージ管理 | IP |
入力後は、「編集確認」 → 「編集反映」をクリックします。
5.Ansible Playbookの登録
playbookを登録します。
「Ansible-Lagacy」メニューグループ → 「Playbook素材集」メニュー →「登録」をクリックし、事前に準備しておいた「package.yml」をアップロードします。
以下のように登録しました。
Playbook素材名 | Playbook素材 |
---|---|
package | package.yml |
入力後は、「編集確認」 → 「編集反映」をクリックします。
6.ジョブ(Movement)とAnsible Playbookの紐付け
「Ansible-Lagacy」メニューグループ → 「Movement-Playbook紐付」メニュー → 「登録」を選択します。
以下のように登録しました。
Movement名 | Playbook素材 | インクルード順序 |
---|---|---|
パッケージ管理 | package.yml | 1 |
入力後は、「編集確認」 → 「編集反映」をクリックします。
7.パラメータシートの項目とPlaybookの変数を紐付け
「Ansible-Lagacy」メニューグループ → 「代入値自動登録設定」メニューを選択します。
「ダウンロード・ファイル一括登録」タブから「新規登録用ダウンロード(Excel)」をクリックし、フォーマットをダウンロードします。
ダウンロードしたフォーマットを開き、行を追加します。(今回は20行分入力します。)
C列(実行処理種別)のプルダウンは「登録」を選択し、その他の列は
Ansible Legacy Learnのパッケージ管理
からコピーしてフォーマットにペーストします。
「ファイル一括登録」 → 「一括登録開始」をクリックします。
8.機器一覧にターゲットマシンを登録
下記の「実施作業2回目 ホスト名登録」を参照。
Exastro IT Automation(ver2.4.0)のlearnをやってみた Ansible Legacy編 その①
作業実行1回目
9.作業名(オペレーション)の登録
「基本コンソール」メニューグループ → 「オペレーション一覧」メニュー → 「登録」選択します。
以下のように登録しました。
オペレーション名 | 実施要諦日時 |
---|---|
RHEL8のパッケージ管理 | 2024/04/02 12:00:00 |
入力後は、「編集確認」 → 「編集反映」をクリックします。
10.パラメータシートにデータを登録
「入力用」メニューグループ → 「導入パッケージ」 → 「登録」を選択します。
以下のように登録しました。
ホスト名 | オペレーション名 | 代入順序 | パッケージ名 | 状態 |
---|---|---|---|---|
db01 | 2024/04/02 12:00:00_RHEL8のパッケージ管理 | 1 | postgresql-server | present |
入力後は、「編集確認」 → 「編集反映」をクリックします。
11.事前確認
実行する前に現在の状態を確認します。
#実行コマンド
rpm -q postgresql-server
# 結果
package postgresql-server is not installed
12.作業実行
「Ansible-Lagacy」メニューグループ → 「作業実行」メニュー → 「パッケージ管理」 → 「作業実行」を選択します。
13.実行結果の確認
再度サーバに SSH ログインし、ホスト名が変更されていることを確認します。
#実行コマンド
rpm -q postgresql-server
# 結果(環境ごとにバージョンは異なります)
postgresql-server-10.23-1.module+el8.7.0+17280+3a452e1f.x86_64
作業実行2回目
14.作業名(オペレーション)の登録
「基本コンソール」メニューグループ → 「オペレーション一覧」メニュー → 「登録」選択します。
以下のように登録しました。
オペレーション名 | 実施予定日時 |
---|---|
RHEL8のパッケージ変更 | 2024/04/05 12:00:00 |
入力後は、「編集確認」 → 「編集反映」をクリックします。
15.パラメータシートにデータを登録
「入力用」メニューグループ → 「導入パッケージ」メニュー → 「登録」選択します。
以下のように登録しました。
ホスト名 | オペレーション名 | 代入順序 | パッケージ名 | 状態 |
---|---|---|---|---|
db01 | 2024/04/05 12:00:00_RHEL8のパッケージ変更 | 1 | postgresql-server | absent |
db01 | 2024/04/05 12:00:00_RHEL8のパッケージ変更 | 2 | mariadb-server | present |
入力後は、「編集確認」 → 「編集反映」をクリックします。
16.事前確認
実行する前に現在の状態を確認します。
#実行コマンド
rpm -q postgresql-server
# 結果(環境ごとにバージョンは異なります)
postgresql-server-10.23-1.module+el8.7.0+17280+3a452e1f.x86_64
#実行コマンド
rpm -q mariadb-server
# 結果
package mariadb-server is not installed
17.作業実行
「Ansible-Lagacy」メニューグループ → 「作業実行」メニュー → 「パッケージ変更」 → 「作業実行」を選択します。
18.実行結果の確認
再度サーバに SSH ログインし、ホスト名が変更されていることを確認します。
#実行コマンド
rpm -q postgresql-server
# 結果
package postgresql-server is not installed
#実行コマンド
rpm -q mariadb-server
# 結果(環境ごとにバージョンは異なります)
mariadb-server-10.3.35-1.module+el8.6.0+15949+4ba4ec26.x86_64
おわりに
今回は、Ansible 3モードの1つであるAnsible-Legacyを使用し、パッケージのインストールやアンインストールを自動化しました。
次回は複数のジョブを一連の流れで実行する作業を自動化したいと思います。
次回:ジョブフロー
Exastro IT Automation(ver2.4.0)のlearnをやってみた Ansible Legacy編 その②