1. Manuales
  2. Ansible - Administre la configuración de sus servidores y el despliegue de sus aplicaciones

Ansible Administre la configuración de sus servidores y el despliegue de sus aplicaciones

  • 5% de descuento en todos los libros, con el código 5DESCUENTO
  • Disponible. Expedido en 24 horas
  • Envío gratis a partir de 25 € de compra
  • Versión online gratis por un año
  • 5% de descuento en todos los libros, con el código 5DESCUENTO
  • Consulta inmediata
  • Versión online digital, no descargable
  • Acceso ilimitado 24/7, durante 10 años
  • Acceso ilimitado 24/7, durante 10 años
  • Todos los libros online de ENI
  • Más de 5 novedades todos los meses
  • Novedades disponibles el mismo día de su publicación
  • Acceso 100% online

Presentación

Este libro sobre Ansible está dirigido a los administradores de sistemas Unix que quieran descubrir las distintas funcionalidades específicas de esta herramienta DevOps que permiten la configuración centralizada de servidores y de aplicaciones. El autor, apoyándose en ejemplos concretos, aporta al lector los conocimientos necesarios para entender el interés de su utilización.

Algunos requisitos sobre el lenguaje YAML, así como sobre el protocolo SSH, serán una ventaja para un uso eficaz de Ansible. En los primeros capítulos, el autor ayuda al lector a adquirir dichos requisitos para que pueda sacar el mayor partido posible de la lectura del libro.

Los capítulos siguientes versan sobre los diferentes mecanismos de Ansible, con una dificultad progresiva.

Los primeros mecanismos permiten administrar de manera clásica los servidores (Unix o Windows) mientras que para los siguientes se necesitan nociones más avanzadas, especialmente para la programación Python. El lector descubrirá cómo crear un inventario, cómo reinyectar información proveniente de fuentes existentes (ESX, AWS, Docker…) o cómo crear playbooks. En este libro se trata también la creación de roles Ansible, así como el uso de algunas buenas prácticas (análisis de código y test con Molecule/Docker).

Junto con algunas nociones puramente orientadas Ansible, algunos capítulos están dedicados al desarrollo de la implementación de una aplicación MediaWiki. El lector estudiará, de esta manera, los problemas de la paralelización de tareas, la introducción de un balanceo de carga Haproxy y la ejecución secuencial de las operaciones que permite realizar actualizaciones con un impacto mínimo (rolling update) en los entornos de producción. La optimización de las tareas será un punto importante para tener en cuenta en la implementación de Mitogen.

Más adelante, en el libro se detalla particularmente la personalización de Ansible. Se estudiarán la restitución de información (mecanismos de callback y de descubrimiento de ARA), la escritura de módulos para la gestión de operaciones, los filtros Jinja o incluso la creación de acciones.

Finalmente, en los últimos capítulos, el autor presentará el problema de la creación de máquinas virtuales, clásicas (usando el hipervisor ESX/VMware/vCenter) o en la nube (con AWS), el uso de contenedores Docker con Ansible, el pilotaje de aplicaciones en un clúster Kubernetes, así como la creación de un operador.

Algunos elementos complementarios pueden descargarse en el sitio web www.ediciones-eni.com.


¡Nuevo! Rondas de preguntas disponibles con la versión online.

¡Ronda de preguntas
incluida en
la versión online !
  • Ponga a prueba sus conocimientos al final de cada capítulo
  • Evalúe sus competencias

