geerlingguy.github-users
Rol de Ansible: Usuarios de GitHub
Crea usuarios basados en cuentas de GitHub.
Este rol tomará un nombre de usuario de GitHub y creará una cuenta de sistema con el mismo nombre de usuario, además añadirá todas las claves públicas asociadas con la cuenta de GitHub al archivo authorized_keys
del usuario.
Es una forma sencilla de gestionar claves públicas para los usuarios en tu sistema... ¡pero funciona!
Requisitos
Ninguno.
Variables del Rol
Las variables disponibles se enumeran a continuación, junto con los valores predeterminados (ver defaults/main.yml
):
github_users: []
# Puedes especificar un objeto con 'name' (requerido) y 'groups' (opcional):
# - name: geerlingguy
# groups: www-data,sudo
# O puedes especificar un nombre de usuario de GitHub directamente:
# - geerlingguy
Una lista de usuarios para añadir al servidor; el nombre de usuario será el name
(o el elemento de la lista, si es una cadena en lugar de un objeto). Puedes añadir el usuario a uno o más grupos (además del grupo [nombre de usuario]
) añadiéndolos como una lista separada por comas en groups
.
github_users_absent: []
# Puedes especificar un objeto con 'name' (requerido):
# - name: geerlingguy
# O puedes especificar un nombre de usuario de GitHub directamente:
# - geerlingguy
Una lista de usuarios que no deben estar presentes en el servidor. El rol se asegurará de que estas cuentas de usuario sean eliminadas.
github_users_authorized_keys_exclusive: true
Si los archivos authorized_keys
de los usuarios deben contener exclusivamente las claves de su cuenta de GitHub. Esto debería estar normalmente configurado en true
si solo permites que los usuarios inicien sesión con claves disponibles en sus cuentas de GitHub.
github_url: https://github.com
Por defecto, se utiliza GitHub público (es decir, https://github.com) como fuente para usuarios/claves. Puedes cambiar esto para usar una instancia/punto final diferente de GitHub (por ejemplo, GitHub Enterprise).
Si necesitas dar al usuario la capacidad de gestionar su archivo authorized_keys
, deberías establecer esto en no
, y solo se añadirán nuevas claves, pero nunca se eliminarán claves adicionales (por ejemplo, claves antiguas eliminadas de su perfil de GitHub, o claves que el usuario final agregó manualmente) del archivo.
Dependencias
Ninguna.
Ejemplo de Playbook
- hosts: servidores
vars:
github_users:
# Puedes especificar el `name`:
- name: geerlingguy
groups: sudo,www-data
- name: GrahamCampbell
# O si no necesitas sobrescribir nada, puedes especificar el
# nombre de usuario de GitHub directamente:
- fabpot
github_users_absent:
- johndoe
- name: josh
roles:
- geerlingguy.github-users
Si quieres asegurarte de que las claves públicas de los usuarios estén sincronizadas, es mejor ejecutar el playbook en un cron, por ejemplo, cada 5 min, 10 min o algún otro intervalo. Así no tienes que añadir manualmente nuevas claves para los usuarios.
Licencia
MIT / BSD
Información del Autor
Este rol fue creado en 2017 por Jeff Geerling, autor de Ansible for DevOps.
Create users based on GitHub accounts.
ansible-galaxy install geerlingguy.github-users