userモジュールについて
user モジュールを使用することで、管理対象機器について以下のような操作を実施できます。
- ユーザの追加/削除
- ユーザのパスワード設定
- ユーザのホームディレクトリ設定
- ユーザのグループ設定
- ユーザのログインシェル設定
主なパラメータ
パラメータ | 必須 | 選択肢/デフォルト | 説明 |
name | ● | 操作対象ユーザ名を指定 | |
state | ・absent ・present ← | ・absent ⇒ ユーザが存在しない状態 ・present ⇒ ユーザが存在する状態 | |
password | ハッシュ化後のパスワードを指定 | ||
createhome | ・no ・yes ← | ホームディレクトリが存在しない場合に作成する | |
home | ホームディレクトリを設定する場合に指定 | ||
groups | 所属するサブグループを「,」区切りですべて指定 | ||
shell | ユーザのシェルを指定 |
使用例
作業環境
- CentOS 8.0
- Python 3.7.7
- Ansible 2.9.6
ユーザの新規作成
■ Playbook の例
- hosts: all
become: yes
tasks:
- name: Add user
user:
name: hoge
state: present
password: "{{ 'hogepasswd' | password_hash('sha512') }}"
createhome: yes
password ではハッシュ化後のパスワードを指定する必要がありますが、以下のように記載することで ‘パスワード’ をハッシュ化した値を入力値とすることができます。
password: "{{ 'パスワード' | password_hash('sha512') }}"
■ Ansible 実行後の /etc/passwd
# cat /etc/passwd
(略)
hoge:x:1001:1001::/home/hoge:/bin/bash
ユーザのサブグループ設定
■ Playbook の例
- hosts: all
become: yes
tasks:
- name: Edit user groups
user:
name: hoge
groups: wheel, testuser
※groups の値として追加したいサブグループだけを記載すると、記載したサブグループだけに所属する状態になるので注意してください
■ Ansible 実行後の hoge ユーザの情報
# id hoge
uid=1001(hoge) gid=1001(hoge) groups=1001(hoge),10(wheel),1000(testuser)
ユーザの削除
■ Playbook の例
- hosts: all
become: yes
tasks:
- name: Delete user
user:
name: hoge
state: absent
■ Ansible 実行後の /etc/passwd
# cat /etc/passwd
(略)
hoge ユーザが削除されました。
―――――――――――――