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_upload
aufTrue
gesetzt 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äßigHEAD
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
- Stig Telfer (stig@stackhpc.com)
Role to generate guest instance images and upload to OpenStack
ansible-galaxy install stackhpc.os-images