Exastro Playbook Collectionを使ってみた

関連リンク


+ [Exastro IT Automationインストール(v1.5.0)](https://qiita.com/standsetx/items/c0e4ed7c6a2c34b2f068)
+ [Exastro IT Automationを実際に動かしてみた(クイックスタート)](https://qiita.com/standsetx/items/7a96f2286b6d1f3a3524)
+ [Exastro IT Automation ver1.5.0のキホンの"キ"](https://qiita.com/wakky0328/items/cf29c22cbf7cb42d462b)
+ [Exastro IT Automationの３つのAnsibleモードを使ってみた](https://qiita.com/standsetx/items/6efb0a6bef28c60bc883)

#はじめに　
※(追記)※
2021年5月31日、Playbook Collectionの内容が一新され、ITAへの導入が簡単になりました。
新規に記事を作ってみましたので、ぜひ合わせてお読みください。
[【Exastroシリーズ】IT AutomationでPlaybook Collection使ってみた (RHEL7基本設定編)](https://qiita.com/tak_paddy/items/05e14ac64d7eeb40319e)

###Exastro Playbook Collectionとは

>Exastro Playbook Collectionとは、システム構築で利用されるOSやMiddleware用のAnsible Playbook集です。
([Exastro-Suite公式サイト](https://exastro-suite.github.io/docs/index_ja.html)より)

Exastro-Suiteのなかで、システムの「設定作業」の省力化を担っているのがPlaybook Collectionです。

公開されているAnsible-Roleをダウンロードし、自由に使用することができます。
今回は様々なAnsible-Roleの中から以下のものを実行してみます。

- Apache_install(Apacheのインストール)
- Apache_setup(Apacheの設定)
- RHEL(RedHat系OSの設定)

なお、実行時にはExastro　IT Automation(以降、ITAと記載)を使用します。

###作業環境
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/702786/6d467a6f-4e7d-a88a-2e9c-ed766cad14cf.png)

**ホスト側**

- Linux CentOS7.8
- Exastro IT Automation 1.5.0
- Ansible 2.9.12

**ターゲット側**

- Linux CentOS7.8 1台

【注】
NetworkManagerを停止させています。今回利用するRoleの一部(RH_name-resolve,RH_ntp)がNetworkManagerの動作していない環境での実行を想定しているためです。
加えて、結果確認を容易にするためネットワークインターフェイスの設定に"PEERDNS=no"を追記しています。

**クライアント**

- Windows 10
- Microsoft Edge

#作業手順
以下の流れで作業を進めます。

<dl>
  <dt>ITAを操作する前に</dt>
  <dd>1. Playbook CollectionからAnsible‐Roleをダウンロードする  </dd>
  <dd>2. ITAreadmeを作成する </dd>
  <dd>3. zipファイルを作成する  </dd>
<br>
  <dt>ITAを操作する</dt>
  <dd>4. ターゲットとなる機器を登録する</dd>
  <dd>5. オペレーションを登録する</dd>
  <dd>6. Movementを設定する</dd>
  <dd>7. 多段変数最大繰返数管理</dd>
  <dd>8. Conductorを作成する</dd>
  <dd>9. パラメータシートを作成する</dd>
  <dd>10. パラメータを登録する  </dd>
  <dd>11. 代入値自動登録設定を行う  </dd>
  <dd>12. Counductorを実行する </dd>
  <dd>13. 実行結果の確認</dd>
</dl>


## ① Playbook CollectionからAnsible‐Roleをダウンロードする
Playbook Collectionは以下のURLで公開されています。
https://github.com/exastro-suite/playbook-collection-docs/blob/master/README.ja.md

「ロールリスト」のリンクから、各ロールパッケージのリポジトリにアクセスできます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/702786/ca69163a-0dc9-7e64-e895-d2793be53e9f.png)

今回利用したロールパッケージのリポジトリは以下の3つです。
Apache_install ‐  https://github.com/exastro-playbook-collection/Apache_install.git
Apache_setup -https://github.com/exastro-playbook-collection/Apache_setup.git
RHEL - https://github.com/exastro-playbook-collection/RHEL.git

この内、RHELはRedHat系OSの初期設定を網羅したものになっています。
全てを実行すると記事内容があまりに膨大になりますので、今回は以下の５つを選んで実行します。

- RH_sshd (/etc/sshd/sshd.confの設定)
- RH_rsyslog (/etc/rsyslog.confの設定)
- RH_kdump (kdumpの設定)
- RH_name-resolve (名前解決の設定)
- RH_ntp (NTPサーバの設定)
 
##② ITAreadmeを作成する
ITAにロールパッケージを登録する前に、各Ansible‐Roleのdefault/main.ymlを確認してみましょう。

```yaml:Apache_install-master/default/main.yml
apache_OS_Version: RedHat7
```
apache_OS_VersionにはOSの系列とバージョンを指定し、各taskの実行判定に使用します。
今回の対象ホストはCentOS７なので、変更の必要はありません。

```yaml:Apache_setup-master/default/main.yml
###  Directive for Apache2.4,Apache2.2
VAR_Apache_ServerTokens: 
VAR_Apache_ServerRoot: /etc/httpd
VAR_Apache_Timeout: 
VAR_Apache_KeepAlive: 
VAR_Apache_MaxKeepAliveRequests: 
VAR_Apache_KeepAliveTimeout: 
# 以下略
```
httpd.confに記載するパラメータが定義されています。
具体値はITAで変更できますので、今は触らずともよいでしょう。

```yaml:RHEL-master/RH_sshd/default/main.yml
# VAR_RH_sshd_config:                 #sshd設定
  # - key: PermitRootLogin
    # value: yes                  #rootユーザのログインを許可
  # - key: PasswordAuthentication
    # value: yes           #パスワード認証を許可

```
あるべき変数定義の型がコメントアウトされています。

```yaml:RHEL-master/RH_rsyslog/default/main.yml
# VAR_RH_rsyslog_rules:                #syslog設定
  # - selector: 'local7.*'                 #facility / priority
    # action: '/var/log/boot.log'          #ログ出力先
  # - selector: '*.info;mail.none;authpriv.none;cron.none'      #facility / priority
    # action: '/var/log/messages'                               #ログ出力先

VAR_RH_rsyslog_rules: []
VAR_RH_rsyslog_d_files: []
```
上に同じく、変数定義がコメントアウトされています。

RHELに収録されているAnsible‐Roleは変数がコメントアウトされており、使用前に変数定義を加筆する必要があります。
(RH-sshd、RH-rsyslog以外のAnsible‐Roleも同様です。)

/default/main.ymlを直接編集することもできますが、今回は**ITAreadme**を使用して変数を後付けで定義します。

<details><summary>ITAreadmeとは？</summary><div>
　変数定義を追加するためのITA専用ファイルです。
　ダウンロードしたロールパッケージに添えてITAにアップロードすると、必要な変数定義を追加してITAで具体値を代入できるようになります。
　詳細は[公式のマニュアル]を参照してください。
</div></details>
今回は以下のように作成しました。

```yaml:default/RH_sshd.yml
VAR_RH_sshd_config:
  - key:   # PermitRootLogin など
    value: # yes / no など
```

```yaml:ita_readme_RH_rsyslog.yml
VAR_RH_rsyslog_rules:
  - selector:   # local7.* など
    action:    # /var/log/boot.log など
```

```yaml:ita_readme_RH_kdump.yml
# 「/etc/kdump.conf」ファイルに設定する項目
VAR_RH_kdump:		
   state:   # started / stopped
   path:   # /var/crash など
   default:   # reboot

# GRUB_CMDLINE_LINUXのcrashkernelの値を指定する。
VAR_RH_kdump_grub_crashkernel:   # 128M / auto　など

```

```yaml:ita_readme_RH_name-resolve.yml
# /etc/hostsファイルに設定する情報
  - ip: 
    hostname: 

# DNSサーバ配置に関する情報
VAR_RH_name_resolve_dns:
  servers: 
    -    #IPアドレス
  suffix: 
    -    

# 名前解決の参照先の順序設定。
VAR_RH_name_resolve_nsswitch:
  - method:   # dns　など
    actions:   # [NOTFOUND=return] など
```

```yaml:ita_readme_RH_ntp.yml
# ntpサーバの情報 
VAR_RH_ntp_servers:
  - server:    #IPアドレス
    prefer:    #true / false
    op:     #add / upd / del
   
VAR_RH_ntp_options:
  - slew:      # True / False
```
【注】
ITAreadmeは変数の定義を変更・追加するために使用されます。
ITAreadmeで変数の値を指定しても、作業へ反映されることはありません。

##③ zipファイルを作成する
Ansible‐RoleやITAreadmeをITAにアップロードするため、これらをまとめたzipファイルを作成します。

Apache_install-masterとApache_setup-masterは1つのzipファイルにまとめます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/702786/b15f428a-38f7-1389-c785-e6cd3cd7cdb7.png)

ディレクトリ構造は以下の通りです。

```
Apache_Installation.zip
└ roles
　 ├ Apache_install-master
　 └ Apache_setup-master
```

RHEL中の2つのAnsible‐Roleは別のzipファイルとしておきます。
ディレクトリ構造は以下の通りです。

```
RHEL_Configuration.zip
├ roles
|　 ├ RH_sshd
|　 ├ RH_rsyslog
|　 ├ RH_kdump
|　 ├ RH_reboot
|　 ├ RH_name-resolve
|　 └ RH_ntp
├ ita_readme_RH_sshd.yml
├ ita_readme_RH_rsyslog.yml
├ ita_readme_RH_kdump.yml
├ ita_readme_RH_name_resolve.yml
└ ita_readme_RH_ntp.yml
```
**※RH_kdumpの実行にはRH_rebootが要求されるため、roles配下に合わせて配置しています。**

これで準備は完了です。
以降はITAを操作していきます。作業の詳細については、以下の記事でより詳細に解説されています。

+ [Exastro IT Automationを実際に動かしてみた(クイックスタート)](https://qiita.com/standsetx/items/7a96f2286b6d1f3a3524)
+ [Exastro IT Automation ver1.5.0のキホンの"キ"](https://qiita.com/wakky0328/items/cf29c22cbf7cb42d462b)

## ④ ターゲットとなる機器を登録する
ターゲットとなるCentOSターゲットをITAに登録します。

メニュー：基本コンソール >> 機器一覧

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

|HW機器種別|ホスト名|IPアドレス|ログインユーザID|ログインパスワード<br>管理|ログインパスワード|Legacy/Role利用情報<br>認証方式|
|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
|SV|testserver|(ターゲットのIPアドレス)|root|●|********|パスワード認証|

## ⑤. オペレーションを登録する
オペレーション(ITAにおける作業の名前)を登録します。

メニュー: 基本コンソール >> 投入オペレーション一覧
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/702786/4e891eae-d39b-780d-9760-f074478bde96.png)

今回は以下のように1件登録します。

|オペレーション名|実施予定日時|
|:---:|:---:|
|PlaybookCollection試用|2020/09/21 16:00|

## ⑥ Movementを設定する
### Movementを登録する
Movement(ITAにおける作業の最小単位)を登録します。

メニュー: Ansible-LegacyRole >> Movement一覧
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/702786/38fdffdb-5b74-0a6a-1bc5-1c51862dd86e.png)

以下のとおりMovementを2つ登録します。
Apache_install-masterの実行時、gather_factsが有効になっている必要があるため、ヘッダー情報で有効にしています。

| Movement名| ホスト指定形式 |ヘッダー|
|:-------:|:-----------:|:---|
| RHEL系初期設定 | IP  |-|
| Apacheインストール  |IP|	- hosts: all<br>&nbsp;&nbsp;  remote_user: "{{ \_\_loginuser\_\_ }}"<br>&nbsp;&nbsp; gather_facts: yes<br>&nbsp;&nbsp; become: yes|

###  ロールパッケージの登録
用意したzipファイルをITAに登録します。

メニュー: Ansible-LegacyRole >> ロールパッケージ登録
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/702786/6591d3d5-b654-91a5-2175-02f33a49f88b.png)

以下の通り登録します。

| ロールパッケージ名| ロールパッケージファイル |
|:-------:|:-----------:|
|RHEL_Configuration|RHEL_Configuration.zip|
|Apache_Installation|Apache_Installation.zip|


### Movementとロール名の紐づけ
1.3で作成したMovementと1.4で作成したロールパッケージを関連付けます。

メニュー: Ansible-LegacyRole >> Movement詳細
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/702786/d9c0a478-be76-a672-cf7e-ce074a92bc73.png)

Movement: RHELログイン設定

| Movement名|ロールパッケージ| ロール名| インクルード順序 |
|:---------:|:------:|:------:|:---------------:|
| RHEL系初期設定|RHEL_Configuration|RH_sshd|1|
| RHEL系初期設定|RHEL_Configuration|RH_rsyslog |2|
| RHEL系初期設定|RHEL_Configuration|RH_kdump |3|
| RHEL系初期設定|RHEL_Configuration|RH_name-resolve |4|
| RHEL系初期設定|RHEL_Configuration|RH_ntp |5|


Movement: Apacheインストール

| Movement名|ロールパッケージ| ロール名| インクルード順序 |
|:---------:|:------:|:------:|:---------------:|
|Apacheインストール|Apache_Installation|Apache-install-master|1|
|Apacheインストール|Apache_Installation|Apache-setup-master|2|

## ⑦ 多段変数最大繰返数管理
### 多段変数最大繰返数管理とは
あらためて今回作成したITAreadme(＝変数の定義)を見てましょう。

```yaml:default/RH_sshd.yml
VAR_RH_sshd_config:
  - key:   # PermitRootLogin など
    value: # yes / no など
```

```yaml:ita_readme_RH_rsyslog.yml
VAR_RH_rsyslog_rules:
  - selector:   # local7.* など
    action:    # /var/log/boot.log など
```

VAR_RH_sshd_configのメンバー変数に代入した値が/etc/ssh/sshd_configに、
VAR_RH_rsyslog_rulesのメンバー変数に代入した値が/etc/rsyslog.ymlに、それぞれ追記されます。

例えばVAR_RH_sshd_configの場合、keyとvalueが1セットだけ定義されています。
1セットではなく、複数の具体値を設定してAnsible-Roleを実行したい場合
「多段変数最大繰返数管理」を用いてメンバー変数の繰返し数を任意に変更することができます。

### 多段変数最大繰返数管理を行う
では上記２つの変数について、メンバー変数の繰返し数を定義していきます。

メニュー： Ansible-LegacyRole　>>  多段変数最大繰返数管理
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/702786/c3319ea7-84d4-ff8b-8e77-341cd2a21acf.png)


***
1. 一覧から目当ての変数を探し、「更新」を押下する
2. 「最大繰返数」の値を変更する
3.「登録」を押下する
***

## ⑧ Conductorを作成する
### Conductorを作成する
Conductorとは、ITAにおける一連の作業の単位です。複数のMovementを登録し、１つのジョブフローを形成することができます。
今回は、上で作成したMovement２つを含むConductorを作成します。

メニュー: Conductor >> Conductorクラス編集

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/702786/bcd9c191-1617-bcec-3816-70a892cc4fc2.png)

