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 contasks_from
en los módulos de Ansible comoinclude_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.
An ansible role to create cloud-init config disk images.
ansible-galaxy install stafwag.cloud_localds