stackhpc.os-images

HINWEIS:

Dieses Repository wird nicht mehr gewartet - die Rolle wurde jetzt zu Ansible Sammlung verschoben ➡️ https://github.com/stackhpc/ansible-collection-openstack

OpenStack Bilder

Diese Rolle erstellt Gastinstanzbilder mit disk-image-builder und lädt sie mit dem os_image Modul in OpenStack hoch.

Anforderungen

Die OpenStack APIs müssen vom Zielhost aus zugänglich sein. Die Client-Anmeldeinformationen sollten in der Umgebung gesetzt sein oder im clouds.yaml Format verwendet werden.

Du musst ein Virtualenv mit aktivierten Systempaketen verwenden, da diese Rolle auf Python-Paketen basiert, die vom Paketmanager installiert werden, z. B.:

virtualenv --system-site-packages ~/venvs/dib

Rollenvariablen

os_images_package_dependencies_extra: Liste zusätzlicher Pakete, die auf dem Build-Host installiert werden sollen.

os_images_cache: Ein Pfad zu einem Verzeichnis, in dem Build-Artefakte zwischengespeichert werden. Standardmäßig ~/disk_images HINWEIS: Neue Bilder werden NICHT erstellt, selbst wenn Änderungen in der Konfiguration vorgenommen wurden, wenn ein Bild bereits zwischengespeichert ist. Verwende das force_rebuild Flag, um neue Konfigurationsänderungen anzuwenden.

os_images_auth_type: OpenStack Authentifizierungs-Endpoint und Anmeldeinformationen. Standardmäßig password.

os_images_auth: OpenStack Authentifizierungs-Endpoint und Anmeldeinformationen. Zum Beispiel ein Dictionary der Form:

  • auth_url: Keystone Auth-Endpoint URL. Standardmäßig OS_AUTH_URL.
  • project: OpenStack Tenant/Projekt. Standardmäßig OS_TENANT_NAME.
  • username: OpenStack Benutzername. Standardmäßig OS_USERNAME.
  • password: OpenStack Passwort. Standardmäßig OS_PASSWORD.

os_images_region: Definiere eine Region, um die Bilder hochzuladen. Standard ist None.

os_images_cacert: Ein optionaler Pfad zu einem CA-Zertifikat-Bundle.

os_images_interface: Der Typ der Endpoint-URL, um den Dienstkatalog abzurufen. Kann einer von public, admin oder internal sein.

os_images_list: Eine Liste von YAML-Dictionaries, wobei elements und image_url gegenseitig ausschließend sind, wo jedes die folgenden enthält:

  • name: der Bildname, der in OpenStack verwendet werden soll.
  • elements: Eine Liste von Diskimage-Builder-Elementen, die in das Bild integriert werden sollen.
  • image_url: die URL zum Speicherort des Bildes im Internet.
  • checksum: Prüfziffer zur Validierung eines heruntergeladenen Bildes. Format: :<checksum|url>.
  • env: (optional) Umgebungsvariablen, die für die Diskimage-Builder-Parameter definiert werden sollen. Dies ist ein Dictionary der Form KEY: VALUE.
  • packages: (optional) Liste von Paketen, die im Bild installiert werden sollen.
  • size: (optional) Größe des Dateisystems des Bildes.
  • properties: (optional) Dictionary von Eigenschaften, die auf dem Glance-Bild gesetzt werden sollen. Gängige Bild-Eigenschaften sind hier verfügbar.
  • type: (optional) Bildtyp. Standardmäßig ist der DIB qcow2. Bildformate sind hier verfügbar.
  • force_rebuild: (optional) Boolesches Flag, das angibt, ob das Bild immer gebaut werden soll (auch wenn ein bestehendes Bild mit diesem Namen bereits erstellt wurde). Die Bilder auf Glance werden ersetzt, wenn os_images_upload auf True gesetzt ist. Dies ist standardmäßig os_images_force_rebuild, wenn es nicht gesetzt ist.
  • is_public: (optional) ob das Bild als für alle Projekte sichtbar oder privat gehalten werden soll.
  • owner: (optional) ID des Projekts, das das hochgeladene Bild besitzen soll.

