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

プロジェクトについて

User management role

インストール
ansible-galaxy install taktus.users
ライセンス
mit
ダウンロード
76
所有者