Automatización con CFEngine

Instructor: L.I. Eduardo Iván Ortega Alarcón 

Presentación 

La automatización de la administración de sistemas HPC es crucial para garantizar la integridad y la disponibilidad de los sistemas, ya que generalmente se trabajan con decenas, cientos o miles de equipos de cómputo. CFEngine es una herramienta de configuración automatizada de sistemas basada en la teoría de promesas donde hay agentes autónomos colaborando entre sí para alcanzar el estado deseado del sistema. Se puede utilizar para la administración de una máquina o de centros de cómputo completos, sin aumentar su complejidad. 

Objetivo 

El objetivo del taller es explicar la instalación, uso y configuración de la herramienta CFEngine, la cual permite una administración de infraestructuras HPC de forma centralizada y automatizada, dando como resultado la disminución de errores, optimización de procedimientos y monitoreo de los recursos. 

Temario 

  1. Introducción.
  2. Conceptos.
    1. Promesa.
    2. Prometedor.
  3. Principios Básicos.
    1. Estado deseado.
    2. Configuración convergente.
    3. Teoría de promesas.
  4. Funciónamiento.
    1. Flujo.
    2. Servidor de políticas.
    3. Agente colaborativo.
    4. Lenguaje declarativo.
  5. Conceptos del lenguaje.
    1. Bundles.
    2. Bodies.
    3. Estructura de una promesa.
  6. Directorios de trabajo.
    1. CFEngine.
    2. Biblioteca estándar.
    3. Masterfiles framework.
    4. Inputs.
  7. Componentes.
    1. Agente.
    2. Servidor.
    3. Monitoreo.
    4. Ejecución.
      1. Local.
      2. Remota (runagent).
    5. Otros componentes.
  8. Instalación.
    1. Instalación del paquete y generación de llave.
    2. Definición del servidor de políticas.
  9. Configuración.
    1. Hardening.
    2. Definición de agentes para runagent.
  10. Clases y toma de decisiones.
    1. Conceptos y funcionamiento.
    2. Clases duras.
    3. Clases suaves.
  11. Tipos de promesa y automatización.
    1. Reportes.
    2. Variables.
    3. Edición básica de archivos.
    4. Toma de decisiones (clases).
    5. Gestión de paquetes.
    6. Ejecución de comandos.
    7. Gestión de servicios y procesos.
    8. Administración de usuarios.
    9. Edición avanzada de archivos.
    10. Definición de código reutilizable (métodos).
  12. Ejemplos prácticos de administración de sistemas.
  13. Monitoreo y corrección automática.

Requisitos previos 

Se requieren conocimientos de administración de sistemas GNU/Linux, preferentemente en RHEL 7, 8 o 9. Programación básica. Conocimientos en redes TCP/IP. 

Duración 

6 horas en 2 sesiones de 3 horas cada una. 

Cupo Límite

20 personas