geerlingguy.github-users
Ansibleロール: GitHubユーザー
GitHubアカウントに基づいてユーザーを作成します。
このロールはGitHubのユーザー名を受け取り、同じユーザー名のシステムアカウントを作成し、GitHubアカウントに関連付けられたすべての公開鍵をユーザーのauthorized_keys
に追加します。
システム上のユーザーの公開鍵管理を手軽に行える方法ですが、効果的です!
必要条件
特になし。
ロール変数
利用可能な変数は以下に示し、デフォルト値も記載しています(defaults/main.yml
参照):
github_users: []
# 'name'(必須)と'groups'(オプション)を持つオブジェクトを指定できます:
# - name: geerlingguy
# groups: www-data,sudo
# またはGitHubのユーザー名を直接指定できます:
# - geerlingguy
サーバーに追加するユーザーのリストです。ユーザー名がname
(またはオブジェクトでない場合は文字列としてリスト項目)になります。groups
にカンマ区切りのリストで追加することで、1つ以上のグループにユーザーを追加できます。
github_users_absent: []
# 'name'(必須)を持つオブジェクトを指定できます:
# - name: geerlingguy
# またはGitHubのユーザー名を直接指定できます:
# - geerlingguy
サーバーに存在してはならないユーザーのリストです。このロールはこれらのユーザーアカウントを削除します。
github_users_authorized_keys_exclusive: true
ユーザーのauthorized_keys
ファイルがGitHubアカウントの鍵のみを含むべきかどうかを設定します。通常、GitHubアカウントでのログインのみを許可する場合は、これをtrue
に設定します。
github_url: https://github.com
デフォルトでは、ユーザー/鍵のソースとしてパブリックGitHub(つまり、https://github.com)を使用します。別のGitHubインスタンス/エンドポイント(例: GitHubエンタープライズ)を使用する場合は、これを上書きしてください。
ユーザーに自分のauthorized_keys
ファイルを自己管理させる必要がある場合は、これをno
に設定すると、新しい鍵を追加するだけで、追加の鍵(例: GitHubのプロフィールから削除された古い鍵や、ユーザーが手動で追加した鍵)を削除しません。
依存関係
特になし。
サンプルプレイブック
- hosts: servers
vars:
github_users:
# 'name'を指定できます:
- name: geerlingguy
groups: sudo,www-data
- name: GrahamCampbell
# 何も上書きする必要がない場合は、GitHubユーザー名を直接指定できます:
- fabpot
github_users_absent:
- johndoe
- name: josh
roles:
- geerlingguy.github-users
ユーザーの公開鍵が同期されていることを確認するには、プレイブックをcronで定期的に実行するのが最良です(例: 5分、10分などの間隔で)。これにより、ユーザーの新しい鍵を手動で追加する必要がなくなります。
ライセンス
MIT / BSD
作者情報
このロールは、Jeff Geerlingによって2017年に作成されました。彼はAnsible for DevOpsの著者です。
Create users based on GitHub accounts.
ansible-galaxy install geerlingguy.github-users