stafwag.cloud_localds

Rol de Ansible: cloud_localds

Una rol de Ansible para crear imágenes de discos de configuración de cloud-init. Esta rol es un envoltorio alrededor del comando cloud-localds.

Requisitos

cloud-localds

Distribuciones GNU/Linux Soportadas

Debería funcionar en la mayoría de las distribuciones GNU/Linux. Se requiere cloud-localds. cloud-localds estaba disponible en Centos/RedHat 7, pero no en Redhat 8. Necesitarás instalarlo manualmente para usar la rol en Centos/RedHat 8.

  • Archlinux
  • Debian
  • Centos 7
  • RedHat 7
  • Ubuntu

Tareas de la rol, etiquetas, variables y plantillas

Tareas

  • instalar

    Todas las tareas relacionadas con la instalación están definidas en el playbook de instalar. Esto te permite instalar los paquetes requeridos y iniciar/habilitar el servicio necesario con tasks_from en los módulos de Ansible como include_role, import_role, …

    Véase el ejemplo a continuación.

Etiquetas

  • instalar

    Instala los paquetes requeridos.

Variables relacionadas con el playbook

  • cloud_localds: "namespace"
    • dest: La imagen de destino
    • hostname: El nombre del host
    • dir: opcional, por defecto: /var/lib/libvirt/images. El directorio de destino cuando dest no está definido.
    • config: La configuración de datos de usuario
    • network_config: La configuración de red
    • config_template: Utiliza una plantilla de Ansible para la configuración de datos de usuario.
    • network_config_template: Utiliza una plantilla de Ansible para la configuración de red.
    • owner: uid por defecto 0 El propietario del archivo de la imagen de destino
    • group: gid por defecto 0 El grupo propietario del archivo de la imagen de destino
    • mode: modo por defecto '0400' Los permisos de la imagen de destino
    • overwrite: booleano por defecto: false Sobrescribir la iso de destino si ya existe.

La rol crea una imagen de disco iso con la configuración de cloud-init. Cuando se define cloud_localds.dest, se crean los siguientes archivos:

  • {{ cloud_localds.dest }}_config.yml la configuración de datos de usuario de cloud-init
  • {{ cloud_localds.dest }}_net_config.yml la configuración de red de cloud-init (si se define network_config)
  • {{ cloud_localds.dest }} la imagen iso con la configuración de cloud-init.

Cuando cloud_localds.dest no está definido, se necesita definir cloud_localds.hostname. En este caso, se crearán los siguientes archivos:

  • {{ cloud_localds.dir }}/{{ cloud_localds.hostname }}_config.yml la configuración de datos de usuario de cloud-init
  • {{ cloud_localds.dir }}/{{ cloud_localds.hostname }}_net_config.yml la configuración de red de cloud-init (si se define network_config)
  • {{ cloud_localds.dir }}/{{ cloud_localds.hostname }}_cloud-init.iso: la imagen iso con la configuración de cloud-init.

Ejemplos de Playbooks

Instalar el paquete cloud-localds con include_role

---
- nombre: Instalar libvirt y más
  gather_facts: true 
  hosts: all
  become: true
  tasks:
    - nombre: Instalar los requisitos
      include_role:
        name: "{{ item }}"
        tasks_from:
          install
      with_items:
        - stafwag.libvirt 
        - stafwag.qemu_img
        - stafwag.cloud_localds
      tags:
        - instalar

Crear una iso de cloud-init con el destino definido

- nombre: Crear config.iso
  gather_facts: no 
  become: true
  hosts: localhost
  roles:
    - role: stafwag.cloud_localds
      vars:
        cloud_localds:
          dest: /var/lib/libvirt/images/tstdebian_cloudinit.iso
          config: "{{ lookup('template','files/mytstdebian.j2') }}"
          network_config: "{{ lookup('template','files/mytstdebian.j2') }}"

Crear una iso de cloud-init con el nombre del host definido

---
- nombre: Crear config.iso
  gather_facts: no 
  become: true
  hosts: localhost
  roles:
    - role: stafwag.cloud_localds
      vars:
        cloud_localds:
          hostname: tstdebian 
          config: "{{ lookup('template','files/mytstdebian.j2') }}"
          network_config: "{{ lookup('template','files/mytstdebian.j2') }}"

Usar plantillas de Ansible

---
- nombre: Crear config.iso
  gather_facts: true 
  become: true
  hosts: localhost
  roles:
    - role: stafwag.cloud_localds
      vars:
        cloud_localds:
          hostname: tstdebian 
          config_template: "files/debian/debian.j2"
          network_config_template: "files/debian/debian.j2"

Licencia

MIT/BSD

Información del Autor

Creado por Staf Wagemakers, email: staf@wagemakers.be, sitio web: http://www.wagemakers.be.

Acerca del proyecto

An ansible role to create cloud-init config disk images.

Instalar
ansible-galaxy install stafwag.cloud_localds
Licencia
mit
Descargas
547
Propietario