chasinglogic.ansible_users
ansible-users
システムのユーザーを管理するためのロールです。
これは、メンテナンスされていないようなので、singleplatform-eng.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に設定します。authorized_keys_file
(デフォルト: .ssh/authorized_keys) - sshサーバーが非標準の認証キーのファイルを使用する場合に設定します。
ユーザーの作成
追加するユーザーのリストを含む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の場合、グループを追加するだけで、グループリストに設定はしません(オプション)。profile
- カスタムシェルプロフィールを設定するための文字列ブロック。ssh_key
- ユーザーのSSHキーのリスト(オプション)。各SSHキーは直接含め、新しい行を含まないようにしてください。generate_ssh_key
- ユーザーのためにSSHキーを生成するかどうか(オプション、デフォルトはいいえ)。
さらに、各ユーザーに次の項目はオプションです:
shell
- ユーザーのシェル。デフォルトは/bin/bashです。デフォルトをusers_default_shell変数を使用して設定することで、すべてのユーザーに同じシェルを与えることが可能ですが、/bin/bashとは異なります。
例:
---
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