5. ユーザー管理 (解答)¶
5.1. 問題 (再掲)¶
| ユーザー名 | ユーザーID | ログインパスワード | グループ名 | 
|---|---|---|---|
| wwwuser01 | 10001 | password01 | www | 
| wwwuser02 | 10002 | password02 | www | 
| appuser01 | 20001 | password01 | app | 
| appuser02 | 20002 | password02 | app | 
5.2. パラメータ設計¶
5.2.1. グループのパラメータシート作成¶
| 項目 | 説明 | 
|---|---|
| group_name | グループ名 | 
| group_id | グループID | 
| action | 構築時の設定 present: 作成/更新 absent: 削除 | 
Tip
Tip
 
 
| 設定項目 | 項目1設定値 | 項目2設定値 | 項目3設定値 | 
|---|---|---|---|
| 項目の名前 | グループ名 | グループID | 状態 | 
| 項目の名前(Rest API用) | group_name | group_id | state | 
| 入力方式 | 文字列(単一行) | 整数 | プルダウン選択 | 
| 最小値 | (項目なし) | 1000 | (項目なし) | 
| 最大値 | (項目なし) | (項目なし) | |
| 最大バイト数 | 32 | (項目なし) | (項目なし) | 
| 正規表現 | (項目なし) | (項目なし) | |
| 選択項目 | (項目なし) | (項目なし) | 入力用:状態:present-absent | 
| 参照項目 | (項目なし) | (項目なし) | |
| 初期値 | |||
| 必須 | ✓ | ✓ | ✓ | 
| 一意制約 | ✓ | ✓ | |
| 説明 | |||
| 備考 | 
| 項目名 | 設定値 | 
|---|---|
| 項番 | (自動入力) | 
| メニュー名 | グループ | 
| メニュー名(REST) | groups | 
| 作成対象 | パラメータシート(ホスト/オペレーションあり) | 
| 表示順序 | 4 | 
| バンドル利用 | 「利用する」にチェックを入れる(有効) | 
| 最終更新日時 | (自動入力) | 
| 最終更新者 | (自動入力) | 
5.2.2. ユーザーのパラメータシート作成¶
| 項目 | 説明 | 
|---|---|
| user_name | ユーザー名 | 
| user_id | ユーザーID | 
| group_id | グループID | 
| comment | コメント | 
| home_dir | ホームディレクトリ | 
| login_shell | ログインシェル名 | 
| password | パスワード | 
| action | 構築時の設定 present: 作成/更新 absent: 削除 | 
| password_apply | 構築時のパスワード設定の有無 true: パスワードの設定を行う false: パスワードの設定を行わない | 
警告
Tip
 
 
| 設定項目 | 項目1設定値 | 項目2設定値 | 項目3設定値 | 項目4設定値 | 項目5設定値 | 
|---|---|---|---|---|---|
| 項目の名前 | ユーザー名 | ユーザーID | パスワード | パスワード設定 | グループ | 
| 項目の名前(Rest API用) | user_name | user_id | password | password_apply | group | 
| 入力方式 | 文字列(単一行) | 整数 | パスワード | プルダウン選択 | プルダウン選択 | 
| 最大バイト数 | 32 | (項目なし) | 32 | (項目なし) | (項目なし) | 
| 正規表現 | (項目なし) | (項目なし) | (項目なし) | (項目なし) | |
| 最小値 | (項目なし) | 1000 | (項目なし) | (項目なし) | (項目なし) | 
| 最大値 | (項目なし) | (項目なし) | (項目なし) | (項目なし) | |
| 選択項目 | (項目なし) | (項目なし) | (項目なし) | パラメータシート作成:選択2:True-False | 入力用:グループ:グループ名 | 
| 参照項目 | (項目なし) | (項目なし) | (項目なし) | ||
| 初期値 | (項目なし) | False | |||
| 必須 | ✓ | ✓ | ✓ | ✓ | ✓ | 
| 一意制約 | ✓ | ✓ | |||
| 説明 | |||||
| 備考 | 
 
