jueves, 15 de agosto de 2019

Automatizar la creación de usuarios en nuestros servidores

Pongámonos en la siguiente situación: Tenemos un usuario nuevo en la organización que necesita acceder a varios servidores. Por poner un número, pongamos que necesita acceso a 16 servidores. Ir de uno en uno no es una opción ¿Cómo podríamos hacerlo de una forma aún más eficiente?



Como alguno se puede imaginar, lo que voy a plantear es Ansible de nuevo y sus playbooks ¿Por qué? Pues porque las tareas que tenemos que realizar en esos 16 servidores es:

1. Crear el usuario
2. Añadir su SSH Key
3. Establecer su condiguración de zsh
4. Establecer su configuración de tmux

Esto como mínimo, y hacerlo de servidor en servidor no es una opción rentable ni eficiente. Así pues, lo que vamos a hacer será crear un playbook como el siguiente:

--- Crear_usuarui.yml ---
- hosts: all
vars:
username: malen
tasks:
- name: "Instalar zsh en caso de no estar instalado"
apt:
name: zsh
state: present
- name: "Creando grupo {{ username }} en caso de que no exista"
group:
name: "{{ username }}"
state: present
- name: "Creando usuario {{ username }} en (all) server(s)"
user:
# echo -n "RANDOM PASSWORD" | mkpasswd --method=sha-512 -s
name: "{{ username }}"
group: "{{ username }}"
groups: sudo
password: "[Incluir resultado]"
shell: /bin/zsh
append: yes
update_password: on_create
state: present
- name: "Establecer la SSH Key del usuario {{ username }}"
authorized_keys:
user: "{{ username }}"
state: present
key: "{{ lookup('file', '/home/hispamanu/.ssh/id_rsa.pub') }}"

- name: "Copiar mi .oh-my-zsh/ al home del usuario {{ username }}"
synchronize:
src: "~/.oh-my-zsh"
dest: "/home/{{ username }}"

- name: "Estableciendo permsisos para el directorio ~/.oh-my-zsh"
file:
dest: "/home/{{ username }}/.oh-my-zsh"
owner: "{{ username }}"
group: "{{ username }}"
recurse: yes

- name: "Copiar el archivo .tmux.conf al home del usuario {{ username }} "
copy:
src: "~/.tmux.conf"
dest: "/home/{{ username }}/.tmux.conf"
owner: "{{ username }}"
group: "{{ username }}"
mode: 0644
 --------------------------------------------------------------------------------------------

Tras ejecutar el playbook, sólo tenemos que esperar a que termine y tendremos a nuestro usuario en todos los servidores y con sus preferencias de terminal y ssh key añadida en cuestión de segundos. Para esto sirve la informática realmente, para hacer el trabajo más fácil.

¿Hackeamos el Mundo?

P.D: En definitiva, lo que hemos hecho es automatizar al máximo la tarea que ya realizamos ayer.

No hay comentarios:

Publicar un comentario

Related Posts Plugin for WordPress, Blogger...

Entrada destacada

El server me sabe a poco.

Soy un fanático del Rock y de Debian . (Creo que voy a inventar Rockbian, que suena bien y todo xD) Llevaba tiempo queriendo unir estos 2 c...