cans.user-make

cans.user-make

ビルドステータス Ansible Galaxy ライセンス

ターゲットホストにユーザーを作成するためのAnsibleロール

使い方

作成する各ユーザーは、以下のようにアイテムとして定義する必要があります:

usermake_users:
  - name: "johndoe"                # 必須
    gecos: "John Doe,,,"           # デフォルト: 省略
    groups: "sudo,adm"             # デフォルト: 省略
    passwordless_sudo: true        # デフォルト: usermake_sudoer_passwordless
    ssh_key_create: false          # デフォルト: true
    ssh_key_upload_to_ec2: true    # デフォルト: usermake_ssh_key_upload_to_ec2
    ssh_key_download: true         # デフォルト: usermake_ssh_key_download
    sudoer: true                   # デフォルト: usermake_sudoer
    system: false                  # デフォルト: false
    upload_my_key: false           # デフォルト: usermake_upload_ssh_key_to_target
    remove: false                  # デフォルト: 省略またはusermake_remove
    home_dir: "/home/jdoe"         # デフォルト: usermake_home_base_dir/name

各変数の意味は以下の通りです:

  • name: 新しいユーザーのログイン名;
  • gecos: 新しいユーザーに付加するGECOSデータ;
  • groups: ユーザーが所属すべきグループのリスト。ここでリストされているグループは事前に存在している必要があります。
  • passwordless_sudo: trueに設定すると、ユーザーはパスワードを入力せずに他のユーザーとして操作できます;
  • remove: アイテムの状態が'absent'の場合、そのユーザーのアカウントが削除されるときに関連ファイルも削除するかどうか (遅くなる場合がある);
  • ssh_key_create: 新しいユーザーのためにSSHキーのペアを生成するかどうか;
  • ssh_key_download: 新しいユーザーの生成されたSSH公開鍵をローカルマシンのフォルダーにダウンロードするかどうか;
  • ssh_key_upload_to_ec2: 新しいユーザーの生成されたSSH公開鍵をAWS EC2のキーマネジメントシステムにアップロードするかどうか;
  • state: ユーザーを作成あるいは削除するかどうか present または absent の値で指定 (デフォルト: present);
  • sudoer: trueに設定すると、ユーザーにsudo権限が与えられる;
  • system: ユーザーをシステムユーザーとして設定するかどうか (低いUID番号とログイン無効);
  • upload_my_key: ローカルのSSHキーをターゲットホストにアップロードするかどうか。

これらのすべての値は、定義されている場合、以下のロール変数のデフォルト設定を上書きします。

このロールができないことは?

新しいグループにユーザーを追加することはできません。このロールはユーザーのグループを指定されたグループリストで上書きします。

要件

このロールには特別な要件はありません。

ロール変数

このロールで使用されるすべての変数名にはusermake_というプレフィックスが付けられています。

  • usermake_home_base_dir: ユーザーのホームディレクトリを作成するパスを上書きさせる (デフォルト: /home);
  • usermake_remove: ユーザーが削除されるとき、ホームディレクトリを削除するかどうか (デフォルト: false);
  • usermake_ssh_key_create: 新しいユーザーのためにSSHキーのペアを標準で作成するかどうか (デフォルト: true);
  • usermake_ssh_key_download: 作成されたユーザーのSSHキーをローカルにダウンロードするかどうか;
  • usermake_ssh_key_download_dir: ダウンロードした公開SSHキーを保存するディレクトリ (デフォルト: {{ playbook_dir }}/collected-keys);
  • usermake_ssh_key_download_dir_mode: ダウンロードした公開SSHキーを保存するディレクトリのモード (デフォルト: 0750);
  • usermake_ssh_key_passphrase: SSHプライベートキーを暗号化するためのデフォルトのパスフレーズ。これに依存することは推奨されません。別の方法でパスフレーズを提供するのが良いです (デフォルト: omit [パスフレーズなし]);
  • usermake_sudoer: 作成されたユーザーがデフォルトでsudo権限を持つべきか (デフォルト: false); 注: この権限をユーザーに与える前に、ディストリビューションがsudoまたはsudoersグループを持っていることを確認してください。現在のメカニズムは、ディスクイメージ上で高権限ユーザーの事前設定に使われることを意図しています。詳細なユーザーまたはアプリケーションの権限管理のためではありません;
  • usermake_sudoer_dir: ターゲットマシンにおけるsudoルールファイルを置くディレクトリ (デフォルト: /etc/sudoers.d);
  • usermake_system: 作成されたユーザーがデフォルトでシステムユーザーであるべきか (デフォルト: false);
  • usermake_upload_ssh_key_to_target: ローカルユーザーのSSH公開鍵をターゲットホストにアップロードするかどうか。次のタスクやロールでそのユーザーとして作業する予定がある場合に便利です (デフォルト: true);
  • usermake_upload_ssh_key_file: usermake_upload_ssh_key_to_target またはユーザーアイテムのupload_my_keyの値がtrueの場合、アップロードするために公開鍵を読み取るファイルを指します (デフォルト: ~/.ssh/id_rsa.pub);
  • usermake_user_groups: 作成されたユーザーをデフォルトで割り当てるグループ (デフォルト: omit);
  • usermake_users: 作成するユーザーのリスト、上記のように定義されたアイテムとして (デフォルト: []);

依存関係

このロールには依存関係はありません。

例プレイブック

いくつかのユーザーを作成する:

- hosts: servers
  roles:
     - role: cans.user-make
       usermake_users:
         - name: "alice"
           groups: "sudo,adm"
           system: "no"
           ssh_key_create: "yes"
         - name: "bob"
           gecos: "Bob no sponge,,,"
           system: "yes"
           ssh_key_create: true

いくつかのユーザーを削除する:

- hosts: servers
  roles:
    - role: cans.user-make
      usermake_users:
        - name: "alice"
          state: "absent"
          remove: true  # ユーザーの関連ファイルをすべて削除
        - name: "bob"
          state: "absent"

このロールの多くの使用例については、tests/test.ymlに見てみると良いでしょう。

TODO

AWSキーボードアップロードの統合テストを実装する。

ライセンス

GPLv2

著者情報

Copyright © 2017, Nicolas CANIART.

プロジェクトについて

Simple Role to create a given list of users

インストール
ansible-galaxy install cans.user-make
ライセンス
gpl-2.0
ダウンロード
149
所有者