| 設定項目 | 項目6設定値 | 項目7設定値 | 項目8設定値 | 項目9設定値 | 
|---|---|---|---|---|
| 項目の名前 | ホームディレクトリ | ログインシェル | コメント | 状態 | 
| 項目の名前(Rest API用) | home_dir | login_shell | comment | state | 
| 入力方式 | 文字列(単一行) | 文字列(単一行) | 文字列(単一行) | プルダウン選択 | 
| 最大バイト数 | 128 | 32 | 128 | (項目なし) | 
| 正規表現 | (項目なし) | |||
| 最小値 | (項目なし) | (項目なし) | (項目なし) | (項目なし) | 
| 最大値 | (項目なし) | (項目なし) | (項目なし) | (項目なし) | 
| 選択項目 | (項目なし) | (項目なし) | (項目なし) | 入力用:状態:present-absent | 
| 参照項目 | (項目なし) | (項目なし) | (項目なし) | |
| 初期値 | /bin/bash | |||
| 必須 | ✓ | ✓ | ✓ | ✓ | 
| 一意制約 | ||||
| 説明 | ||||
| 備考 | 
| 項目名 | 設定値 | 
|---|---|
| 項番 | (自動入力) | 
| メニュー名 | ユーザー | 
| メニュー名(REST) | users | 
| 作成対象 | パラメータシート(ホスト/オペレーションあり) | 
| 表示順序 | 3 | 
| バンドル利用 | 「利用する」にチェックを入れる(有効) | 
| 最終更新日時 | (自動入力) | 
| 最終更新者 | (自動入力) | 
5.3. 作業手順の登録¶
注釈
5.3.1. Movement 登録¶
 
| Movement名 | Ansible利用情報 | |
|---|---|---|
| ホスト指定形式 | ヘッダーセクション | |
| ユーザー管理 | IP | ※ヘッダーセクションを参照 | 
- hosts: all
  remote_user: "{{ __loginuser__ }}"
  gather_facts: no
  become: yes
5.3.2. Ansible Role 登録¶
5.3.3. Movement と Ansible Role の紐付け¶
 
| Movement名 | ロールパッケージ名:ロール名 | インクルード順序 | 
|---|---|---|
| ユーザー管理 | OS-RHEL8:OS-RHEL8/RH_group/OS_build | 1 | 
| ユーザー管理 | OS-RHEL8:OS-RHEL8/RH_user/OS_build | 2 | 
5.3.4. 変数ネスト管理¶
# VAR_RH_group に対して、変数のセットが繰り返し、かつ、セット数が不定
VAR_RH_group:
- action: present
  group_id: '1100'
  group_name: testgroup
- action: present
  group_id: '1101'
  group_name: testgroup2
- action: absent
  group_name: testgroup3
  ...
# VAR_RH_user に対して、変数のセットが繰り返し、かつ、セット数が不定
VAR_RH_user:
- action: present
  comment: create testuser
  group_id: '1100'
  home_dir: /home/testuser
  login_shell: /bin/bash
  password: p@ssw0rd123
  password_apply: true
  user_id: '1100'
  user_name: testuser
- action: present
  comment: update testuser2
  group_id: '1101'
  home_dir: /home/testuser2
  login_shell: /bin/bash
  password_apply: false
  user_id: '1102'
  user_name: testuser2
- action: absent
  user_name: testuser99
  ...
 
| Movement名 | 変数名 | メンバー変数名(繰返し有) | 最大繰返数 | 
|---|---|---|---|
| ユーザー管理 | VAR_RH_group | 0 | 5 | 
| ユーザー管理 | VAR_RH_user | 0 | 10 | 
5.3.5. 代入値自動登録設定¶
 
