monolithprojects.user_management
ユーザー管理
このAnsibleロールは、Linuxユーザーの管理(作成、編集、削除)を行います。 管理には、SSHキーの配布も含まれます。
動作の仕組み
このロールは、各ホストのローカルファクトを使用して、user_management
にリストされたユーザー名を保存します。このロールによって管理されるのは、これらのユーザーのみです。user_management
リストからユーザーを削除すると、そのユーザーとホームディレクトリはホストから削除されます。user_management
リストに記載されていないユーザー(このAnsibleロールによって作成されていないユーザー)は変更されません。
このロールでできること
- ユーザーの作成
- ユーザーの削除
- ユーザーの編集
- SSHキーの管理
要件
対応しているLinuxディストリビューション:
- CentOS/RHEL 7,8
- Debian 9,10
- Fedora 29,30,31,32
- Ubuntu 16,18,20
注意: これらは定期的にテストされているLinuxディストリビューションです。このロールは、他のLinuxディストリビューションでも問題なく動作する可能性があります。
ロール変数
これはdefaults/main.yml
からのコピーです。
local_facts_file: linux_users.fact
local_facts_path: /etc/ansible/facts.d
user_management:
# - name: userx <<< ユーザー名(必須)。
# comment: ユーザー X <<< (オプション)ユーザーの説明。
# groups: <<< (オプション)ユーザーが追加されるグループのリスト。
# - games
# - video
# ssh_keys: <<< (オプション)認証された公開鍵のリスト。
# - 'ssh-ed25519 xxxx something'
# shell: /bin/bash <<< (オプション)ユーザーシェル(デフォルトは"/bin/bash")。
# expires: -1 <<< (オプション)ユーザーの有効期限(エポック形式、デフォルトは"-1")。
# create_home: yes <<< (オプション)ホームディレクトリを作成(デフォルトは"yes")。
# system: no <<< (オプション)システムアカウントを作成(デフォルトは"no")。
プレイブックの例:
この例では、Ansibleが3人のユーザーを作成(または最初の実行でない場合は編集)します。user1
はコメントを持ち、デフォルトシェルはzsh
で、Unixエポック時間1640991600
でユーザーの有効期限が切れ、ユーザーグループsudo
とdocker
に追加され、最後に2つのSSH公開鍵が追加されます。user2
はデフォルトで作成され、appuser
はシステムユーザーとして作成されます。
---
- name: ユーザー管理
hosts: all
user: ubuntu
gather_facts: yes
become: yes
vars:
user_management:
- name: user1
comment: 私のテストユーザー
shell: /bin/zsh
expires: 1640991600
groups:
- sudo
- docker
ssh_keys:
- 'ssh-ed25519 xxxxxx my_user_key'
- 'ssh-rsa xxxxxx my_user_key'
- name: user2
- name: appuser
system: yes
create_home: no
roles:
- ansible-user_management
ライセンス
MIT
作成者情報
2020年にミハル・ムランスキーによって作成されました。