taktus.users
Ansibleロール: ユーザー
システム上のユーザーを管理するためのロールです。
ロール設定
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
変数を追加します。これを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
- はいの場合はグループを追加するのみで、リストのグループに設定しません(オプション)。profile
- カスタムシェルプロファイルを設定するための文字列ブロックです。ssh_key
- ユーザーのSSHキーのリストです(オプション)。各SSHキーは直接含む必要があり、改行を含めてはいけません。generate_ssh_key
- ユーザー用のSSHキーを生成するかどうか(オプション、デフォルトはいいえ)。
さらに、各ユーザーに対して次の項目はオプションです:
shell
- ユーザーのシェルです。デフォルトは/bin/bashです。すべてのユーザーに同じシェルを提供したい場合は、users_default_shell
変数を使用して設定できますが、/bin/bashとは異なります。is_system_user
- システムユーザーを作成するにはTrue
に設定します。
例:
---
users:
- username: foo
name: Foo Bar
groups: ['admin','systemd-journal']
uid: 1005
home: /local/home/foo
profile: |
alias ll='ls -ahl'
ssh_key:
- "ssh-rsa AAAAA.... foo@server"
- "ssh-rsa AAAAB.... foo2@server"
groups_to_create:
- name: developers
gid: 20000
パスワードハッシュの生成:
# Debian/Ubuntu(パッケージ "whois" 経由)
mkpasswd --method=SHA-512 --rounds=4096
# OpenSSL(注意: これはmd5cryptだけを作成します。プレーンテキストよりは良いですが、完全に安全とは見なされません)
openssl passwd -1
# Python(パスワードとソルトの値を変更)
python -c "import crypt, getpass, pwd; print crypt.crypt('password', '\$6\$SALT\$')"
# Perl(パスワードとソルトの値を変更)
perl -e 'print crypt("password","\$6\$SALT\$") . "\n"'
ユーザーの削除
users_deleted
変数は、システムになくすべきユーザーのリストを含み、次回のAnsible実行時に削除されます。フォーマットはユーザーを追加する際と同じですが、必要なフィールドはusername
のみです。ただし、数値ユーザーIDが誤って再利用されないように、uid
フィールドも保持することをお勧めします。
オプションで、remove
パラメーターを使ってユーザーのホームディレクトリとメールスプールを削除し、force
パラメーターを使ってファイルの強制削除を選択できます。
users_deleted:
- username: bar
uid: 1003
remove: yes
force: yes
依存関係
なし。
ライセンス
MIT
インストール
ansible-galaxy install taktus.users
ライセンス
mit
ダウンロード
76
所有者