| パラメータシート(From) | 登録方式 | Movement名 | IaC変数(To) | ||
|---|---|---|---|---|---|
| メニューグループ:メニュー:項目 | 代入順序 | Movement名:変数名 | Movement名:変数名:メンバー変数 | ||
| 代入値自動登録用:グループ:グループ名 | 1 | Value型 | ユーザー管理 | ユーザー管理:VAR_RH_group | ユーザー管理:VAR_RH_group:[0].group_name | 
| 代入値自動登録用:グループ:グループID | 1 | Value型 | ユーザー管理 | ユーザー管理:VAR_RH_group | ユーザー管理:VAR_RH_group:[0].group_id | 
| 代入値自動登録用:グループ:状態 | 1 | Value型 | ユーザー管理 | ユーザー管理:VAR_RH_group | ユーザー管理:VAR_RH_group:[0].action | 
| 代入値自動登録用:グループ:グループ名 | 2 | Value型 | ユーザー管理 | ユーザー管理:VAR_RH_group | ユーザー管理:VAR_RH_group:[1].group_name | 
| 代入値自動登録用:グループ:グループID | 2 | Value型 | ユーザー管理 | ユーザー管理:VAR_RH_group | ユーザー管理:VAR_RH_group:[1].group_id | 
| 代入値自動登録用:グループ:状態 | 2 | Value型 | ユーザー管理 | ユーザー管理:VAR_RH_group | ユーザー管理:VAR_RH_group:[1].action | 
| ... | ... | ... | ... | ... | ... | 
| 代入値自動登録用:グループ:グループ名 | 5 | Value型 | ユーザー管理 | ユーザー管理:VAR_RH_group | ユーザー管理:VAR_RH_group:[4].group_name | 
| 代入値自動登録用:グループ:グループID | 5 | Value型 | ユーザー管理 | ユーザー管理:VAR_RH_group | ユーザー管理:VAR_RH_group:[4].group_id | 
| 代入値自動登録用:グループ:状態 | 5 | Value型 | ユーザー管理 | ユーザー管理:VAR_RH_group | ユーザー管理:VAR_RH_group:[4].action | 
 