***
1. Conductorの名前を入力する
2. 実行するMovementをドラッグ＆ドロップで配置する
3. Movementのin/outをドラッグ＆ドロップで結合する
4. 「登録」を押下する

***
今回作成したConductorの情報は以下の通りです。

***
Conductor名：PlaybookCollection試用

| Movement|実行順序|
|:---------:|:------:|
|RHEL系初期設定 |1|
|Apacheインストール |2| 

## ⑨ パラメータシートを作成する
パラメータシートを作成しシートの項目と変数を紐づけることで今後の作業を簡便にできます。


### 1. メニューグループを作成する
まず、メニュー(＝パラメータシート)が所属するメニューグループを作成します。

メニュー: 管理コンソール >> メニューグループ管理
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/702786/5d1165b1-ca44-ffb3-d475-d0e783b55aae.png)

今回は以下の通りホスト用、参照用、縦メニュー用の3種を作成しました。

|メニューグループ名称|表示順序|
|:-------------:|:---------:|
|サーバ全般管理|120|
|サーバ全般管理(参照用)|125|
|サーバ全般管理(縦)|130|

### 2. メニューを作成する
メニューグループの作成が終わったところで、メニューを作成します。
本記事では簡素な解説に留めますので、詳細な操作解説が必要な場合は以下の記事をご参照ください。

