geerlingguy.github-users

Ansible角色:GitHub用户

CI

根据GitHub账户创建用户。

此角色将获取一个GitHub用户名,并创建一个与该用户名相同的系统账户,还会将与该GitHub账户关联的所有公钥添加到用户的authorized_keys中。

这是一种简单的用户公钥管理方法,但它有效!

需求

无。

角色变量

可用变量如下所示,并附有默认值(见defaults/main.yml):

github_users: []
  # 你可以指定一个对象,包含'mame'(必需)和'groups'(可选):
  # - name: geerlingguy
  #   groups: www-data,sudo

  # 或者你可以直接指定GitHub用户名:
  # - geerlingguy

要添加到服务器的用户列表;用户名将是name(或者如果是字符串而不是对象,则是列表中的条目)。你可以通过在groups中添加以逗号分隔的列表将用户添加到一个或多个组(除此之外的[username]组)。

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》的作者,网址为https://www.ansiblefordevops.com/

关于项目

Create users based on GitHub accounts.

安装
ansible-galaxy install geerlingguy.github-users
许可证
mit
下载
385k
拥有者
Father, author, developer, maker. Sometimes called "an inflammatory enigma". #stl #drupal #ansible #k8s #raspberrypi #crohns