| パラメータシート(From) | 登録方式 | Movement名 | IaC変数(To) | ||
|---|---|---|---|---|---|
| メニューグループ:メニュー:項目 | 代入順序 | Movement名:変数名 | Movement名:変数名:メンバー変数 | ||
| 代入値自動登録用:ユーザー:ユーザー名 | 1 | Value型 | ユーザー管理 | ユーザー管理:VAR_RH_user | ユーザー管理:VAR_RH_user:[0].user_name | 
| 代入値自動登録用:ユーザー:ユーザーID | 1 | Value型 | ユーザー管理 | ユーザー管理:VAR_RH_user | ユーザー管理:VAR_RH_user:[0].user_id | 
| 代入値自動登録用:ユーザー:パスワード | 1 | Value型 | ユーザー管理 | ユーザー管理:VAR_RH_user | ユーザー管理:VAR_RH_user:[0].password | 
| 代入値自動登録用:ユーザー:パスワード設定 | 1 | Value型 | ユーザー管理 | ユーザー管理:VAR_RH_user | ユーザー管理:VAR_RH_user:[0].password_apply | 
| 代入値自動登録用:ユーザー:グループ | 1 | Value型 | ユーザー管理 | ユーザー管理:VAR_RH_user | ユーザー管理:VAR_RH_user:[0].group_id | 
| 代入値自動登録用:ユーザー:ホームディレクトリ | 1 | Value型 | ユーザー管理 | ユーザー管理:VAR_RH_user | ユーザー管理:VAR_RH_user:[0].home_dir | 
| 代入値自動登録用:ユーザー:ログインシェル | 1 | Value型 | ユーザー管理 | ユーザー管理:VAR_RH_user | ユーザー管理:VAR_RH_user:[0].login_shell | 
| 代入値自動登録用:ユーザー:コメント | 1 | Value型 | ユーザー管理 | ユーザー管理:VAR_RH_user | ユーザー管理:VAR_RH_user:[0].comment | 
| 代入値自動登録用:ユーザー:状態 | 1 | Value型 | ユーザー管理 | ユーザー管理:VAR_RH_user | ユーザー管理:VAR_RH_user:[0].action | 
| 代入値自動登録用:ユーザー:ユーザー名 | 2 | Value型 | ユーザー管理 | ユーザー管理:VAR_RH_user | ユーザー管理:VAR_RH_user:[1].user_name | 
| 代入値自動登録用:ユーザー:ユーザーID | 2 | Value型 | ユーザー管理 | ユーザー管理:VAR_RH_user | ユーザー管理:VAR_RH_user:[1].user_id | 
| 代入値自動登録用:ユーザー:パスワード | 2 | Value型 | ユーザー管理 | ユーザー管理:VAR_RH_user | ユーザー管理:VAR_RH_user:[1].password | 
| 代入値自動登録用:ユーザー:パスワード設定 | 2 | Value型 | ユーザー管理 | ユーザー管理:VAR_RH_user | ユーザー管理:VAR_RH_user:[1].password_apply | 
| 代入値自動登録用:ユーザー:グループ | 2 | Value型 | ユーザー管理 | ユーザー管理:VAR_RH_user | ユーザー管理:VAR_RH_user:[1].group_id | 
| 代入値自動登録用:ユーザー:ホームディレクトリ | 2 | Value型 | ユーザー管理 | ユーザー管理:VAR_RH_user | ユーザー管理:VAR_RH_user:[1].home_dir | 
| 代入値自動登録用:ユーザー:ログインシェル | 2 | Value型 | ユーザー管理 | ユーザー管理:VAR_RH_user | ユーザー管理:VAR_RH_user:[1].login_shell | 
| 代入値自動登録用:ユーザー:コメント | 2 | Value型 | ユーザー管理 | ユーザー管理:VAR_RH_user | ユーザー管理:VAR_RH_user:[1].comment | 
| 代入値自動登録用:ユーザー:状態 | 2 | Value型 | ユーザー管理 | ユーザー管理:VAR_RH_user | ユーザー管理:VAR_RH_user:[1].action | 
| 代入値自動登録用:ユーザー:ユーザー名 | 3 | Value型 | ユーザー管理 | ユーザー管理:VAR_RH_user | ユーザー管理:VAR_RH_user:[2].user_name | 
| 代入値自動登録用:ユーザー:ユーザーID | 3 | Value型 | ユーザー管理 | ユーザー管理:VAR_RH_user | ユーザー管理:VAR_RH_user:[2].user_id | 
| 代入値自動登録用:ユーザー:パスワード | 3 | Value型 | ユーザー管理 | ユーザー管理:VAR_RH_user | ユーザー管理:VAR_RH_user:[2].password | 
| 代入値自動登録用:ユーザー:パスワード設定 | 3 | Value型 | ユーザー管理 | ユーザー管理:VAR_RH_user | ユーザー管理:VAR_RH_user:[2].password_apply | 
| 代入値自動登録用:ユーザー:グループ | 3 | Value型 | ユーザー管理 | ユーザー管理:VAR_RH_user | ユーザー管理:VAR_RH_user:[2].group_id | 
| 代入値自動登録用:ユーザー:ホームディレクトリ | 3 | Value型 | ユーザー管理 | ユーザー管理:VAR_RH_user | ユーザー管理:VAR_RH_user:[2].home_dir | 
| 代入値自動登録用:ユーザー:ログインシェル | 3 | Value型 | ユーザー管理 | ユーザー管理:VAR_RH_user | ユーザー管理:VAR_RH_user:[2].login_shell | 
| 代入値自動登録用:ユーザー:コメント | 3 | Value型 | ユーザー管理 | ユーザー管理:VAR_RH_user | ユーザー管理:VAR_RH_user:[2].comment | 
| 代入値自動登録用:ユーザー:状態 | 3 | Value型 | ユーザー管理 | ユーザー管理:VAR_RH_user | ユーザー管理:VAR_RH_user:[2].action | 
| 代入値自動登録用:ユーザー:ユーザー名 | 4 | Value型 | ユーザー管理 | ユーザー管理:VAR_RH_user | ユーザー管理:VAR_RH_user:[3].user_name | 
| 代入値自動登録用:ユーザー:ユーザーID | 4 | Value型 | ユーザー管理 | ユーザー管理:VAR_RH_user | ユーザー管理:VAR_RH_user:[3].user_id | 
| 代入値自動登録用:ユーザー:パスワード | 4 | Value型 | ユーザー管理 | ユーザー管理:VAR_RH_user | ユーザー管理:VAR_RH_user:[3].password | 
| 代入値自動登録用:ユーザー:パスワード設定 | 4 | Value型 | ユーザー管理 | ユーザー管理:VAR_RH_user | ユーザー管理:VAR_RH_user:[3].password_apply | 
| 代入値自動登録用:ユーザー:グループ | 4 | Value型 | ユーザー管理 | ユーザー管理:VAR_RH_user | ユーザー管理:VAR_RH_user:[3].group_id | 
| 代入値自動登録用:ユーザー:ホームディレクトリ | 4 | Value型 | ユーザー管理 | ユーザー管理:VAR_RH_user | ユーザー管理:VAR_RH_user:[3].home_dir | 
| 代入値自動登録用:ユーザー:ログインシェル | 4 | Value型 | ユーザー管理 | ユーザー管理:VAR_RH_user | ユーザー管理:VAR_RH_user:[3].login_shell | 
| 代入値自動登録用:ユーザー:コメント | 4 | Value型 | ユーザー管理 | ユーザー管理:VAR_RH_user | ユーザー管理:VAR_RH_user:[3].comment | 
| 代入値自動登録用:ユーザー:状態 | 4 | Value型 | ユーザー管理 | ユーザー管理:VAR_RH_user | ユーザー管理:VAR_RH_user:[3].action | 
| ... | ... | ... | ... | ... | ... | 
| 代入値自動登録用:ユーザー:ユーザー名 | 10 | Value型 | ユーザー管理 | ユーザー管理:VAR_RH_user | ユーザー管理:VAR_RH_user:[9].user_name | 
| 代入値自動登録用:ユーザー:ユーザーID | 10 | Value型 | ユーザー管理 | ユーザー管理:VAR_RH_user | ユーザー管理:VAR_RH_user:[9].user_id | 
| 代入値自動登録用:ユーザー:パスワード | 10 | Value型 | ユーザー管理 | ユーザー管理:VAR_RH_user | ユーザー管理:VAR_RH_user:[9].password | 
| 代入値自動登録用:ユーザー:パスワード設定 | 10 | Value型 | ユーザー管理 | ユーザー管理:VAR_RH_user | ユーザー管理:VAR_RH_user:[9].password_apply | 
| 代入値自動登録用:ユーザー:グループ | 10 | Value型 | ユーザー管理 | ユーザー管理:VAR_RH_user | ユーザー管理:VAR_RH_user:[9].group_id | 
| 代入値自動登録用:ユーザー:ホームディレクトリ | 10 | Value型 | ユーザー管理 | ユーザー管理:VAR_RH_user | ユーザー管理:VAR_RH_user:[9].home_dir | 
| 代入値自動登録用:ユーザー:ログインシェル | 10 | Value型 | ユーザー管理 | ユーザー管理:VAR_RH_user | ユーザー管理:VAR_RH_user:[9].login_shell | 
| 代入値自動登録用:ユーザー:コメント | 10 | Value型 | ユーザー管理 | ユーザー管理:VAR_RH_user | ユーザー管理:VAR_RH_user:[9].comment | 
| 代入値自動登録用:ユーザー:状態 | 10 | Value型 | ユーザー管理 | ユーザー管理:VAR_RH_user | ユーザー管理:VAR_RH_user:[9].action | 
5.4. 作業対象の登録¶
5.4.1. 機器登録¶
5.5. ユーザー追加作業の実施¶
5.6. 作業概要の作成¶
| 作業実施日時 | 2023/04/04 12:00:00 | 
| 作業対象 | web01(RHEL8) | 
| 作業内容 | Webサーバーへのユーザー追加作業 | 
5.6.1. 作業概要登録¶
 