【参考】
[Exastro IT Automation ver1.5.0のキホンの"キ"](https://qiita.com/wakky0328/items/cf29c22cbf7cb42d462b)
[Exastro IT Automationの３つのAnsibleモードを使ってみた](https://qiita.com/standsetx/items/6efb0a6bef28c60bc883)

メニュー：　メニュー作成 >> メニュー定義/作成

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/702786/40b0132d-f309-b271-fae5-78f94af4fbc0.png)

***
① メニュー名などの基本情報を入力する
② 所属するメニューグループを設定する
③ 項目の名前やデータ型を設定する
④ 「作成」を押下する
***

上記の操作を繰り返し、
今回は以下の6つのメニューを作成しました。


***
#### RH_sshd用のメニュー

【基本情報】

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

【項目の設定】
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/702786/4d00d747-0f01-baee-d26d-3e33e22d4457.png)

<details><summary>リピート機能について</summary><div>
keyとvalueのように決まった項目を繰り返して列挙する場合、リピート機能を利用します。
設定した繰り返し回数に応じて、項目が追加されます。
RH_rsyslog用のメニューでも同様にリピート機能を利用しています
</div></details>
***
#### RH_rsyslog用のメニュー
【基本情報】

|メニュー名|作成対象|表示順序|用途|ホスト用メニューグループ|参照用メニューグループ|縦メニュー用メニューグループ|
|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
|rsyslog設定|パラメータシート(ホスト/オペレーション含む)|5|ホスト用|サーバ基本設定|サーバ基本設定(参照用)|サーバ基本設定(縦)|

