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