Ansible:userモジュールについて(Ansible 2.9.6)

インフラサーバ

userモジュールについて

user モジュールを使用することで、管理対象機器について以下のような操作を実施できます。

  • ユーザの追加/削除
  • ユーザのパスワード設定
  • ユーザのホームディレクトリ設定
  • ユーザのグループ設定
  • ユーザのログインシェル設定

◆公式ドキュメント

user – Manage user accounts — Ansible Documentation

主なパラメータ

パラメータ必須選択肢/デフォルト説明
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 ユーザが削除されました。

―――――――――――――

タイトルとURLをコピーしました