【項目の設定】
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/702786/658657ab-4532-e09d-36cb-1474f118156e.png)

***
#### RH_kdump用のメニュー
【基本情報】

|メニュー名|作成対象|表示順序|用途|ホスト用メニューグループ|参照用メニューグループ|縦メニュー用メニューグループ|
|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
|kdump設定|パラメータシート(ホスト/オペレーション含む)|10|ホスト用|サーバ基本設定|サーバ基本設定(参照用)|-|

【項目の設定】
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/702786/66130ea9-5230-0815-8342-498157340d56.png)

***
#### RH_name_resolve用のメニュー
【基本情報】

|メニュー名|作成対象|表示順序|用途|ホスト用メニューグループ|参照用メニューグループ|縦メニュー用メニューグループ|
|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
|名前解決設定|パラメータシート(ホスト/オペレーション含む)|15|ホスト用|サーバ基本設定|サーバ基本設定(参照用)|-|

【項目の設定】
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/702786/8b61885e-82bb-69c3-d504-9fdb05638a9f.png)

***
#### RH_ntp用のメニュー
【基本情報】

|メニュー名|作成対象|表示順序|用途|ホスト用メニューグループ|参照用メニューグループ|縦メニュー用メニューグループ|
|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
|NTP設定|パラメータシート(ホスト/オペレーション含む)|20|ホスト用|サーバ基本設定|サーバ基本設定(参照用)|-|
【項目の設定】
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/702786/1ced6cb5-dba2-85eb-3f99-b09083afb1d9.png)

