LoginSignup
0
0

Exastro IT Automation(ver2.4.0)のlearnをやってみた Ansible Legacy編 その①

Last updated at Posted at 2024-06-24

※本シナリオに入る前に、Exastro IT Automation(ver2.4.0)のクイックスタートをやってみた(Ansible Legacy) を完了させておくことを推奨します。

はじめに

Exastro IT Automationとは

システム構成(IaC+パラメータ)を管理するためのフレームワークです。
【Exastro-suite】より

今回はパッケージのインストールやアンインストールといったパッケージ管理を自動化して行きたいと思います。
手順については、Learn Ansible Legacy を参考にしました。

今回は、以下のPlaybookを使用します。
文字コードは「UTF-8」、改行コードは「LF」、拡張子は「yml」形式で作成してください。
※ファイルアップロードができなかったり、実行エラーが発生するため、インデントにご注意ください。

package.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編 その③

作業環境

前回同様、以下の環境で進めていきます。

画像1.png

  • 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.データシートの作成

データシートを作成します。
「パラメータシート作成」メニューグループ → 「パラメータシート定義・作成」メニューを選択します。

画像37.png

以下のように登録しました。

設定項目 項目1設定値
項目の名前 present_absent
項目の名前(Rest API用) present_absent
入力方式 文字列(単一行)
最大バイト数 16
必須
一意制約

画像38.png

以下のように登録しました。

設定項目 設定値
パラメータシート名 状態
パラメータシート名(REST用) state
作成対象 データシート
表示順序 99999

入力後、作成をクリックします。

2.パラメータシートにデータを登録

「入力用」メニューグループ → 「状態」→ 「登録」を選択します。

画像39.png

以下のように登録しました。

present_absent 備考
present インストール
absent アンインストール

入力後は、「編集確認」 → 「編集反映」をクリックします。

3.パラメータシートの作成

パラメータシートを作成します。
「パラメータシート作成」メニューグループ → 「パラメータシート定義・作成」メニューを選択します。
画像40.png

以下のように登録しました。

設定項目 項目1設定値 項目2設定値
項目の名前 パッケージ名 状態
項目の名前(Rest API用) package_name state
入力方式 文字列(単一行) プルダウン選択
最大バイト数 64 (項目なし)
正規表現 (項目なし)
選択項目 (項目なし) 入力用:present-absent
参照項目 (項目なし)
必須

画像41.png

以下のように登録しました。

設定項目 設定値
パラメータシート名 導入パッケージ
パラメータシート名(REST用) packages
作成対象 パラメータシート(ホスト/オペレーションあり)
表示順序 2
バンドル 「利用する」に✓をいれる

4.ジョブ(Movement)の登録

ジョブ(Movement)の登録を行います。
「Ansible-Lagacy」メニューグループ → 「Movement一覧」メニューを選択します。

画像43.png

以下のように登録しました。

Movement名 ホスト指定形式
パッケージ管理 IP

入力後は、「編集確認」 → 「編集反映」をクリックします。

5.Ansible Playbookの登録

playbookを登録します。
「Ansible-Lagacy」メニューグループ → 「Playbook素材集」メニュー →「登録」をクリックし、事前に準備しておいた「package.yml」をアップロードします。
画像44.png

以下のように登録しました。

Playbook素材名 Playbook素材
package package.yml

入力後は、「編集確認」 → 「編集反映」をクリックします。

6.ジョブ(Movement)とAnsible Playbookの紐付け

「Ansible-Lagacy」メニューグループ → 「Movement-Playbook紐付」メニュー → 「登録」を選択します。

画像45.png

以下のように登録しました。

Movement名 Playbook素材 インクルード順序
パッケージ管理 package.yml 1

入力後は、「編集確認」 → 「編集反映」をクリックします。

7.パラメータシートの項目とPlaybookの変数を紐付け

「Ansible-Lagacy」メニューグループ → 「代入値自動登録設定」メニューを選択します。
「ダウンロード・ファイル一括登録」タブから「新規登録用ダウンロード(Excel)」をクリックし、フォーマットをダウンロードします。
画像46.png

ダウンロードしたフォーマットを開き、行を追加します。(今回は20行分入力します。)
C列(実行処理種別)のプルダウンは「登録」を選択し、その他の列は
Ansible Legacy Learnのパッケージ管理
からコピーしてフォーマットにペーストします。

「ファイル一括登録」 → 「一括登録開始」をクリックします。
画像47.png

8.機器一覧にターゲットマシンを登録

下記の「実施作業2回目 ホスト名登録」を参照。
Exastro IT Automation(ver2.4.0)のlearnをやってみた Ansible Legacy編 その①

作業実行1回目

9.作業名(オペレーション)の登録

「基本コンソール」メニューグループ → 「オペレーション一覧」メニュー → 「登録」選択します。
画像48.png

以下のように登録しました。

オペレーション名 実施要諦日時
RHEL8のパッケージ管理 2024/04/02 12:00:00

入力後は、「編集確認」 → 「編集反映」をクリックします。

10.パラメータシートにデータを登録

「入力用」メニューグループ → 「導入パッケージ」 → 「登録」を選択します。

画像50.png

以下のように登録しました。

ホスト名 オペレーション名 代入順序 パッケージ名 状態
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」メニューグループ → 「作業実行」メニュー → 「パッケージ管理」 → 「作業実行」を選択します。
画像51.png

実行するオペレーションを選択し、作業実行をクリックします。
画像52.png

13.実行結果の確認

再度サーバに SSH ログインし、ホスト名が変更されていることを確認します。

#実行コマンド
rpm -q postgresql-server
# 結果(環境ごとにバージョンは異なります)
postgresql-server-10.23-1.module+el8.7.0+17280+3a452e1f.x86_64

作業実行2回目

14.作業名(オペレーション)の登録

「基本コンソール」メニューグループ → 「オペレーション一覧」メニュー → 「登録」選択します。

画像54.png

以下のように登録しました。

オペレーション名 実施予定日時
RHEL8のパッケージ変更 2024/04/05 12:00:00

入力後は、「編集確認」 → 「編集反映」をクリックします。

15.パラメータシートにデータを登録

「入力用」メニューグループ → 「導入パッケージ」メニュー → 「登録」選択します。
画像53.png

以下のように登録しました。

ホスト名 オペレーション名 代入順序 パッケージ名 状態
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」メニューグループ → 「作業実行」メニュー → 「パッケージ変更」 → 「作業実行」を選択します。

実行するオペレーションを選択し、作業実行をクリックします。
画像56.jpg

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編 その②

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