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 mit tasks_from in den include_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.

Über das Projekt

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

Installieren
ansible-galaxy install stafwag.cloud_localds
GitHub Repository
Lizenz
mit
Downloads
547
Besitzer