| オペレーション名 | 実施予定日時 | 
|---|---|
| Webサーバーへのユーザー追加作業 | 2023/04/04 12:00:00 | 
5.6.2. パラメータ設定¶
 
| ホスト名 | オペレーション | 代入順序 | パラメータ | ||
|---|---|---|---|---|---|
| オペレーション名 | グループ名 | グループID | 状態 | ||
| web01 | 2023/04/04 12:00:00_Webサーバーへのユーザー追加作業 | 1 | www | 10001 | present | 
| web01 | 2023/04/04 12:00:00_Webサーバーへのユーザー追加作業 | 2 | app | 10002 | present | 
 
| ホスト名 | オペレーション | 代入順序 | パラメータ | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| オペレーション名 | ユーザー名 | ユーザーID | パスワード | パスワード設定 | グループ | ホームディレクトリ | ログインシェル | コメント | 状態 | ||
| web01 | 2023/04/04 12:00:00_Webサーバーへのユーザー追加作業 | 1 | wwwuser01 | 10001 | password01 | True | www | /home/wwwuser01 | /bin/bash | Web server maintainer | present | 
| web01 | 2023/04/04 12:00:00_Webサーバーへのユーザー追加作業 | 2 | wwwuser02 | 10002 | password02 | True | www | /home/wwwuser02 | /bin/bash | Web server maintainer | present | 
| web01 | 2023/04/04 12:00:00_Webサーバーへのユーザー追加作業 | 3 | appuser01 | 20001 | password01 | True | app | /home/appuser01 | /bin/bash | Application server maintainer | present | 
| web01 | 2023/04/04 12:00:00_Webサーバーへのユーザー追加作業 | 4 | appuser02 | 20002 | password02 | True | app | /home/appuser02 | /bin/bash | Application server maintainer | present | 
5.6.3. 作業実行¶
- 事前確認 現在のサーバーの状態を確認しましょう。グループ一覧を確認します。- # グループ一覧の取得 cat /etc/group|grep -E "app|www" - # 何も表示されないユーザー一覧を確認します。- # ユーザー一覧の取得 cat /etc/passwd|grep -E "app|www" - # 何も表示されない
- 作業実行 から、ユーザー管理 Movement を選択し、 作業実行 を押下します。次に、 で、オペレーションに Webサーバーへのユーザー追加作業 を選択し、作業実行 を押下します。画面が開き、実行が完了した後に、ステータスが「完了」になったことを確認します。
 