***
#### Apache_setup用のメニュー
【基本情報】

|メニュー名|作成対象|表示順序|用途|ホスト用メニューグループ|参照用メニューグループ|縦メニュー用メニューグループ|
|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
|Apache設定|パラメータシート(ホスト/オペレーション含む)|100|ホスト用|サーバ基本設定|サーバ基本設定(参照用)|-|

【項目の設定】
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/702786/56505b5b-d712-de3c-fead-70eed0368524.png)

***

## ⑩パラメータを登録する
メニューを作成することができました。
作成したメニューからターゲットの設定に利用するパラメータを入力していきます。

***
メニュー： サーバ基本設定(縦)　>> sshd設定

|ホスト名|オペレーション|代入順序|key|value|
|:---:|:---:|:---:|:---:|:---:|
|testserver|playbookCollection試用|1|PasswordAuthentication|yes|
|testserver|playbookCollection試用|2|PermitRootLogin|yes|
***
メニュー： サーバ基本設定(縦)　>> rsyslog設定

|ホスト名|オペレーション|代入順序|selector|action|
|:---:|:---:|:---:|:---:|:---:|
|testserver|playbookCollection試用|1|lpr.info|/var/log/lpr.log|
|testserver|playbookCollection試用|2|:fromhost-ip, isequal, "192.168.11.254"|/var/log/router.log|
***
メニュー： サーバ基本設定　>> kdump設定


