Automatice la implementación de máquinas virtuales con Ansible: libros de jugadas

Todos apreciamos el valor de la automatización. El uso de playbooks de Ansible para implementar máquinas virtuales en el entorno de virtualización de Red Hat es eficiente, coherente y sencillo. Todo comienza con un buen diseño e infraestructura, de lo que hablé en parte uno de esta serie de artículos. Dentro segunda parte, agregué el uso de plantillas para la automatización. Aquí, en la tercera parte, ofrezco dos libros de jugadas de Ansible que puede usar para implementar máquinas virtuales en su propio entorno.

El primer libro de jugadas de muestra está diseñado para implementar una sola máquina virtual. El segundo libro de jugadas implementa un grupo de máquinas virtuales.

Índice

    Ejemplo de libro de jugadas de Ansible

    El primer libro de jugadas contiene dos partes:

    • Crear una máquina virtual - parte de este juego se colocará en un extracto de bloque, para eliminar el token de autenticación más adelante.
    • Después de configurar una máquina virtual - este juego realiza tareas posteriores a la instalación. En este ejemplo, la tarea instala el qemu-guest-agent-x86_64.rpm paquete.

    El libro de jugadas se guarda en un archivo llamado single-vm.yml.

    Ejecutar el libro de jugadas

    el single-vm.yml libro de jugadas se ejecuta de dos maneras diferentes dependiendo de cómo juegue el ansible-bóveda la contraseña.

    Utilice un archivo de contraseña:

    $ ansible-playbook -e "vmchoice=vm01" --vault-password-file /path/to/my/vault-password-file single-vm.yml

    Solicitar una contraseña:

    $ ansible-playbook -e "vmchoice=vm01" –ask-vault-pass single-vm.yml

    Ejemplo de un playbook de Ansible para implementar muchas máquinas virtuales

    La iteración en el libro de jugadas anterior se puede hacer usando diferentes técnicas. por ejemplo, un for loop se ejecuta en un shell bash simple. Sin embargo, necesitamos algo de lógica para verificar si los archivos de configuración están disponibles en este nivel, y es más fácil copiar la lógica al libro de jugadas anterior. Además, la iteración asume que ha utilizado un archivo de contraseña para el ansible-bóveda. Sin embargo, esto se puede cambiar si es necesario.

    El código de muestra aquí se repetirá para implementar varias máquinas virtuales que ejecutan la misma aplicación o en el mismo centro de datos. Sin embargo, los bucles con condiciones más complicadas se logran modificando el código.

    El libro de jugadas se guarda en un archivo llamado varios-vms.yml.

    Nota: Los errores se ignoran en este libro de jugadas. El libro de jugadas puede continuar si se pasa un sitio o sistema inexistente al libro de jugadas.

    Ejecutar el libro de jugadas

    Este libro de jugadas se ejecuta de la siguiente manera:

    $ ansible-playbook -e "system=webserver" many-vms.yml

    Donde

    $ ansible-playbook -e "site=first" many-vms.yml

    Problemas y depuración

    Al adaptar este libro de jugadas de muestra, puede encontrarse con algunos problemas. Algunos de los ejemplos más comunes incluyen errores de sintaxis, compatibilidad con módulos y problemas de lógica.

    Sangría: la sintaxis YAML es muy sensible al espaciado adecuado. Utilice un editor capaz de reconocer el formato YAML. El editor más común es vim, claro. Agregue la siguiente línea a la .vimrc archivo en la raíz del directorio de inicio del usuario para vim puede ser más compatible con YAML.

    autocmd FileType yaml setlocal ai ts=2 sw=2 et number

    Compatibilidad con complementos: si se usa la versión comunitaria de Ansible y uno de los mods no funciona, consulte el sitio de GitHub para obtener el complemento. Sin embargo, antes de usar un módulo, verifique que el módulo aún sea compatible con el versión actual de Ansible.

    Lógica: para problemas relacionados con la lógica en sí, inicie sesión en el #ansible Canal IRC habilitado nudo libre. La comunidad allí es muy útil.

    Mientras ejecuta un libro de jugadas, es posible que necesite resultados más detallados para la depuración. Siga este enlace para diferentes formas de depurar la ejecución.

    Conclusión

    Si está buscando integrar la automatización de Ansible con la implementación de VM en RHV, estos dos libros de jugadas lo ayudarán a comenzar. Obviamente, puede modificarlos según las necesidades de su organización.

    El primer artículo proporciona los objetivos y los conceptos de diseño necesarios para establecer un entorno de automatización sólido. En el artículo dos, creamos este entorno y configuramos los componentes esenciales. Finalmente, aquí en el artículo tres, hemos creado algunos manuales básicos para administrar nuestras implementaciones. También hay consejos y trucos en los tres artículos para diseño, soporte y resolución de problemas. También se incluyen muchas referencias.

    Es hora de comenzar su propio proceso de implementación de VM automatizado.

    Continuar con esta serie

    Automatice la implementación de máquinas virtuales con Ansible: diseño (parte 1)

    Automatice la implementación de máquinas virtuales con Ansible: automatización (parte 2)

    Las referencias

    Documentación para Red Hat Virtualización 4.3

    Documentación de Ansible

    Ejemplos de libros de jugadas

    Las listas de códigos para libros de jugadas son demasiado largas para caber aquí. Utilice los enlaces de GitHub a continuación para ver y copiar los archivos YAML.

    Libro de jugadas 1 - single-vm.yml

    Libro de jugadas 2 - many-vms.yml

    Artículos de interés

    Subir