rembik.users

Ansibleロール: ユーザー

このロールは、システム上のユーザーとそのグループを管理します。

要件

  • パッケージが含まれるリポジトリへのアクセス(おそらくインターネット上にあります)。
  • 最新のAnsibleバージョン(最近の2つの安定版メジャーバージョンでテスト済み)。

以下のロールをインストールすることで、すべての要件が満たされることを確認できます。コマンドは ansible-galaxy install -r requirements.yml です:

---
- rembik.bootstrap

ロール変数

これらのデフォルト値は defaults/main.yml に設定されています:

---
# ユーザー用のデフォルトファイル

# 各ユーザーにグループを作成するかどうかのデフォルト値
# それをプライマリグループとする
users_group_per_user: yes
# グループが作成されない場合、すべてのユーザーが属する
# デフォルトのプライマリグループ
users_group: users
# アカウント作成時またはホームディレクトリが存在しない場合に
# ユーザー用のホームディレクトリを作成するかどうかのデフォルト値
users_create_home: yes
# sudoがyesに設定されている場合、指定がないときのデフォルトのsudoオプション
users_sudo_options: "ALL=(ALL) NOPASSWD: ALL"
# 指定がないときにユーザーのデフォルトシェル
users_shell: /bin/bash
# 生成されたSSHキーを探す/保存するローカルディレクトリ
users_ssh_key_dir: ssh_keys

# 作成、削除、または変更するユーザーのリスト
users: []

# 作成または削除するユーザーグループのリスト
users_groups: []

これらの変数の値を置き換える良い場所は、group_vars/all または group_vars/group_name です。 特定のマシンにのみ定義されたユーザーとグループが存在するようにできます。

users 変数には、作成、削除、または変更するユーザーのリストが含まれています。 このリスト内の各ユーザーは辞書として定義されています。 各ユーザー辞書には以下のパラメーターが利用可能です:

ユーザーパラメーター 選択肢 / デフォルト コメント
name 必須 作成、削除、または変更するユーザーの名前。
state 選択肢:
  • present
  • absent
アカウントが存在すべきかどうか。状態が異なる場合はアクションを取ります。
comment ユーザーアカウントの説明(GECOS)を設定します(オプション)。
uid ユーザーのUIDを設定します(オプション)。
group デフォルト: user.name ユーザーのプライマリグループをオーバーライドします(オプション)。
gid users_group_per_user=yes の場合のみ影響。ユーザーのプライマリグループの異なるGIDを設定します(オプション)。
groups ユーザーが追加されるグループのリスト。空文字列に設定すると、このユーザーはプライマリグループを除くすべてのグループから削除されます。
append 選択肢:
  • no
  • yes
yesの場合、groupsに指定されたグループにユーザーが追加されます。noの場合、groupsに指定されたグループのみにユーザーが追加され、他のグループからは削除されます。
password デフォルト: ! ユーザーのパスワードをこの暗号化された値に設定(オプション)。そうでない場合、ユーザーアカウントはロックされます。
update_password 選択肢:
  • always
  • on_create
alwaysは、異なる場合にパスワードを更新します。on_createは、新たに作成されたユーザーのみパスワードを設定します。
create_home 選択肢:
  • yes
  • no
users_create_homeからの値をオーバーライドする場合があります(オプション)。noに設定しない限り、アカウント作成時またはホームディレクトリが存在しない場合にホームディレクトリが作成されます。
home デフォルト: /home/user.name ユーザーのホームディレクトリを設定します(オプション)。
shell デフォルト: /bin/bash ユーザーのシェルをオーバーライドします(オプション)。
profile ユーザーのプロファイルにカスタムブロックを設定します(オプション)。user.create_home=yesが必要です!
cron 選択肢:
  • no
  • yes
yesの場合、ユーザーがcrontabファイルを作成、編集、表示、または削除を許可します。そうでない場合、crontabファイルの変更は許可されません。
sudo 選択肢:
  • no
  • yes
