pcanham.users
ansible-users
システム上のユーザーを管理するためのロールです。
ロール設定
- users_create_per_user_group(デフォルト: true) - ユーザーを作成する際に、同じユーザー名のグループも作成し、そのグループをユーザーの主グループにします。
- users_group(デフォルト: users) - users_create_per_user_groupが設定されていない場合、これがすべての作成されるユーザーの主グループになります。
- users_default_shell(デフォルト: /bin/bash) - ユーザーのために指定されていない場合のデフォルトのシェルです。
- users_create_homedirs(デフォルト: true) - 新しいユーザーのためにホームディレクトリを作成します。別々にホームディレクトリを管理する場合はfalseに設定します。
- users_ssh_key_exclusive(デフォルト: false) - authorized_keysファイルから指定されていないすべての他のキーを削除するかどうか。
- authorized_keys_file(デフォルト: .ssh/authorized_keys) - sshサーバーが標準以外のauthorized_keysファイルを使用するように設定されている場合に設定します。
ユーザーの作成
追加するユーザーのリストを含むusers変数を追加します。これをgroup_vars/all
または特定のマシンにユーザーを配置したい場合はgroup_vars/groupname
に置くのが良いでしょう。
各ユーザーに必要な属性は次の通りです:
- username - ユーザーのユーザー名。
- name - ユーザーのフルネーム(gecosフィールド)。
- home - 作成するユーザーのホームディレクトリ(オプション、デフォルトは/home/username)。
- uid - ユーザーの数値ユーザーID(オプション)。システム間でUIDの一貫性が必要です。
- gid - グループの数値グループID(オプション)。指定しない場合は、uidが使用されます。
- password - ハッシュが提供されている場合はそれが使われ、提供されていない場合はアカウントがロックされます。
- update_password - これは「always」または「on_create」のどちらかになります。
- 「always」は、異なる場合にパスワードを更新します(デフォルト)。
- 「on_create」は、新しく作成されたユーザーに対してのみパスワードを設定します。
- group - オプションの主グループオーバーライド。
- groups - ユーザーのための補助グループのリスト。
- append - yesの場合、グループを追加するだけで、groupsのリストだけには設定しない(オプション)。
- profile - カスタムシェルプロファイルを設定するための文字列ブロック。
- ssh_key - ユーザーのSSHキーのリスト(オプション)。各SSHキーは直接含め、改行を含まないようにします。
- generate_ssh_key - ユーザーのSSHキーを生成するかどうか(オプション、デフォルトは「いいえ」)。
さらに、各ユーザーに対して以下の項目はオプションです:
- shell - ユーザーのシェル。デフォルトは/bin/bashです。同じシェルをすべてのユーザーに持たせたい場合は、users_default_shell変数で設定できますが、/bin/bashとは異なります。
- ssh_key_exclusive - authorized_keysファイルから指定されていない他のすべてのキーを削除するかどうか(デフォルトはusers_ssh_key_exclusive)。
例:
---
users:
- username: foo
name: Foo Barrington
groups: ['wheel','systemd-journal']
uid: 1001
home: /local/home/foo
profile: |
alias ll='ls -lah'
ssh_key:
- "ssh-rsa AAAAA.... foo@machine"
- "ssh-rsa AAAAB.... foo2@machine"
groups_to_create:
- name: developers
gid: 10000
users_deleted:
- username: bar
name: Bar User
uid: 1002
ユーザーの削除
users_deleted
変数には、システムに存在しないべきユーザーのリストが含まれ、次回のansible実行時に削除されます。フォーマットは追加するユーザーと同じですが、唯一必要なフィールドはusername
です。ただし、数値ユーザーIDが誤って再利用されないように、uid
フィールドも保持することをお勧めします。
ユーザーのホームディレクトリとメールスプールをremove
パラメータで削除することを選択でき、ファイルの強制削除はforce
パラメータで行えます。
users_deleted:
- username: bar
uid: 1002
remove: yes
force: yes