Índice

  • Prefacio
    • 1. ¿ De dónde viene el término DevOps ?
    • 2. Los primeros productos DevOps
    • 3. Público y objetivos de la obra
    • 4. Requisitos técnicos y recursos de documentación
      • 4.1 Requisitos técnicos
      • 4.2 Recursos de documentación
    • 5. Presentación general
      • 5.1 Los requisitos
      • 5.2 El uso de Ansible
      • 5.3 La personalización de Ansible
      • 5.4 Convenciones empleadas en la obra
  • Iniciarse en Ansible
    • 1. Objetivos del capítulo y requisitos
      • 1.1 Contexto y requisitos
      • 1.2 Versión de Python
      • 1.3 Entorno de trabajo
      • 1.4 Archivos para descargar
    • 2. Instalación de Ansible
      • 2.1 Contexto
      • 2.2 Instalación detrás de un proxy
      • 2.3 Instalación a través de paquetes del sistema
        • 2.3.1 Instalación en Debian/Ubuntu
        • 2.3.2 Instalación en RHEL, CentOS o Fedora
      • 2.4 Instalación usando pip
      • 2.5 Uso de los paquetes releases
      • 2.6 Uso de virtualenv
      • 2.7 Comprobación de la versión de Ansible
    • 3. El protocolo SSH
      • 3.1 Introducción a SSH
      • 3.2 Clave pública y clave privada
      • 3.3 Generación de la clave
      • 3.4 Etapas de la autenticación
      • 3.5 Parque de máquinas voluminoso o alojamiento en la nube
      • 3.6 Intercambio de clave mediante contraseña
      • 3.7 Intercambio de clave sin contraseña
      • 3.8 Gestión de una passphrase con Ansible
  • Uso de Ansible
    • 1. Objetivo del capítulo y requisitos
      • 1.1 Contexto y requisitos
      • 1.2 Archivos para descargar
    • 2. Ansible en modo ad hoc
      • 2.1 Creación de un archivo de inventario
      • 2.2 Usuario no root
      • 2.3 Usuario SSH diferente a root y mecanismo sudo
    • 3. Las otras herramientas de Ansible: playbook y doc
    • 4. Algunas nociones sobre el formato YAML
      • 4.1 Declaración de variables simples
      • 4.2 Las tablas en YAML
      • 4.3 Las estructuras clave/valor
      • 4.4 Tabla de tablas de hash
      • 4.5 Inventario en formato YAML
    • 5. Introducción a la noción de playbook
      • 5.1 Estructura de un playbook
      • 5.2 Ejecución de un playbook
    • 6. Combinación con Git
      • 6.1 Creación del depósito
      • 6.2 Comandos básicos
        • 6.2.1 Obtención de un depósito Git
        • 6.2.2 Rama de trabajo
        • 6.2.3 Estado de su repository
        • 6.2.4 Añadir un archivo
        • 6.2.5 Modificar un archivo
        • 6.2.6 Actualización del repository remoto
        • 6.2.7 Obtención de las modificaciones remotas
      • 6.3 Mecanismo de hook
        • 6.3.1 Comprobación de los playbooks con ansible-lint
        • 6.3.2 Creación de un hook pre-commit
        • 6.3.3 Test del funcionamiento del hook
  • Descubriendo el inventario
    • 1. Objetivos del capítulo y requisitos
      • 1.1 Contexto y requisitos
      • 1.2 Archivos descargables
    • 2. Estructura de un inventario
      • 2.1 Grupos por defecto
      • 2.2 Modo de conexión a las máquinas
      • 2.3 Reagrupamiento de máquinas
      • 2.4 Variables de inventario
      • 2.5 Jerarquía de las variables
      • 2.6 Gestión de los diferentes inventarios
      • 2.7 Creación de grupos temporales
    • 3. Fusión de inventarios
  • Inventarios: nociones avanzadas
    • 1. Objetivos del capítulo y requisitos
      • 1.1 Contexto y requisitos
      • 1.2 Archivos descargables
    • 2. Cifrado de archivos
      • 2.1 Contexto
      • 2.2 Almacenamiento de los nombres de usuario para las conexiones
      • 2.3 Cifrado de un archivo entero
        • 2.3.1 Usando una contraseña
        • 2.3.2 Uso de un archivo
        • 2.3.3 Descifrado de un archivo
        • 2.3.4 Cambio de la contraseña de cifrado
      • 2.4 Cifrado de un campo
    • 3. Los inventarios dinámicos
      • 3.1 Contexto
      • 3.2 Máquinas AWS
        • 3.2.1 Requisitos
        • 3.2.2 Obtención del script ec2.py
        • 3.2.3 Configuración
        • 3.2.4 Test del script
      • 3.3 Comunicación con Docker
        • 3.3.1 Descarga del script de inventario
        • 3.3.2 Configuración de la comunicación con Docker
        • 3.3.3 Test del script de inventario
        • 3.3.4 Comunicación con los contenedores Docker
        • 3.3.5 Algunas notas sobre la elección de la imagen Docker
      • 3.4 Extracción de información procedente de ESX
      • 3.5 Extracción de información de Nagios/Naemon/Shinken
    • 4. Funcionamento de los plugins de inventarios genéricos
      • 4.1 Contexto
      • 4.2 Conector soportado por el formato auto
      • 4.3 Ejemplos de archivos de inventario en formato auto
      • 4.4 Uso del comando ansible-inventory
      • 4.5 Inventario de las instancias ec2
    • 5. Escribir su propio inventario dinámico
      • 5.1 Contexto
      • 5.2 Formato de entrada
      • 5.3 Estructura del programa
        • 5.3.1 Encabezado del programa
        • 5.3.2 Carga del archivo
        • 5.3.3 Transformación y alimentación del inventario
        • 5.3.4 Test del script de inventario
        • 5.3.5 Test del inventario dinámico con Ansible
  • Administración en Windows
    • 1. Objetivos del capítulo y requisitos
      • 1.1 Contexto y requisitos
      • 1.2 Archivos para descargar
    • 2. Ansible y las máquinas Windows
      • 2.1 Contexto
      • 2.2 Requisitos
      • 2.3 Configuración de la máquina
      • 2.4 Creación de un archivo de inventario
      • 2.5 Test de la comunicación con Windows
      • 2.6 Instalación de un paquete
    • 3. Gestión de servicio Windows
      • 3.1 Contexto
      • 3.2 Instalación de Prometheus
      • 3.3 Creación del playbook
      • 3.4 Inicio de la instalación
      • 3.5 Consulta de la consola Prometheus
    • 4. Creación de servicio
      • 4.1 Instalación de Grafana
        • 4.1.1 Presentación de Grafana
        • 4.1.2 Creación del playbook
        • 4.1.3 Inicio de la instalación
      • 4.2 Creación de un servicio Windows
        • 4.2.1 Búsqueda del programa de inicio de Grafana
        • 4.2.2 Sistema de gestión de servicios NSSM
        • 4.2.3 Creación del servicio Grafana
        • 4.2.4 Playbook completo de instalación de Grafana
      • 4.3 Mecanismos de emergencia
      • 4.4 Consulta de la interfaz de Grafana
  • Funcionamiento de un playbook
    • 1. Objetivos del capítulo y requisitos
      • 1.1 Contexto y requisitos
      • 1.2 Archivos descargables
    • 2. El motor de plantillas Jinja: principio de funcionamiento
    • 3. Plantilla Jinja
      • 3.1 Mecanismo de bucle en una tabla con Jinja
      • 3.2 Buscando la buena variable Ansible
      • 3.3 Visualización de las interfaces de red
    • 4. Delegación de la tarea
      • 4.1 Cambio de tipo de conexión en una tarea
      • 4.2 Delegación de una tarea
      • 4.3 Tarea que se ejecutará solo una vez
    • 5. Gestión de un servidor Apache
    • 6. Reducción de operaciones que causan impacto
      • 6.1 Mecanismo de los tags
        • 6.1.1 Declaración de un tag
        • 6.1.2 ¿ Cómo hacer una lista de los tags de un playbook ?
        • 6.1.3 Selección o exclusión de un tag
        • 6.1.4 Gather facts y el tag always
      • 6.2 Uso de una variable en una tarea
      • 6.3 Uso de un handler
        • 6.3.1 ¿ Por qué usar un handler ?
        • 6.3.2 Declaración de un handler
        • 6.3.3 Ejemplo de ejecución
  • Introducción a la noción de rol
    • 1. Objetivos del capítulo y requisitos
      • 1.1 Contexto y requisitos
      • 1.2 Archivos descargables
    • 2. Introducción a los roles Ansible
      • 2.1 Estructura de un rol
      • 2.2 Su primer rol: instalación de Apache
      • 2.3 Configuración del servidor Apache
    • 3. Instalación de MediaWiki
      • 3.1 Filtros Jinja e instalación de Apache
      • 3.2 Gestión de las variables en un rol
      • 3.3 Instalación de MariaDB/MySQL
      • 3.4 Instalación de MediaWiki
      • 3.5 Configuración de MediaWiki
        • 3.5.1 Descompresión del archivo
        • 3.5.2 Mutualización de la base MariaDB y del servidor Apache (SELinux)
        • 3.5.3 Comando de configuración de MediaWiki
        • 3.5.4 Dependencias y variables que puedan faltar
        • 3.5.5 Lanzamiento de la instalación y configuración de MediaWiki
        • 3.5.6 Cambio de versión de PHP
        • 3.5.7 Bucle y afectación de los accesos remotos hacia la base MariaDB
    • 4. Finalización de la instalación de MediaWiki
      • 4.1 Reentrada y script shell
      • 4.2 Problema de redirección
  • Playbooks, roles y nociones avanzadas
    • 1. Objetivos del capítulo y requisitos
      • 1.1 Contexto y requisitos
      • 1.2 Archivos descargables
    • 2. Gestión de Python en las máquinas remotas
      • 2.1 Introducción
      • 2.2 Preparación del inventario
      • 2.3 Gestión de una máquina sin Python
      • 2.4 Detección automática del intérprete
      • 2.5 Posicionamiento de la ubicación del intérprete de Python
      • 2.6 Python3 y Ansible
    • 3. Escalabilidad y reparto de carga
      • 3.1 Contexto
      • 3.2 Origen de la necesidad
      • 3.3 Incorporación de nuevos servidores Apache
      • 3.4 Ejecución de una operación de manera secuencial
    • 4. Incorporación de un reparto de carga
      • 4.1 ¿ Por qué deberíamos incorporar un reparto de carga ?
      • 4.2 Diferencias entre Ubuntu/Debian y Centos/Red Hat
      • 4.3 Instalación del servidor Haproxy
        • 4.3.1 Configuración del servidor Haproxy
        • 4.3.2 Preparación del rol
    • 5. Algunos consejos
      • 5.1 Controlar la ejecución de los handlers
      • 5.2 Reducir el tiempo de no disponibilidad de un servicio
    • 6. Actualización y reentrada de script
      • 6.1 Contexto
      • 6.2 Gestión de la actualización de la versión del esquema
    • 7. Actualización continua (rolling update)
      • 7.1 Contexto
      • 7.2 Presentación del mecanismo
      • 7.3 Actualización continua en el MediaWiki
      • 7.4 Desactivación de las máquinas antes de la actualización
        • 7.4.1 Configuración de Haproxy
        • 7.4.2 Desactivación de la instancia Apache antes de la actualización
        • 7.4.3 Uso de la instrucción include_role
        • 7.4.4 Demasiadas líneas en los archivos de registro de Apache
    • 8. Inclusión y reutilización
      • 8.1 Contexto
      • 8.2 Inclusión estática de tareas
      • 8.3 Inclusión dinámica de las tareas
      • 8.4 Gestión del comportamiento de la instrucción de bucle
        • 8.4.1 Control del nombre de la variable de bucle
        • 8.4.2 Otras palabras clave interesantes
    • 9. Ansible Galaxy
      • 9.1 Presentación del sitio
      • 9.2 Búsqueda de un rol
      • 9.3 Uso de un rol de Ansible Galaxy
      • 9.4 Uso de un archivo de requisitos
      • 9.5 ¿ Cómo listar los roles de Ansible Galaxy ?
      • 9.6 Eliminación de un rol
      • 9.7 Colecciones Ansible
        • 9.7.1 Origen de la necesidad
        • 9.7.2 Búsqueda de colecciones
        • 9.7.3 Instalación de una colección
        • 9.7.4 Consulta de la lista de las colecciones
        • 9.7.5 Uso de una versión específica
        • 9.7.6 Uso de un archivo de dependencias
        • 9.7.7 Gestión de los datasources Grafana
  • Estrategia de ejecución y optimización
    • 1. Objetivo del capítulo y requisitos
    • 2. Estrategia de ejecución
      • 2.1 Contexto
      • 2.2 Gestión del número de tareas ejecutadas en paralelo
      • 2.3 Estrategia de ejecución: free
    • 3. Depurado con Ansible
      • 3.1 Contexto
      • 3.2 Activar el depurador
      • 3.3 Consultar información
      • 3.4 Modificación de un elemento
      • 3.5 Ejecutar de nuevo una tarea
      • 3.6 Definición de una variable
    • 4. Estudio del funcionamiento de Ansible
      • 4.1 Contexto
      • 4.2 Playbook de test
      • 4.3 Operaciones ejecutadas por Ansible
    • 5. Presentación de Mitogen
      • 5.1 Contexto
      • 5.2 Presentación de Mitogen
      • 5.3 Principio de funcionamiento de Mitogen
      • 5.4 Activación de Mitogen
      • 5.5 Ganancia de tiempo potencial y limitaciones
  • Tests en Ansible
    • 1. Objetivos del capítulo y requisitos
    • 2. Linter Ansible
      • 2.1 Contexto
      • 2.2 Ejecución del análisis
      • 2.3 Reglas disponibles
      • 2.4 Desactivación de las reglas
      • 2.5 Creación de nuevas reglas
    • 3. Presentación de Molecule
      • 3.1 Contexto
      • 3.2 Requisitos e instalación de Molecule
      • 3.3 Instalación de Docker
        • 3.3.1 Instalación de Docker Community Edition en Ubuntu
        • 3.3.2 Instalación alternativa
        • 3.3.3 Configuración de los accesos a Docker
        • 3.3.4 Comprobación de la instalación de Docker
    • 4. Uso de Molecule
      • 4.1 Archivo de configuración molecule.yml
      • 4.2 Creación de un rol Apache
        • 4.2.1 Inicialización del rol
        • 4.2.2 Estructura del rol
        • 4.2.3 Integración del rol Apache
        • 4.2.4 Playbook de convergencia
        • 4.2.5 Comprobación de la instalación
      • 4.3 Ejecución de los tests
      • 4.4 Depuración del problema
        • 4.4.1 Ejecución de Molecule en modo depuración
        • 4.4.2 Conexión al contenedor de tests
      • 4.5 Configuración para el funcionamiento con System D
        • 4.5.1 Modificación de la definición de la plataforma (campo platforms)
        • 4.5.2 Nueva ejecución de los tests
      • 4.6 Gestión de escenarios de Molecule
  • Salida Ansible y centralización de registros
    • 1. Objetivos del capítulo y requisitos
      • 1.1 Contexto y requisitos
      • 1.2 Archivos para descargar
    • 2. Gestión del retorno estándar de Ansible
      • 2.1 Contexto
      • 2.2 Archivo de configuración y cowsay
      • 2.3 Gestión de la coloración del resultado
    • 3. Gestión del callback de visualización
      • 3.1 Contexto
      • 3.2 Algunos plugins alternativos de visualización
      • 3.3 Profiling de las operaciones
    • 4. Centralización de los registros de ejecución
      • 4.1 Contexto
      • 4.2 Centralización de registros usando Syslog
      • 4.3 Centralización de registros usando Logstash (Elasticsearch)
      • 4.4 Centralización de llamadas gracias a Ara
        • 4.4.1 Origen de la creación de Ara
        • 4.4.2 Instalación de Ara
        • 4.4.3 Activación de Ara con Ansible
        • 4.4.4 Test de ejecución
        • 4.4.5 Ejecución del servidor de consulta Ara
    • 5. Escritura de un callback de visualización
      • 5.1 Contexto
      • 5.2 Estructura del programa
      • 5.3 Exposición del callback a Ansible
      • 5.4 Nomenclatura de las funciones de callback
      • 5.5 Ejemplo de una sobrecarga de la salida en caso de error
  • Escritura de módulos
    • 1. Objetivos del capítulo y requisitos
      • 1.1 Contexto y requisitos
      • 1.2 Archivos descargables
    • 2. Mecanismo de ejecución de los módulos Python
      • 2.1 Principio de funcionamiento
      • 2.2 Activación de los registros de ejecución
      • 2.3 Contenido del archivo temporal
      • 2.4 Extracción del programa autosuficiente
    • 3. ¿ Por qué escribir un módulo ?
      • 3.1 Contexto
      • 3.2 Consulta del esquema
    • 4. Creación de un módulo
      • 4.1 Ubicación del programa
      • 4.2 Encabezado del programa
      • 4.3 Especificación de los argumentos del módulo
      • 4.4 Gestión de los argumentos del módulo
      • 4.5 Obtención del valor de los argumentos
      • 4.6 Conexión a la base
      • 4.7 Transmisión del resultado a Ansible
      • 4.8 Test del módulo
      • 4.9 Tiempo de ejecución
      • 4.10 Gestión de la ayuda
        • 4.10.1 Variable DOCUMENTATION
        • 4.10.2 Variable EXAMPLES
        • 4.10.3 Variable RETURN
        • 4.10.4 Variable ANSIBLE METADATA
        • 4.10.5 Test de visualización
      • 4.11 El caso particular de los módulos facts
    • 5. Reentrada en la creación de un esquema de base
      • 5.1 Contexto
      • 5.2 Limitaciones del módulo
      • 5.3 Dependencias Python
      • 5.4 Encabezado del módulo
      • 5.5 Gestión de la base de datos
      • 5.6 Python 2 y 3
      • 5.7 Algoritmo del módulo
      • 5.8 Creación de un playbook de test
    • 6. Gestión de la opción diff de Ansible
      • 6.1 Contexto
      • 6.2 Principio de funcionamiento de diff
      • 6.3 Implementación del diff
    • 7. Gestión de la opción test (check mode)
      • 7.1 Activación del check mode
      • 7.2 Uso del modo check
  • Escritura de filtros Jinja y mecanismo de lookup
    • 1. Objetivos del capítulo y requisitos
      • 1.1 Contexto y requisitos
      • 1.2 Archivos descargables
    • 2. Los filtros Jinja
      • 2.1 De vuelta a los filtros Jinja
      • 2.2 Algunos ejemplos de uso de los filtros Jinja
        • 2.2.1 ¿ Cómo comprobar un filtro ?
        • 2.2.2 Valor por defecto
        • 2.2.3 Conversión de tipo simple
        • 2.2.4 Carga de YAML/JSON
        • 2.2.5 Gestión de las listas
        • 2.2.6 Cálculo de la suma de hash
        • 2.2.7 Combinación de la tabla de hash
    • 3. Test de comparación de contraseñas con grano de sal
      • 3.1 Algunos detalles sobre el almacenamiento de las contraseñas
      • 3.2 Reentrada en una contraseña
      • 3.3 Obtención del hash de la contraseña
      • 3.4 Escritura del filtro de comparación
        • 3.4.1 Ubicación del programa
        • 3.4.2 Función de comparación de contraseñas
        • 3.4.3 Mapping Ansible
        • 3.4.4 Comprobación del filtro
      • 3.5 Uso del filtro en el playbook
    • 4. Generación de contraseña
      • 4.1 Origen de la necesidad
      • 4.2 Principio de funcionamiento del generador de contraseñas
        • 4.2.1 Escritura del generador de contraseñas
      • 4.3 Playbook de test
    • 5. Obtención de información (lookup/query)
      • 5.1 Principio de funcionamiento
      • 5.2 Presentación de los lookups nativos de Ansible
        • 5.2.1 Lectura de los archivos: file
        • 5.2.2 Obtención del resultado de una plantilla
        • 5.2.3 Realización de una solicitud DNS: dig
      • 5.3 El mecanismo de lookup y los bucles
    • 6. Escribir su propio lookup: KeePass
      • 6.1 Contexto
      • 6.2 Dependencia Python
      • 6.3 Obtención de la contraseña
      • 6.4 Integración en Ansible
        • 6.4.1 Ubicación del archivo Python
        • 6.4.2 Exposición del objeto lookup
        • 6.4.3 Código del plugin
      • 6.5 Test del plugin
        • 6.5.1 Contenido de la base KeePass y presentación de KeePassX
        • 6.5.2 Creación del test
  • Las acciones Ansible
    • 1. Objetivos del capítulo y requisitos
      • 1.1 Contexto y requisitos
      • 1.2 Archivos para descargar
    • 2. Descubriendo las acciones Ansible
      • 2.1 Funcionamiento de las acciones Ansible
      • 2.2 Certificados SSL con Java
      • 2.3 Importación de un certificado con Ansible
    • 3. Creación del módulo de acción java_cert
      • 3.1 Ubicación del archivo de acción
      • 3.2 Estructura del módulo de acción java_cert
      • 3.3 Encabezado del módulo
      • 3.4 Contenido del método run
      • 3.5 Comprobación del módulo acción
  • Ansible: virtualización y nube
    • 1. Objetivos del capítulo y requisitos
      • 1.1 Contexto y requisitos
      • 1.2 Archivos para descargar
    • 2. Gestión de máquinas virtuales en ESX/VMware
      • 2.1 Contexto y requisitos
      • 2.2 Instalación de las bibliotecas necesarias
      • 2.3 Características del ESX
      • 2.4 Creación de la VM
      • 2.5 Personalización de las máquinas
      • 2.6 Gestión del inicio de la máquina
      • 2.7 Supresión de la VM
    • 3. Gestión de la nube AWS
      • 3.1 Contexto
      • 3.2 Configuración de los accesos a la API de Amazon
      • 3.3 Creación de una instancia EC2
      • 3.4 ¿ Cómo etiquetar (tags) las instancias ?
      • 3.5 Supresión de una instancia
      • 3.6 Acceso a la red de las máquinas
      • 3.7 Configuración de la clave SSH
      • 3.8 Modificación de la declaración de la instancia ec2
  • Comprobar Ansible con Docker
    • 1. Objetivos del capítulo y requisitos
      • 1.1 Contexto y requisitos
      • 1.2 Archivos para descargar
    • 2. Ansible, Docker y Systemd
      • 2.1 ¿ Cómo hacer convivir a Docker y Systemd ?
      • 2.2 Elección de las imágenes para lanzar
      • 2.3 Alimentación del archivo de inventario
      • 2.4 Playbook de creación de los contenedores
      • 2.5 Playbook para la supresión de los contenedores
    • 3. Las imágenes Docker
      • 3.1 Presencia del intérprete de Python
      • 3.2 Gestión de Docker con la ayuda de Ansible
        • 3.2.1 Introducción
        • 3.2.2 Idempotencia e inmutabilidad
        • 3.2.3 Imagen para desplegar
        • 3.2.4 Compilación de la imagen Docker
        • 3.2.5 Uso de la imagen Docker
  • Gestión de Kubernetes con ayuda de Ansible
    • 1. Objetivos del capítulo y requisitos
    • 2. Introducción a la implementación de elementos en Kubernetes
      • 2.1 Contenedores y pods
      • 2.2 Mecanismos de despliegue en Kubernetes
      • 2.3 Despliegue de pods en Kubernetes
        • 2.3.1 Keycloak
        • 2.3.2 Configuración de Keycloak
        • 2.3.3 Definición de un objeto StatefulSet
        • 2.3.4 Creación de una entrada de servicio
        • 2.3.5 Playbook de despliegue
        • 2.3.6 Comprobación del playbook de despliegue
      • 2.4 Creación de un operador para Keycloak
        • 2.4.1 Contexto
        • 2.4.2 Instalación de los requisitos
        • 2.4.3 Inicialización del operador
        • 2.4.4 Descripción de la estructura del operador
      • 2.5 Creación del operador
        • 2.5.1 Plantilla del objeto StatefulSet
        • 2.5.2 Variables por defecto
        • 2.5.3 Plantilla del objeto Service
        • 2.5.4 Creación de los objetos
    • 3. Test del operador
      • 3.1 Contexto
      • 3.2 Definición del nuevo tipo de objeto
      • 3.3 Instalación de los requisitos
      • 3.4 Creación de un playbook de test
      • 3.5 Comprobación y supresión de los objetos de test
      • 3.6 Lanzamiento del operador desde el exterior de un clúster
      • 3.7 Test de creación de un objeto Keycloak
      • 3.8 Comprobación de los objetos creados
    • 4. Despliegue del operador
      • 4.1 Contexto
      • 4.2 Configuración del registro Docker
      • 4.3 Construcción de la imagen del operador
      • 4.4 Despliegue del operador
      • 4.5 Comprobación de la instalación
      • 4.6 Comprobación del operador
      • 4.7 Registros de actividad del operador
    • índice

Autor

Yannig PERRÉMás información

Administrador de sistemas desde hace muchos años, Yannig PERRÉ está especializado, actualmente, en la configuración de servidores y en el despliegue de aplicaciones web. Yannig asocia a este conocimiento la confección de herramientas de monitoreo para gestionar los problemas de instalación, de resiliencia y de escalabilidad. Esta pericia, combinada con una larga experiencia en el mundo del Software Libre, le permiten ofrecer al lector un libro realmente eficaz en la implementación de Ansible.

Características

  • Número de páginas 521 páginas
  • Publicación marzo 2021
    • Encuadernación rústica - 17 x 21 cm
    • ISBN: 978-2-409-02978-3
    • EAN: 9782409029783
    • Ref. ENI: EPT2ANS
  • Publicación marzo 2021
    • HTML
    • ISBN: 978-2-409-02979-0
    • EAN: 9782409029790
    • Ref. ENI: LNEPT2ANS

Descargas

Al completar este formulario, acepta recibir información y comunicaciones comerciales sobre nuestros productos y servicios. Puede darse de baja de nuestra newsletter en cualquier momento. Si desea conocer más información acerca de nuestra política de protección de datos, pulse aquí.
  • Descargar los ejemplos del libro (129 Ko)