|ホスト名|オペレーション|state|path|default|crashkernel|
|:---:|:---:|:---:|:---:|:---:|:---:|
|testserver|playbookCollection試用|started|/var/clash|reboot|128M|

***
メニュー： サーバ基本設定　>> 名前解決設定

|ホスト名|オペレーション|ip|hostname|servers|suffix|resolve_method|resolve_actions|
|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
|testserver|playbookCollection試用|192.168.11.20|test.domain.com|192.168.11.100|test.com|dns|[NOTFOUND=return]|

***
メニュー： サーバ基本設定　>> NTP設定

|ホスト名|オペレーション|server_ip|prefer|operation|slew_option|
|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
|testserver|playbookCollection試用|192.168.11.30|true|add|True|

***
メニュー： サーバ基本設定　>> Apache設定

|ホスト名|オペレーション|ServerName|KeepAlive|KeepAliveRequests|Enable_Service|ServiceState|
|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
|testserver|playbookCollection試用|www.test.com|"On"|100|yes|started|

## ⑪ 代入値自動登録設定を行う
代入値自動登録設定を行い、パラメータシートの項目と変数を紐づけていきます。

メニュー：Ansible-LegacyRole >> 代入値自動登録設定
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/702786/92b5efde-0514-8bbd-94b9-08bdac603d66.png)


#### 「sshd設定」メニューと「RH_sshd」の変数を紐づける設定
VAR_RH_sshd_config は、**多段変数最大繰返数管理**で繰返し数を「２」に設定しました。
そのため、対応する数のメンバー変数が選択できるようになっています。

| メニュー | 項目 | 登録方式 | Movement |変数名 |メンバー変数名 |代入順序|
|:---:|:---|:---:|:---:|:---|:---|:---:|
|sshd設定|key|Value型|RHEL系初期設定|VAR_RH_sshd_config|[0].key|-|
|sshd設定|value|Value型|RHEL系初期設定|VAR_RH_sshd_config|[0].value|-|
|sshd設定|key[2]|Value型|RHEL系初期設定|VAR_RH_sshd_config|[1].key|-|
|sshd設定|value[2]|Value型|RHEL系初期設定|VAR_RH_sshd_config|[1].value|-|

#### 「rsyslog設定」メニューと「RH_rsyslog」の変数を紐づける設定
VAR_RH_rsyslog_rules についても、多段変数最大繰返数管理で繰返し数を「２」に設定しました。
追加のメンバー変数が選択できるようになっています。

| メニュー | 項目 | 登録方式 | Movement |変数名 |メンバー変数名 |代入順序|
|:---:|:---|:---:|:---:|:---|:---|:---:|
|rsyslog設定|selector|Value型|RHEL系初期設定|VAR_RH_rsyslog_rules|[0].selector|-|
|rsyslog設定|action|Value型|RHEL系初期設定|VAR_RH_rsyslog_rules|[0].action|-|
|rsyslog設定|selector[2]|Value型|RHEL系初期設定|VAR_RH_rsyslog_rules|[1].selector|-|
|rsyslog設定|action[2]|Value型|RHEL系初期設定|VAR_RH_rsyslog_rules|[1].action|-|

