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

本シナリオに入る前に、 「ホスト名管理」と「パッケージ管理」のシナリオを完了させておく必要があります。
実施内容については下記2つの記事をご参照ください。
[Exastro IT Automation(ver2.4.0)のクイックスタートをやってみた(Ansible Legacy)](https://qiita.com/a-naka/items/2375721182ba783db0fe)
[Exastro IT Automation(ver2.4.0)のlearnをやってみた Ansible Legacy編 その①](https://qiita.com/a-naka/items/5063fa19a955ee13c4e1)

# はじめに
#### Exastro IT Automationとは
システム構成(IaC+パラメータ)を管理するためのフレームワークです。
[【Exastro-suite】](https://ita.exastro.org/)より

第2回目は複数のジョブを一連の流れで実行する作業を自動化していきます。
前回のシナリオではデータベース用のサーバーを構築しました。今回は、複数のジョブを一連の流れで実施し、構築したサーバーをWeb サーバーとして作り直していきます。
手順については、[Ansible Legacy Learn](https://ita-docs.exastro.org/ja/2.4/learn/ansible_legacy/Legacy_scenario3.html#id1) を参考にしました。


以下のように、公式ドキュメントにあるシナリオを3回に分けて実施していきます。

パッケージ管理
[Exastro IT Automation(ver2.4.0)のlearnをやってみた Ansible Legacy編 その①](https://qiita.com/a-naka/items/5063fa19a955ee13c4e1)

ジョブフロー
[Exastro IT Automation(ver2.4.0)のlearnをやってみた Ansible Legacy編 その②](https://qiita.com/a-naka/items/f761bde061b6d2cd2d10)

ユーザー管理
[Exastro IT Automation(ver2.4.0)のlearnをやってみた Ansible Legacy編 その③](https://qiita.com/a-naka/items/aab1096afe58dc5f07a1)

# 作業環境
前回同様、以下の環境で進めていきます。
![画像1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3798801/40d443ad-a513-472b-d941-98c8e10a128b.png)



- Exastro IT Automation 2.4.0
- RHEL8(ITAサーバ用)
- RHEL8(ターゲットマシン用)
- Windows10(クライアント)
- Google Chrome(Win10側)

# シナリオ
1.ジョブフローの作成
2.機器一覧でターゲットマシンの情報を更新
3.作業名(オペレーション)の登録
4.パラメータシートにデータを登録(ホスト名)
5.パラメータシートにデータを登録(パッケージ)
6.事前確認
7.作業実行
8.実行結果の確認




# 実施内容
### 1.ジョブフローの作成
「Conductor」メニューグループ　→  「Conductor編集/作業実行」メニューを選択し、右上のConductor情報に「サーバー構築」と入力します。

![画像60.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3798801/d697582b-fd19-a423-415e-5fdd4bd672ab.png)

Nodeをドラッグ＆ドロップし、Nodeのoutとinを接続後、登録をクリックします。
![画像61.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3798801/1d57b7d4-38dc-5c90-1adc-a52562888f4d.png)

### 2.機器一覧でターゲットマシンの情報を更新
「Ansible共通」メニューグループ　→　「機器一覧」メニュー　→　「登録」選択します。
![画像2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3798801/399ec642-39fc-3420-98fe-9daf9d133ea5.png)


以下のように登録しました。
|Movement名|ホスト指定形式|Movement名|ホスト指定形式|Movement名|ホスト指定形式|
|:---:|:---:|:---:|:---:|:---:|:---:|
|SV|web01|ターゲットサーバーのIPアドレス|root|(パスワード)|パスワード認証|

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


### 3.作業名(オペレーション)の登録
「基本コンソール」メニューグループ　→　「オペレーション一覧」メニュー　→　「登録」選択します。
![画像59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3798801/0ada9910-0297-ea02-0eef-427c535fe564.png)


以下のように登録しました。
|オペレーション名|実施予定日時|
|:---:|:---:|
|webサーバへの再構築|2024/04/03 12:00:00|

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




### 4.パラメータシートにデータを登録(ホスト名)
「入力用」メニューグループ　→　「サーバー基本情報」メニュー　→　「登録」選択します。
![画像62.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3798801/508f0f6f-d736-9b0c-bf30-d1e0290b01d9.png)


以下のように登録しました。
|ホスト名|オペレーション名|パラメータホスト名|
|:---:|:---:|:---:|
|web01|2024/04/03 12:00:00_webサーバへの再構築|"{{ __inventory_hostname__ }}"|

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



### 5.パラメータシートにデータを登録(パッケージ)
パラメータシートにデータを登録(パッケージに関するパラメータ)
「入力用」メニューグループ　→　「導入パッケージ」メニュー　→　「登録」選択します。
![画像63.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3798801/b1f098c7-6d04-3c6f-dbe4-bd5b20c77dff.png)


以下のように登録しました。
|ホスト名|オペレーション名|代入順序|パラメータパッケージ名|状態|
|:---:|:---:|:---:|:---:|:---:|
|web01|2024/04/03 12:00:00_webサーバへの再構築|1|mariadb-server|absent|
|web01|2024/04/03 12:00:00_webサーバへの再構築|2|httpd|present|

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



### 6.事前確認
実行する前に現在の状態を確認します。
```
#実行コマンド
hostnamectl status --static
```

```
# 結果
db01
```

```
#実行コマンド
rpm -q mariadb-server
```

```
# 結果(環境ごとにバージョンは異なります)
mariadb-server-10.3.35-1.module+el8.6.0+15949+4ba4ec26.x86_64
```

```
#実行コマンド
rpm -q httpd
```

```
# 結果
package httpd is not installed
```


### 7.作業実行
「Conductor」メニューグループ　→　「Conductor編集/作業実行」メニュー　→「選択」を選択します。
![画像64.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3798801/5a164ddf-bd6c-fa36-5e2a-046244c4f678.png)


実行するConductor名称は「サーバー構築」を選択します。

![画像68.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3798801/87e77f69-3832-11eb-bf89-d45d3fb21b16.png)

作業実行をクリックします。
![画像69.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3798801/3e16ac00-c96d-51bb-e534-62fa0ce4c33b.png)



全てのステータスが「Done」になったことを確認します。
![画像73.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3798801/b3409017-1619-e26c-8242-244388307dfe.jpeg)

↓

![画像74.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3798801/a9d79c5f-f597-95e0-79a7-f6550605cada.jpeg)





### 8.実行結果の確認
再度サーバに SSH ログインし、ホスト名が変更されていることを確認します。
```
#実行コマンド
hostnamectl status --static
```

```
# 結果
web01
```

```
#実行コマンド
rpm -q mariadb-server
```

```
# 結果(環境ごとにバージョンは異なります)
is not installed
```

```
#実行コマンド
rpm -q httpd
```

```
# 結果
httpd-2.4.37-51.module+el8.7.0+18026+7b169787.1.x86_64
```


# おわりに

今回は、Conductorという機能を使用し、複数のジョブを一連の流れで実行する作業を自動化しました。

次回はユーザー名やパスワードなど、ユーザー情報の変更を自動化していきたいと思います。

次回：ユーザー管理
[Exastro IT Automation(ver2.4.0)のlearnをやってみた Ansible Legacy編 その③](https://qiita.com/a-naka/items/aab1096afe58dc5f07a1)