Automatización de la configuración

Para automatizár el aprovisionamiento, la configuración y el mantenimiento de nuestra plataforma de servidores, utilizamos Ansible. Estamos trabajando en esta automatización en esta tarea: #5903 y las tareas relacionadas.

Trabajamos en dos proyectos de código en git.interior.edu.uy:
  • adminsys, proyecto público en el que desarrollamos scripts genéricos que puedan ser reutilizados en otros contextos,
  • config, proyecto reservado, que contiene el inventario de servidores y scripts específicos a nuestra plataforma

Documentación de los scripts

Hay una instancia de los scripts de administración, disponibles para todo el equipo, en:

bourdieu.csic.edu.uy:~compartido/ansible

Pero para trabajar sobre el tema, lo más lógico es generar tu propia carpeta en la consola de administración y en la cuenta que quieras, simplemente te creas una carpeta de trabajo limplia, en esa bajas los juegos de scripts:

git clone git@git.interior.edu.uy:adminsys/config.git
git clone git@git.interior.edu.uy:cielito/adminsys.git

En esa carpeta, para cuando ejecutamos ansible desde ahí, hay que crearse el archivo ansible.cfg que, una de las cosas que define es nuestro inventario:

## Conforme a las ubicaciones propuestas en: 
## docs.ansible.com/ansible/latest/intro_configuration.html

[defaults]

inventory      = /home/compartido/ansible/config/hosts

El despliegue en los servidores administrados se hace con un usuario unix siempre denominado deploy. Cuando modificamos el inventario, corriendo el playbook ansible. Tal cual descargado, te instala las claves de los admisys de CII desde bourdieu:

ansible-playbook adminsys/instalar_deployer.yml

Instalamos en todos los servidores del inventario este usuario deploy, con los derechos correctos (miembro del grupo adminsys, que tiene derechos sudo sin solicitud de contraseña).

Si las quieres desplegar el usuario deploy en un nuevo servidor solamente, sin verificar todos los demás, lo haces con:

ansible-playbook --limit <nuevoservidor>.interior.edu.uy adminsys/instalar_deployer.yml

Si estás trabajando desde otra máquina que bourdieu, tienes que crearte tu propio playbook inspirándote en instalar_deployer.yml para subirle tus claves.

Scripts disponibles

  • borrar_deployer.yml (por probar): usar solo host por host,
  • debian_upgrade.yml, para actualizar por apt todos los servidores Debian y derivadas (en particular Ubuntu)
  • instalar_agente_zabbix.yml basado en uns script de Víctor A

Estamos trabajando sobre los playbook para la nueva plataforma: #6009
Script en curso:

<yo>@bourdieu:~/compartido/ansible$ ansible-playbook adminsys/instalar_fierro_proxmox.yml

Procesos de instalación

Tareas para un servidor proxmox

Consideramos configurado un servidor físico, con recursos y características conocidas y suficientes (en particular de disco, ya en RAID hardware). El servidor arranca sobre un medio de instalación (pendrive USB, CD) con el .iso instalable de proxmox.

  1. parametrización de la install del proxmox, en particular formateo de disco y de las credenciales (fixme)

Desde una máquina con acceso root:

  1. instalación del usuario deploy
  2. puesta en cluster de los proxmox (fue hecho a mano)
  3. configuración de los repos de la UdelaR,
  4. desactivación del repo proxmox con suscripción y activación del sin suscripción,
  5. instalación de los certificados letsencryt (a traves de la interfaz de proxmox)

Explorar herramientas ansible, proxmox y otros