#### 「kdump設定」メニューと「RH_kdump」の変数を紐づける設定
| メニュー | 項目 | 登録方式 | Movement |変数名 |メンバー変数名 |代入順序|
|:---:|:---|:---:|:---:|:---|:---|:---:|
|kdump設定|state|Value型|RHEL系初期設定|VAR_RH_kdump|state|-|
|kdump設定|path|Value型|RHEL系初期設定|VAR_RH_kdump|path|-|
|kdump設定|default|Value型|RHEL系初期設定|VAR_RH_kdump|default|-|
|kdump設定|crashkernel|Value型|RHEL系初期設定|VAR_RH_grub_crashkernel|-|-|

#### 「名前解決設定」メニューと「RH_name-resolve」の変数を紐づける設定
| メニュー | 項目 | 登録方式 | Movement |変数名 |メンバー変数名 |代入順序|
|:---:|:---|:---:|:---:|:---|:---|:---:|
|名前解決設定|hosts情報/ip|Value型|RHEL系初期設定|VAR_RH_resolve_hosts|[0].ip|-|
|名前解決設定|hosts情報/ip[2]|Value型|RHEL系初期設定|VAR_RH_resolve_hosts|[0].hostname|-|
|名前解決設定|DNSサーバ情報/servers|Value型|RHEL系初期設定|VAR_RH_resolve_dns|servers|1|
|名前解決設定|DNSサーバ情報/suffix|Value型|RHEL系初期設定|VAR_RH_resolve_dns|suffix|1|
|名前解決設定|resolve_method|Value型|RHEL系初期設定|VAR_RH_nsswitch|[0].method|-|
|名前解決設定|resolve_actions|Value型|RHEL系初期設定|VAR_RH_nsswitch|[0].actions|-|

#### 「NTP設定」メニューと「RH_ntp」の変数を紐づける設定
| メニュー | 項目 | 登録方式 | Movement |変数名 |メンバー変数名 |代入順序|
|:---:|:---|:---:|:---:|:---|:---|:---:|
|NTP設定|NTPサーバ情報/server_ip|Value型|RHEL系初期設定|VAR_RH_ntp_servers|[0].server|-|
|NTP設定|NTPサーバ情報/prefer|Value型|RHEL系初期設定|VAR_RH_ntp_servers|[0].prefer|-|
|NTP設定|NTPサーバ情報/operation|Value型|RHEL系初期設定|VAR_RH_ntp_servers|[0].op|-|
|NTP設定|slew_option|Value型|RHEL系初期設定|VAR_RH_ntp_options|[0].slew|-|

#### 「Apache設定」メニューと「RH_apache_setup-master」の変数を紐づける設定
| メニュー | 項目 | 登録方式 | Movement |変数名 |メンバー変数名 |代入順序|
|:---:|:---|:---:|:---:|:---|:---|:---:|
|Apache設定|Servername|Value型|RHEL系初期設定|VAR_RH_ServerName|-|-|
|Apache設定|KeepAlive|Value型|RHEL系初期設定|VAR_RH_KeepAlive|-|-|
|Apache設定|KeepAliveRequests|Value型|RHEL系初期設定|VAR_RH_KeepAliveRequests|-|-|
|Apache設定|EnableService|Value型|RHEL系初期設定|VAR_RH_ServiceAuto|-|-|
|Apache設定|ServiceState|Value型|RHEL系初期設定|VAR_RH_ServiceState|-|-|

##⑫ Conductorを実行する
ここまでの操作でMovemetの作成と代入値の登録が完了しました。
最後にMovementを実行し、作業の結果を対象ホストで確認します。

メニュー: Conductor >> Conductor実行
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/702786/c5ef1b16-a854-837f-8cb1-fc0483521c08.png)

***
1.オペレーションを選択する
2.実行するConductorを選択する
3.作業実行を押下する
***

