stafwag.cloud_localds
Ansible Rolle: cloud_localds
Eine Ansible-Rolle zur Erstellung von Cloud-Init-Konfigurations-Disk-Images.
Diese Rolle ist eine Hülle um den Befehl cloud-localds
.
Anforderungen
cloud-localds
Unterstützte GNU/Linux-Distributionen
Es sollte auf den meisten GNU/Linux-Distributionen funktionieren.cloud-localds
wird benötigt. cloud-localds
war auf Centos/RedHat 7 verfügbar, jedoch nicht auf RedHat 8. Sie müssen es manuell installieren, um die Rolle auf Centos/RedHat 8 zu verwenden.
- Archlinux
- Debian
- Centos 7
- RedHat 7
- Ubuntu
Rollenaufgaben, Tags, Variablen und Vorlagen
Aufgaben
install
Alle installationsbezogenen Aufgaben sind im
install
-Playbook definiert. Damit können Sie die erforderlichen Pakete installieren und den erforderlichen Dienst mittasks_from
in deninclude_role
,import_role
, … Ansible-Modulen starten/aktivieren.Siehe Beispiel unten.
Tags
install
Installiere die erforderlichen Pakete.
Spielbuchbezogene Variablen
- cloud_localds: "namespace"
- dest: Das Ziel-Image
- hostname: Der Hostname
- dir: optional, Standard:
/var/lib/libvirt/images
. Das Zielverzeichnis, wenn dest nicht definiert ist. - config: Die Benutzerdaten-Konfiguration
- network_config: Die Netzwerkkonfiguration
- config_template: Verwende eine Ansible-Vorlage für die Benutzerdaten-Konfiguration.
- network_config_template: Verwende eine Ansible-Vorlage für die Netzwerkkonfiguration.
- owner: uid, Standard 0 Der Dateibesitzer des Ziel-Images
- group: gid, Standard 0 Der Dateigruppe-Besitzer des Ziel-Images
- mode: Modus, Standard '0400' Die Berechtigungen des Ziel-Images
- overwrite: boolean, Standard: false Überschreibe die Ziel-ISO, wenn bereits vorhanden.
Die Rolle erstellt ein ISO-Disk-Image mit der Cloud-Init-Konfiguration.
Wenn cloud_localds.dest
definiert ist, werden die folgenden Dateien erstellt:
- {{ cloud_localds.dest }}_config.yml die Cloud-Init-Benutzerdaten
- {{ cloud_localds.dest }}_net_config.yml die Cloud-Init-Netzwerkkonfiguration (wenn network_config definiert ist)
- {{ cloud_localds.dest }} das ISO-Image mit der Cloud-Init-Konfiguration.
Wenn cloud_localds.dest nicht definiert ist, muss cloud_localds.hostname definiert werden. In diesem Fall werden die folgenden Dateien erstellt:
- {{ cloud_localds.dir }}/{{ cloud_localds.hostname }}_config.yml die Cloud-Init-Benutzerdaten
- {{ cloud_localds.dir }}/{{ cloud_localds.hostname }}_net_config.yml Cloud-Init-Netzwerkkonfiguration (wenn network_config definiert ist)
- {{ cloud_localds.dir }}/{{ cloud_localds.hostname }}_cloud-init.iso: das ISO-Image mit der Cloud-Init-Konfiguration.
Beispiel-Playbooks
Installiere das Cloud-Localds-Paket mit include_role
---
- name: Installiere libvirt & Co
gather_facts: true
hosts: all
become: true
tasks:
- name: Installiere die Anforderungen
include_role:
name: "{{ item }}"
tasks_from:
install
with_items:
- stafwag.libvirt
- stafwag.qemu_img
- stafwag.cloud_localds
tags:
- install
Erstelle ein Cloud-Init ISO mit dem definierten Ziel
- name: Erstelle 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') }}"
Erstelle ein Cloud-Init ISO mit dem definierten Hostnamen
---
- name: Erstelle 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') }}"
Verwende Ansible-Vorlagen
---
- name: Erstelle 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"
Lizenz
MIT/BSD
Autoreninformationen
Erstellt von Staf Wagemakers, E-Mail: staf@wagemakers.be, Website: http://www.wagemakers.be.
An ansible role to create cloud-init config disk images.
ansible-galaxy install stafwag.cloud_localds