晴耕雨読

working in the fields on fine days and reading books on rainy days

Ansibleのuserモジュールでユーザ作成する

AnsibleでLinuxユーザを作成するには、ansible.builtin.user モジュールを使用します。

ansible.builtin.user の使用例

以下はLinuxユーザ「example-user」を作成して、wheelグループに所属し、ログイン時のパスワードを「P@ssw0rd」に設定する処理を定義したものです。 ユーザの作成には root 権限が必要なので、become: true を指定します。

---
- hosts: servers
  tasks:
  - name: Add user 'example-user'
    ansible.builtin.user:
      name: example-user
      groups: wheel
      password: "{{ 'P@ssw0rd' | password_hash('sha512') }}"
    become: true

実行結果:

$ ansible-playbook -i inventory.ini sample-playbook.yml
PLAY [servers] *****************************************************************
TASK [Gathering Facts] *********************************************************
ok: [aws-rhel]
TASK [Add user 'example-user'] *************************************************
changed: [aws-rhel]
PLAY RECAP *********************************************************************
aws-rhel                   : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0  

確認コマンド:

[ec2-user@ip-172-XX-XX-XX ~]$ cat /etc/passwd | grep example-user
example-user:x:1001:1001::/home/example-user:/bin/bash
[ec2-user@ip-172-XX-XX-XX ~]$ cat /etc/group | grep wheel
wheel:x:10:example-user
[ec2-user@ip-172-XX-XX-XX ~]$ su - example-user
パスワード: P@ssw0rd
[example-user@ip-172-XX-XX-XX ~]$

ansible.builtin.user モジュールでは、他にも shell (ログイン時のシェル)、seuser (SELinuxのユーザタイプ)、generate_ssh_key (SSH鍵の生成) などのオプションを設定できます。 詳細は公式ドキュメントを参照ください。

参考文献