0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Exastro IT Automation 2.4.0 のLeran(Ansible-Role)をやってみた その④

Last updated at Posted at 2024-06-13

はじめに

本記事は全部で4部作の記事になります。
先に過去の回をご覧ください。
Exastro IT Automation 2.4.0 のLeran(Ansible-Role)をやってみた その①
Exastro IT Automation 2.4.0 のLeran(Ansible-Role)をやってみた その②
Exastro IT Automation 2.4.0 のLeran(Ansible-Role)をやってみた その③
Exastro IT Automation 2.4.0 のLeran(Ansible-Role)をやってみた その④

今回はユーザー管理(演習問題)のシナリオを実施していきます。
ユーザ管理の演習問題

シナリオ④【ユーザー管理(演習問題)】

最後のシナリオは、演習問題になっています。
ここまでのシナリオで構築した Web サーバに対してユーザー管理が出来るようにする問題です。
利用するRoleのplaybookは、提供されている資材に含まれています。

image.png

オペレーションの作成

基本コンソールからオペレーションを登録します。
オペレーションに作業対象とパラメータが紐づきます。
image.png

  • オペレーション名:ユーザ管理
  • 実施予定日時:現在時刻

Movement一覧の作成

ITAでは作業(ジョブ)を Movement という単位で管理しています。
ユーザ管理のMovementを作成します。
image.png

  • Movement名:ユーザ管理
  • ホスト指定形式:IP(デフォルト値なのでそのままで良い)

Movement と Ansible Role の紐付け

image.png
■項目①

  • Movement名:ユーザ管理
  • ロールパッケージ名:"OS-RHEL8:OS-RHEL8/RH_group/OS_build"
  • インクルード順序:1

■項目②

  • Movement名:ユーザ管理
  • ロールパッケージ名:"OS-RHEL8:OS-RHEL8/RH_user/OS_build"
  • インクルード順序:2

パラメータシート作成

パラメータシートの作成に関しては解答を見ながら設定しました。
プルダウン選択にするところなどパラメータの設計に関してはある程度知識が求められると感じました。

グループ設定用のパラメータシート
image.png
■画面左の項目①の設定

  • 項目の名前:グループ名
  • 項目の名前(Rest API用):group_name
  • 最大バイト数:32
  • 必須:チェックを付ける
  • 一意制約:チェックを付ける

■画面左の項目②の設定

  • 項目の名前:グループID
  • 項目の名前(Rest API用):group_id
  • 入力方式:整数
  • 最小値:1000
  • 必須:チェックを付ける
  • 一意制約:チェックを付ける

■画面左の項目③の設定

  • 項目の名前:状態
  • 項目の名前(Rest API用):state
  • 入力方式:プルダウン選択
  • 選択項目:"入力用:状態:present-absent"
  • 必須:チェックを付ける

■画面右の項目設定

  • パラメータシート名:グループ
  • パラメータシート名(REST):groups
  • 表示順序:4
  • バンドル:チェックを付ける

ユーザ設定用のパラメータシート
※項目が多いためキャプチャを2枚にしています。
image.png
image.png

■画面左の項目①の設定

  • 項目の名前:ユーザー名
  • 項目の名前(Rest API用):user_name
  • 最大バイト数:32
  • 必須:チェックを付ける
  • 一意制約:チェックを付ける

■画面左の項目②の設定

  • 項目の名前:ユーザーID
  • 項目の名前(Rest API用):user_id
  • 入力方式:整数
  • 最小値:1000
  • 必須:チェックを付ける
  • 一意制約:チェックを付ける

■画面左の項目③の設定

  • 項目の名前:パスワード
  • 項目の名前(Rest API用):password
  • 入力方式:パスワード
  • 最大バイト数:32
  • 必須:チェックを付ける

■画面左の項目④の設定

  • 項目の名前:パスワード設定
  • 項目の名前(Rest API用):password_apply
  • 入力方式:プルダウン選択
  • 選択項目:"パラメータシート作成:選択2:True-False"
  • 初期値:False
  • 必須:チェックを付ける

■画面左の項目⑤の設定

  • 項目の名前:グループ
  • 項目の名前(Rest API用):group
  • 入力方式:プルダウン選択
  • 選択項目:"入力用:グループ:グループ名"
  • 必須:チェックを付ける

■画面左の項目⑥の設定

  • 項目の名前:ホームディレクトリ
  • 項目の名前(Rest API用):home_dir
  • 最大バイト数:128
  • 必須:チェックを付ける

■画面左の項目⑦の設定

  • 項目の名前:ログインシェル
  • 項目の名前(Rest API用):login_shell
  • 初期値:/bin/bash
  • 最大バイト数:32
  • 必須:チェックを付ける

■画面左の項目⑧の設定

  • 項目の名前:コメント
  • 項目の名前(Rest API用):comment
  • 最大バイト数:128
  • 必須:チェックを付ける

■画面左の項目⑨の設定

  • 項目の名前:状態
  • 項目の名前(Rest API用):state
  • 入力方式:プルダウン選択
  • 選択項目:"入力用:状態:present-absent"
  • 必須:チェックを付ける

■画面右の項目設定

  • パラメータシート名:ユーザー
  • パラメータシート名(REST):users
  • 表示順序:3
  • バンドル:チェックを付ける

変数ネスト管理

ここも回答を見て作成しました。
管理できるグループ数とユーザ数の上限を定義します。
image.png
■グループ数(VAR_RH_group)

  • 最大繰返数:5

■ユーザ数(VAR_RH_user)

  • 最大繰返数:10

代入値自動登録設定

こちらも回答を見て作成しました。
エクセルを使って一括登録をしましたが、数が多く間違えやすいと思います。
私は間違えてしまって実行時にエラーが出ました。
エクセルの画像は修正して正常動作した代入値設定です。

設定するパラメータはドキュメントに記載されていたのと同様です。
image.png
image.png

グループ設定用代入値設定
image.png

ユーザ設定用代入値設定
※画像は割愛しますが10セット分作成しています。
image.png

パラメータ設定

問題の内容に沿って各パラメータを設定しました

今回のシナリオでは、db01 というホストに対して httpd のパッケージをインストールしますが前のシナリオで mariadb-server のパッケージがインストール済みの状態となっています。
そのため、mariadb-server パッケージの状態を absentにして、httpd パッケージの状態を present にします。
ホスト名も db01 から web01 に設定します。

グループの設定
image.png
■項目①

  • ホスト名:web01
  • オペレーション名:ユーザ管理
  • 代入順序:1
  • グループ名:www
  • グループID:10001
  • 状態:present

■項目②

  • ホスト名:web01
  • オペレーション名:ユーザ管理
  • 代入順序:2
  • グループ名:app
  • グループID:10002
  • 状態:present

ユーザーの設定
こちらは項目が少し多いのでエクセルで登録しました。
image.png

ジョブフローへの追加

ジョブフローにユーザ管理のMovementを追加しました。
その際、各Movementに個別オペレーションを設定する必要があります。
image.png

作業実行

事前状態を確認。
image.png

ジョブフローから作業を実行して正常終了を確認しました。
image.png

ユーザとグループも想定通り作成されているようです。
image.png

まとめ

ITAのver2.4のAnsible-Legacy-Roleの「Learn」を実際に試してみました。
すべてやりきるとなかなかボリュームがありますが、Ansible Role を使った自動化を体系的に学ぶことが出来ると思います。
興味がある方はぜひ試してみると良いと思います。
「Learn」で紹介されていない機能もあるようなので他の機能についてもいずれ触ってみたいと思います。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?