- 事後確認 再度サーバーに下記のグループとユーザーが設定されていることを確認しましょう。グループ一覧を確認します。- # グループ一覧の取得 cat /etc/group|grep -E "app|www" - www:x:10001: app:x:10002: ユーザー一覧を確認します。- # ユーザー一覧の取得 cat /etc/passwd|grep -E "app|www" - wwwuser01:x:10001:10001:Web server mainterner:/home/wwwuser01:/bin/bash wwwuser02:x:10002:10001:Web server mainterner:/home/wwwuser02:/bin/bash appuser01:x:20001:10002:Application server mainterner:/home/appuser01:/bin/bash appuser02:x:20002:10002:Application server mainterner:/home/appuser02:/bin/bash 
5.7. (参考) 既存のジョブフローへの追加¶
- ジョブフローの作成 
- オペレーション登録 
- ホスト名のパラメータ登録 (パラメータ変更なし) 
- パッケージのパラメータ登録 (パラメータ変更なし) 
- グループのパラメータ登録 
- ユーザーのパラメータ登録 
- ジョブフロー実行 
5.7.1. ジョブフローの編集と実行 (失敗例)¶
| OUT | IN | 
|---|---|
| Start | ホスト名設定 | 
| ホスト名設定 | パッケージ管理 | 
| パッケージ管理 | ユーザー管理 | 
| ユーザー管理 | End | 
 
5.7.2. ジョブフローの編集と実行 (成功例)¶
| Movement | オペレーション名 | 
|---|---|
| ホスト名設定 | RHEL8のホスト名変更作業 | 
| パッケージ管理 | RHEL8のパッケージ管理 | 
| ユーザー管理 | Webサーバーへのユーザー追加作業 | 
