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äßigOS_AUTH_URL.project: OpenStack Tenant/Projekt. StandardmäßigOS_TENANT_NAME.username: OpenStack Benutzername. StandardmäßigOS_USERNAME.password: OpenStack Passwort. StandardmäßigOS_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 FormKEY: 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, wennos_images_uploadaufTruegesetzt ist. Dies ist standardmäßigos_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-Klonversion: optionale Git-Referenz (Branch, Tag, Hash) für das Klonen. StandardmäßigHEADelements_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
- Stig Telfer (stig@stackhpc.com)
Role to generate guest instance images and upload to OpenStack
ansible-galaxy install stackhpc.os-images