実行後は自動で作業確認画面に遷移します。
ノード(Movement)をクリックすることでステータスや詳細結果へのリンクを表示できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/702786/a40ae3be-4874-fdbf-3121-3cb1a6dd043b.png)



##⑬  実行結果の確認
### RHELによる各種設定変更を確認する
RH_sshdによる設定は/etc/ssh/sshd_confに記入されます。

```conf:/etc/ssh/sshd_conf
#PermitRootLogin yes
PermitRootLogin yes

～～中略～～
# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication.  Depending on your PAM configuration,
PasswordAuthentication yes
```

RH_rsyslogによる設定は/etc/ssh/sshd_confの末尾に記入されます。
同様に確認します。

```conf:/etc/rsyslog.conf
～～中略～～
lpr.info        /var/log/lpr.log
:fromhost-ip, isequal, "192.168.11.254"        /var/log/router.log
```

RH_kdumpによる設定も確認していきます。
/etc/kdump.confにログの出力先などの情報が入力されています。

```conf:/etc/kdump.conf
#nfs my.server.com:/export/tmp
#ssh user@my.server.com
#sshkey /root/.ssh/kdump_id_rsa
path /var/crash
core_collector makedumpfile -l --message-level 1 -d 31
#core_collector scp
#kdump_post /var/crash/scripts/kdump-post.sh
```

kdump用のメモリサイズも指定した値に変更されています。

```conf:/etc/default/grub
GRUB_CMDLINE_LINUX="crashkernel=128M spectre_v2=retpoline rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet"
```

RH_name-resolveによる名前解決関係の設定もしっかり反映されています。
まずは/etc/hostsを見てみます。

```text:/etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.11.20     test.domain.com
```

DNSサーバの情報も書き込まれています。

```text:/etc/resolv.conf
; generated by /usr/sbim/dhclient-script
nameserver 192.168.11.100
search test.com
```

同様に、RH_ntpによってNTPサーバの情報も追記されています。
下記ファイルの最終行を見てみます。

```text:/etc/ntp.conf
～～略～～
server 192.168.11.30 iburst prefer
```

RHEL収録のAnsible‐Roleにより、しっかりと基本設定が反映されていることが確認できました。

### Apacheのインストール確認
次にApacheについても変更を確認していきます。

systemctlでhttpdの起動を確認します。

```
$ sudo systemctl status httpd | grep "Active"
Active: active (running) since 火 2020-09-29 12:46:24 JST; 23h ago
```


/etc/httpd/conf/httpd.confの内容を確認すると、
指定した通りの情報を含むconfファイルが配置されています。

```conf:/etc/httpd/conf/httpd.conf
～～略～～
KeepAlive On
MaxKeepAliveRequests 100
～～略～～
ServerName www.test.com
```
正しくApacheのインストール、起動設定、configの配置が行われています。

## 終わりに
今回はPlaybook CollectionとITAを利用して、ターゲットへの各種設定を行いました。
ITAreadmeの作成を行うことで、公開されているAnsible‐Role自体を変更することなく、ITAへの取り込みや実行ができる点が好印象でした。

今回の作業は極めてシンプルでしたが、本来はさらに幅広い作業が実行できます。RHELだけでも数多くのAnsible‐Roleが収録されていますし、Apache-setupの実行時はさらに多くのパラメータを設定できます。

Playbook Collectionを活用すればIaCの作成作業を大幅に短縮できるでしょう。

## 関連リンク　まとめ
+ [Exastro-Suite公式サイト](https://exastro-suite.github.io/docs/index_ja.html)
+ [Exastro IT Automationインストール(v1.5.0)](https://qiita.com/standsetx/items/c0e4ed7c6a2c34b2f068)
+ [Exastro IT Automationを実際に動かしてみた(クイックスタート)](https://qiita.com/standsetx/items/7a96f2286b6d1f3a3524)
+ [Exastro IT Automation ver1.5.0のキホンの"キ"](https://qiita.com/wakky0328/items/cf29c22cbf7cb42d462b)
+ [Exastro IT Automationの３つのAnsibleモードを使ってみた](https://qiita.com/standsetx/items/6efb0a6bef28c60bc883)