Ansible ～userモジュール～

Ansible Documentationのuserモジュールの内容のメモです。

# Ansible Documentation

## 概要
- ユーザーアカウントとユーザー属性を管理する。

## オプション
|頻度|パラメータ         |必須|デフォルト値      |選択肢              |説明                                                                                                           |
|:--:|:------------------|:--:|:----------------:|:------------------:|:--------------------------------------------------------------------------------------------------------------|
|    |append             |no  |no                |yes<br>no           |サブグループに追加する。                                                                                       |
|    |comment            |no  |-                 |-                   |ユーザアカウントにコメントを設定する。                                                                         |
|    |createhome         |no  |yes               |yes<br>no           |ユーザアカウントが作成されたかホームディレクトリが存在しない時にホームディレクトリを作成する。                 |
|    |force              |no  |no                |yes<br>no           |『state=absent』と一緒に設定した場合、『userdel --force』と同じ動作をする。                                    |
|    |generate_ssh_key   |no  |no                |yes<br>no           |SSH鍵を生成する。既存のSSH鍵は上書きされない。                                                                 |
|※  |group              |no  |-                 |-                   |メイングループの名前を指定する。                                                                               |
|    |groups             |no  |-                 |-                   |サブグループをカンマ区切りで指定する。『groups=』(空文字列)を指定するとサブグループを削除する。                |
|    |home               |no  |-                 |-                   |ユーザアカウントのホームディレクトリを指定する。                                                               |
|    |login_class        |no  |-                 |-                   |FreeBSD, OpenBSD, NetBSDのログインクラスを設定する。                                                           |
|    |move_home          |no  |no                |yes<br>no           |『yes』を指定すると、『home=』で指定されたディレクトリがまだ存在しなくてもホームディレクトリを移動する。       |
|※  |name               |yes |-                 |-                   |作成・変更・削除するユーザアカウントの名前。                                                                   |
|    |non_unique         |no  |-                 |yes<br>no           |『-u』オプションと一緒に使用する時、一意ではないユーザIDに変更する。                                           |
|※  |password           |no  |-                 |-                   |パスワードを設定する。                                                                                         |
|    |remove             |no  |no                |yes<br>no           |『state=absent』と一緒に設定した場合、『userdel --remove』と同じ動作をする。                                   |
|    |shell              |no  |-                 |-                   |ユーザシェルを設定する。                                                                                       |
|    |ssh_key_bits       |no  |2048              |-                   |SSH鍵のbit数を指定する。                                                                                       |
|    |ssh_key_comment    |no  |ansible-generated |-                   |SSH鍵のコメントを設定する。                                                                                    |
|    |ssh_key_file       |no  |$HOME/.ssh/id_rsa |-                   |SSH鍵のファイル名の指定する。                                                                                  |
|    |ssh_key_passphrase |no  |-                 |-                   |SSH鍵のパスワードを設定する。パスワードが設定されない場合、SSH鍵はパスワードを持たない。                       |
|    |ssh_key_type       |no  |rsa               |-                   |SSH鍵のタイプを指定する。利用可能なSSH鍵のタイプは、ホスト上での実装に依存する。                               |
|※  |state              |no  |present           |present<br>absent   |present:ユーザアカウントを作成する。<br>absent:ユーザアカウントを削除する。                                    |
|    |system             |no  |no                |yes<br>no           |『yes』を指定するとユーザアカウントはシステムアカウントになる。この設定は既存ユーザアカウントの変更はできない。|
|    |uid                |no  |-                 |-                   |ユーザアカウントのUIDを設定する。                                                                              |
|    |update_password    |no  |always            |always<br>on_create |always:必ずパスワードを更新する。<br>on_create:新しく作成された時にパスワードを設定する。                      |

## 例
```yaml:example.yml
# Add the user 'johnd' with a specific uid and a primary group of 'admin'
- user: name=johnd comment="John Doe" uid=1040 group=admin

# Add the user 'james' with a bash shell, appending the group 'admins' and 'developers' to the user's groups
- user: name=james shell=/bin/bash groups=admins,developers append=yes

# Remove the user 'johnd'
- user: name=johnd state=absent remove=yes

# Create a 2048-bit SSH key for user jsmith
- user: name=jsmith generate_ssh_key=yes ssh_key_bits=2048
```


# 参考
- Ansible Documentation  
http://docs.ansible.com/user_module.html