【モジュールの使い方】user
機能
userモジュールを使用することで、hostsで指定したサーバで以下の操作が実施できる
- ユーザの追加/削除
- ユーザのパスワード設定
- ユーザのホームディレクトリ設定
- ユーザのグループ設定
- ユーザのログインシェル設定
使用例
- 使用例 ユーザの新規作成
- hosts: all become: yes tasks: - name: Add user user : name: hoge state: present password: "{{ 'hogepasswd' | password_hash('sha521')}}" createhome: yes
passwordではハッシュ化後のパスワードを指定する必要があり、以下のように設定すると
passwordをハッシュ化した値を入力値とする事が出来る。
password: "{{ 'hogepasswd' | password_hash('sha521')}}"
- 使用例 サブグループ設定
- hosts: all become: yes tasks: - name: Add user user : name: hoge groups: wheel, testuser
groupsの値として追加したいサブグループだけを記載すると
記載したサブグループだけに所属する状態になるので注意してください。
- 使用例 ユーザの削除
- hosts: all become: yes tasks: - name: Delete user user : name: hoge groups: absent
主なパラメータ
パラメータ | 必須 | デフォルト値 | 選択肢 | 説明 |
---|---|---|---|---|
state | present | absent present |
absent→ユーザが存在しない状態 ユーザが存在する状態 |
|
password | ハッシュ化後のパスワードを指定 | |||
createhome | yes | yes no |
ホームディレクトリが存在しない場合に作成する | |
home | ホームディレクトリを設定する場合に指定 | |||
groups | 所属するサブグループを「,」区切りをすべて指定 | |||
shell | ユーザのシェルを指定 |
全パラメータ
パラメータ | 必須 | デフォルト値 | 選択肢 | 説明 |
---|---|---|---|---|
append | no | yes no |
yes:指定されたグループを追加 no:指定されたグループのみ追加され、他のすべてのグループから削除 |
|
authorizaition | ユーザの認証を設定します カンマ区切りで複数の認証を設定可能 現在、Illumos/Solarisでサポートされてます。 他のプラットフォームで使用しても何も起こりません |
|||
cooment | ユーザアカウントにコメントを設定 | |||
create_home | yes | yes no |
ユーザアカウントが作成されたかホームディレクトリが存在しない時にホームディレクトリを作成 | |
expires | エポックでのユーザーの有効期限 これをサポートしていないプラットフォームでは無視されます 現在、GNU/Linux、FreeBSD、およびDragonFlyBSDでサポートされています Ansible 2.6以降では、負の値を指定することで有効期限を削除できます。現在、GNU/LinuxおよびFreeBSDでサポートされています。 |
|||
force | no | yes no |
『state=absent』と一緒に設定した場合、『userdel --force』と同じ動作をする。 | |
generate_ssh_key | no | yes no |
SSH鍵を生成する。既存のSSH鍵は上書きされない。 | |
group | メイングループの名前を指定 | |||
groups | サブグループをカンマ区切りで指定する。『groups=』(空文字列)を指定するとサブグループを削除する。 | |||
hidden | yes | yse no |
macOSのみ、オプションでログインウィンドウとシステム環境設定からユーザーを非表示にします。 システムオプションが使用されている場合、デフォルトはyesになります。 |
|
home | ユーザアカウントのホームディレクトリを指定 | |||
local | no | yes no |
ローカルユーザを造作する場合(つまり、useraddではなくluseraddを使用する場合)に集中認証を使用する環境で役に立ちます。 これにより、コマンドを呼び出す前に、既存おアカウントの/etc/passwdがチェックされます。 ローカルアカウントデータが/etc/passwdがチェックされます。, ローカルアカウントデータが/etc/passwd以外の場所に存在する場合、この設定は機能しません。 これには、上記のコマンドとetc/passwdがターゲットホストに存在する必要があり、存在しない場合は、致命的なエラーになります。 |
|
login_class | FreeBSD, OpenBSD, NetBSDのログインクラスを設定 | |||
move_home | no | yes no |
『yes』を指定すると、『home=』で指定されたディレクトリがまだ存在しなくてもホームディレクトリを移動 | |
name | 作成・変更・削除するユーザアカウントを指定 | |||
non_unique | no | yes no |
オプションで、-uオプションとともに使用すると、このオプションを使用して、ユーザーIDを一意でない値に変更できます。 | |
password | パスワードを設定 | |||
password_expire_max | パスワード変更間の最大日数 Linuxでのみサポート |
|||
password_expire_min | パスワード変更間の最小日数 Linuxでのみサポート |
|||
password_expire_lock | yes no |
パスワードをロックします(usermod -L,usermod -U,pw lock) 実装はプラットフォームによって異なります。このオプションは、ユーザーが他の方法を使用してログインできないことを常に意味するわけではありません。 このオプションはユーザーを無効にするのではなく、パスワードをロックするだけです。 False現在ロックされているパスワードのロックを解除するには、これをに設定する必要があります。このパラメーターがなくても、パスワードのロックは解除されません。 現在、Linux、FreeBSD、DragonFlyBSD、NetBSD、OpenBSDでサポートされています。 |
||
profile | ユーザのプロフィールを設定 他のプラットフォームで使用しても何も起こりません カンマ区切りを使用して複数の役割を設定可能 全ての役割を削除するにはprofile=""を使用 現在、Illumos/Solarisでサポートされています。 |
|||
rmove | no | yes no |
『state=absent』と一緒に設定した場合 『userdel --remove』と同じ動作をする。 |
|
role | ユーザの役割を設定 他のプラットフォームで使用しても何も起こりません カンマ区切りを使用して複数の役割を設定可能 全ての役割を削除するにはrole=""を使用 現在、Illumos/Solarisでサポートされています。 |
|||
seuser | selinux対応システムでseuserタイプ(user_u)を設定します | |||
shell | ユーザシェルを設定 | |||
skelton | オプションで、ホームスケルトンディレクトリを設定 create_homeオプション必須 |
|||
ssh_key_bits | ssh-keygenによって設定されたデフォルト | 作成するSSHキーのビット数を指定 | ||
ssh_key_comment | SSHキーのコメントを定義 | |||
sshe_key_file | SSH鍵のファイル名の指定 | |||
ssh_key_passphase | SSH鍵のパスワードを設定する。 パスワードが設定されない場合、SSH鍵はパスワードを持たない。 |
|||
ssh_key_type | rsa | SSH鍵のタイプを指定する。 利用可能なSSH鍵のタイプは、ホスト上での実装に依存する。 |
||
state | present | present absent |
present:存在する(無ければ作成) absent:存在しない(あったら削除) |
|
system | no | yes no |
『yes』を指定するとユーザアカウントはシステムアカウントになる。 |
|
uid | LinuxのユーザIDを指定 | |||
umask | ユーザーのumaskを設定 他のプラットフォームで使用しても何も起こりません 現在Linuxでサポート ローカルが省略されているか、Falseが必要 |
|||
update_password | always | always on_create |
always:必ずパスワードを更新する。 on_create:新しく作成された時にパスワードを設定する。 |
戻り値
Key | Type | Returned | 説明 |
---|---|---|---|
append | boolean | state=presentの設定でユーザ存在する場合 | ユーザをグループに追加したかどうか Sample: true |
comment | string | ユーザが存在す場合 | passwdファイルのコメント部分。通常はユーザ名が返却 Sample: Agent Smith |
create_home | boolean | ユーザが存在せず、チェックモードでない場合 | ホームディレクトリを作成するかどうか Sample: True |
force | boolean | state=absentの設定でユーザ存在する場合 | ユーザをグループに追加したかどうか |ユーザアカウントが強制的に削除されたかどうか |
group | integer | ユーザが存在する場合 | プライマリユーザグループID Sample: 1001 |
groups | integer | state=presentの設定でグループが存在する場合 Sample: chrony,apache |
ユーザが所属しているグループの一覧 |
home | string | state=presentの設定 | ユーザのホームディレクトリパス Sample: /home/asmith |
move_home | boolean | state=presentの設定でユーザ存在する場合 | 既存のホームディレクトリを移動するかどうか |
name | steing | always | ユーザアカウント名 Sample: asmith |
pasword | string | state=presentの設定でパスワードがから出ない場合 | パスワードのマスクされた値 Samole: NOT_LOGGING_PASSWORD |
password_expire_max | integer | ユーザが存在する場合 | パスワードの有効期限の最大日数 Sample: 20 |
password_expire_min | integer | ユーザが存在する場合 | パスワード変更の最小日数 Sample: 20 |
remove | boolean | state=absentの設定でユーザ存在する場合 | ユーザーアカウントを削除するかどうか Sample: True |
shell | string | state=presentの設定 | ユーザのログインシェル Sample: /bin/bash |
ssh_fingerprint | string | generate_ssh_keyがtrueの場合 | 生成されたSSHキーのフィンガープリント Sample: 2048 SHA256:aYNHYHYcyVm87Igh0IMEDMbvvW0QDlRQfE0aJugp684ko8 ansible-generated on host (RSA) |
ssh_key_file | string | generate_ssh_keyがtrueの場合 | 生成されたSSH秘密鍵ファイルのパス Sample: /home/asmith/.ssh/id_rsa |
ssh_public_key | string | generate_ssh_keyがtrueの場合 | 生成されたSSH公開鍵ファイル Sample: 'SSH-RSA AAAAB3NzaC1yc2EAAAADAQABAAABAQC95opt4SPEC06tOYsJQJIuN23BbLMGmYo8ysVZQc4h2DZE9ugbjWWGS1 / pweUGjVstgzMkBEeBCByaEf / RJKNecKRPeGd2Bw9DCj / bn5Z6rGfNENKBmo 618mUJBvdlEgea96QGjOwSB7 / gmonduC7gsWDMNcOdSE3wJMTim4lddiBx4RgC9yXsJ6Tkz9BHD73MXPpT5ETnse + A3fw3IGVSjaueVnlUyUmOBf7fzmZbhlFVXf2Zi2rFTXqvbdGHKkzpw1U8eB8xFPP7y d5u1u0e6Acju / 8aZ / l17IDFiLke5IzlqIMRTEbDwLNeO84YQKWTm9fODHzhYe0yvxqLiK07 ansible、生成されたホスト上で' |
stderr | string | 実行したコマンドで標準エラーが返ってきた場合 | 実行中のコマンドの標準エラー Sample: Group wheels does not exist |
stdout | string | 実行したコマンドで標準出力が返ってくる場合 | 実行中のコマンドの標準出力 |
system | boolean | システムがモジュールに渡され、アカウントが存在しない場合 | そのアカウントがシステムアカウントであるかどうか Sample: True |
uid | integer | uidがモジュールに渡されたとき | ユーザーアカウントのユーザーID Sample: 1044 |
ドキュメント
【Ansible Documentation】Module user