yesの場合、ユーザーのsudoオプションを設定します。そうでない場合、ユーザーのsudoオプションは削除されます。
sudo_options デフォルト: ALL=(ALL) NOPASSWD: ALL ユーザーのsudoオプションをオーバーライドします(オプション)。
ssh_key ユーザーの認可されたSSHキーのリスト(公開SSHキーを直接含み、改行なし)。空リストまたは空文字列に設定すると、すべてのユーザーの認可されたSSHキーが削除されます。user.create_home=yesが必要です!
generate_ssh_key 選択肢:
  • no
  • yes
noに設定されない限り、ローカルディレクトリ users_ssh_key_dir にSSHキーが存在しない場合、ユーザーのSSHキー対を生成します。その後、認可されたSSHキーに追加し、ユーザーにSSHキー対を展開します。user.create_home=yesが必要です!
remove 選択肢:
  • no
  • yes
user.state=absentのみに影響し、ユーザーに関連するディレクトリを削除しようとします。動作は userdel --remove と同じです。詳細についてはmanページを確認してください。
force 選択肢:
  • no
  • yes
user.state=absent にのみ影響し、サポートされているプラットフォームのユーザーと関連するディレクトリの削除を強制します。動作は userdel --force と同じです。詳細についてはmanページを確認してください。

users_groups 変数には、作成または削除するユーザーグループのリストが含まれています。各グループは辞書として定義されています。 各グループ辞書には以下のパラメーターが利用可能です:

グループパラメーター 選択肢 / デフォルト コメント
name 必須 管理するグループの名前。
state 選択肢:
  • present
  • absent
リモートホストにグループが存在すべきかどうか。
gid グループに設定するオプショナルなGID。

依存関係

一般的に、このロールには依存関係はありません。推奨されるロール rembik.bootstrap と組み合わせると、このロールは必要に応じて定義された bootstrap_user を使用してリモートホストに接続し、このロールタスクを実行します。

例プレイブック

この例は molecule/playbook.yml からのものです:

---
- name: コンバージョン
  hosts: all
  gather_facts: no
  become: yes

  roles:
    - role: rembik.bootstrap
    - role: rembik.users
      vars:
        users_ssh_key_dir: "{{ lookup('env', 'MOLECULE_EPHEMERAL_DIRECTORY') }}/ssh_key"
        users_groups:
          - name: users
          - name: bin
        users:
          - name: nouser
            comment: No User
            create_home: no
          - name: molecule
            comment: Ansible Test User
            uid: 2001
            home: /home/test
            cron: yes
            sudo: yes
            generate_ssh_key: yes
          - name: administrator
            comment: Administrator
            uid: 2002
            groups: [users]
            cron: yes
            sudo: yes
            profile: |
              alias ll='ls -lah'
              alias cp='cp -iv'
            ssh_key:
              - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABWBILQeRSYYmGea/WIf6kd... [email protected]"
          - name: user
            comment: User
            uid: 2003
            groups: [users]
            shell: /bin/sh
            generate_ssh_key: yes

ロールテスト

このロールは、以下のLinuxディストリビューションに対して定期的にテストされています:

Ansible Ansible Ansible
DockerDistro Check Check Check
DockerDistro Check Check Check
DockerDistro Check Check Check
DockerDistro Check Check Check
EC2Distro Check
DockerDistro Check Check Check
EC2Distro Check
DockerDistro Check Check Check
EC2Distro Check
DockerDistro Check Check Check
DockerDistro Check Check Check
DockerDistro Check
DockerDistro Check Check Check
EC2Distro Check

アスタリスクはビルドが失敗しても許可されており、実験的ビルドとしてマークされます。

貢献

問題を見つけた場合は、GitHubプロジェクトのイシューページに登録するか、このガイドラインに従ってコードを貢献することを検討してください。

ライセンス

Apache-2.0

著者情報

プロジェクトについて

This role manages users and their groups on your system.

インストール
ansible-galaxy install rembik.users
ライセンス
apache-2.0
ダウンロード
83
所有者