os_images_common: Eine Reihe von Elementen, die in jedes aufgelistete Bild eingeschlossen werden. Standardmäßig cloud-init enable-serial-console stable-interface-names.

os_images_dib_pkg_name: Optional den Namen anpassen, der an das ansible.builtin.pip Modul übergeben wird, wenn diskimage-builder installiert wird. Dies kann verwendet werden, um diskimage-builder aus der Versionskontrolle zu installieren.

os_images_dib_version: Optional eine Version von diskimage-builder festlegen, die installiert werden soll. Standardmäßig ist dies nicht eingeschränkt.

os_images_git_elements: Eine optionale Liste von Elementen, die von GitHub abgerufen und lokal bereitgestellt werden sollen, um in die Bilder integriert zu werden. Eine Liste von Dictionaries mit den folgenden Parametern bereitstellen:

  • repo: URL zu einem Git-Repo zum Klonen (falls noch nicht vorhanden)
  • local: lokaler Pfad für Git-Klon
  • version: optionale Git-Referenz (Branch, Tag, Hash) für das Klonen. Standardmäßig HEAD
  • elements_path: optionaler relativer Pfad zu Elementen im Repository.

os_images_elements: Eine optionale Liste von Pfaden für standortspezifische DIB-Elemente.

os_images_upload: Ob die erstellten Bilder an Glance hochgeladen werden sollen. Standardmäßig True.

os_images_force_rebuild: Ob das DIB-Bild neu erstellt werden soll. Die Bilder auf Glance werden mit dem neu gebauten Bild ersetzt, wenn os_images_upload auf True gesetzt ist. Standardmäßig False.

os_images_public: Ob die hochgeladenen Bilder öffentlich sind. Standardmäßig True - beachten Sie, dass dies Admin-Berechtigungen erfordert.

os_images_venv: Pfad zu Virtualenv, in dem die Python-Abhängigkeiten zum Hochladen der Bilder installiert werden sollen.

os_images_dib_venv: Pfad zu Virtualenv, in dem DIB zum Erstellen von Bildern installiert werden soll.

os_images_promote: Ob alte Bilder in den Ruhestand versetzt und neue Bilder gefördert werden sollen. Standardmäßig False.

os_images_build: Ob die Bilder erstellt werden sollen.

os_images_name_suffix: Bildsuffix, das während der Bildförderung entfernt werden soll, zum Beispiel: -rc, -dev, -test usw. Verpflichtend für die Promotionsfunktion. Standardmäßig leer.

os_images_hide: Ob die Bilder in der Glance-Liste ausgeblendet werden sollen. Das Ausblenden von Bildern steht als Option im Ruhestand/Förderungsprozess zur Verfügung. Standardmäßig False.

Abhängigkeiten

Beispiel-Playbook

Das folgende Playbook erstellt ein Gastbild und lädt es in OpenStack hoch:

---
- name: Erstelle Gastbild und lade hoch
  hosts: openstack
  roles:
    - role: stackhpc.os-images
      os_images_auth:
        auth_url:     "{{ lookup('env','OS_AUTH_URL') }}"
        username:     "{{ lookup('env','OS_USERNAME') }}"
        password:     "{{ lookup('env','OS_PASSWORD') }}"
        project_name: "{{ lookup('env','OS_TENANT_NAME') }}"
      os_images_list:
      - name: FedoraCore
        elements:
          - fedora
          - selinux-permissive
          - alaska-extras
        env:
          DIB_ALASKA_DELETE_REPO: "y"
          DIB_ALASKA_PKGLIST: "pam-python pam-keystone"
      - name: FedoraAtomic27
        image_url: https://ftp.icm.edu.pl/pub/Linux/dist/fedora-alt/atomic/stable/Fedora-Atomic-27-20180326.1/CloudImages/x86_64/images/Fedora-Atomic-27-20180326.1.x86_64.qcow2
        properties:
          os_distro: fedora-atomic
        type: qcow2

Autoreninformation

Über das Projekt

Role to generate guest instance images and upload to OpenStack

Installieren
ansible-galaxy install stackhpc.os-images
GitHub Repository
Lizenz
apache-2.0
Downloads
201.6k
Besitzer
StackHPC develops OpenStack capabilities for research computing use cases. Through extensive experience, we understand HPC and cloud.