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サーバーへのユーザー追加作業 |