stackhpc.os-images
NOTE :
Ce dépôt n'est plus maintenu - le rôle a été transféré vers la collection Ansible maintenant ➡️ https://github.com/stackhpc/ansible-collection-openstack
Images OpenStack
Ce rôle génère des images d'instance invitées en utilisant disk-image-builder et les télécharge sur OpenStack en utilisant le module os_image
.
Exigences
Les API OpenStack doivent être accessibles depuis l'hôte cible. Les informations d'identification du client doivent être définies dans l'environnement ou en utilisant le format clouds.yaml
.
Vous devez utiliser un virtualenv avec l'installation des paquets système activée, car ce rôle dépend des paquets python installés par le gestionnaire de paquets, par exemple :
virtualenv --system-site-packages ~/venvs/dib
Variables du Rôle
os_images_package_dependencies_extra
: Liste des paquets supplémentaires à installer sur l'hôte de construction.
os_images_cache
: un chemin vers un répertoire dans lequel mettre en cache les artefacts de construction. Par défaut, il est défini sur ~/disk_images
.
NOTE
: de nouvelles images NE seront PAS construites, même si des modifications sont apportées à la configuration, si une image est déjà mise en cache. Utilisez le flag force_rebuild
pour appliquer les nouvelles modifications de configuration.
os_images_auth_type
: point d'accès d'authentification OpenStack et informations d'identification. Par défaut, cela vaut password
.
os_images_auth
: point d'accès d'authentification OpenStack et informations d'identification. Par exemple, un dictionnaire de la forme :
auth_url
: URL du point d'accès d'authentification Keystone. Par défaut, cela vautOS_AUTH_URL
.project
: locataire/projet OpenStack. Par défaut, cela vautOS_TENANT_NAME
.username
: nom d'utilisateur OpenStack. Par défaut, cela vautOS_USERNAME
.password
: mot de passe OpenStack. Par défaut, cela vautOS_PASSWORD
.
os_images_region
: Définir une région pour télécharger les images. Par défaut, c'est None.
os_images_cacert
est un chemin optionnel vers un bundle de certificats CA.
os_images_interface
est le type d'URL du point d'accès à récupérer dans le catalogue de services. Il peut être public
, admin
ou internal
.
os_images_list
est une liste de dictionnaires YAML, où elements
et image_url
sont mutuellement exclusifs, chacun contenant :
name
: le nom de l'image à utiliser dans OpenStack.elements
: une liste des éléments de diskimage-builder à inclure dans l'image.image_url
: l'URL de l'emplacement de l'image sur Internet.checksum
: Checksum pour valider une image téléchargée. Format ::<checksum|url>. env
: (facultatif) variables d'environnement à définir pour les paramètres de diskimage-builder. C'est un dictionnaire de la formeCLE : VALEUR
.packages
: (facultatif) liste des paquets à installer dans l'image.size
: (facultatif) taille à donner au système de fichiers de l'image.properties
: (facultatif) dictionnaire des propriétés à définir sur l'image glance. Des propriétés d'image courantes sont disponibles ici.type
: (facultatif) type d'image. Par défaut, DIB est qcow2. Les formats d'image sont disponibles ici.force_rebuild
: (facultatif) indicateur booléen indiquant si l'image doit toujours être construite (même si une image existante avec ce nom a déjà été construite). Les images sur glance seront remplacées sios_images_upload
est défini surTrue
. Cela vaut par défautos_images_force_rebuild
si laissé non défini.is_public
: (facultatif) si l'image doit être visible par tous les projets ou rester privée.owner
: (facultatif) ID du projet qui doit posséder l'image téléchargée.
os_images_common
: Un ensemble d'éléments à inclure dans chaque image listée. Par défaut, c'est cloud-init enable-serial-console stable-interface-names
.
os_images_dib_pkg_name
: Personnaliser de manière optionnelle le paramètre de nom passé au module ansible.builtin.pip lors de l'installation de diskimage-builder. Cela peut être utilisé pour installer diskimage-builder à partir du contrôle de version.
os_images_dib_version
: Définir de manière optionnelle une version de diskimage-builder à installer. Par défaut, cela n'est pas contraint.
os_images_git_elements
: Une liste facultative d'éléments à tirer de github, à déployer localement pour incorporation dans les images. Fournir une liste de dictionnaires avec les paramètres suivants :
repo
: URL d'un dépôt git à cloner (s'il n'est pas déjà présent).local
: chemin local pour le clonage git.version
: référence git optionnelle (branche, tag, hash) pour le clonage. Par défaut, cela vautHEAD
.elements_path
: chemin relatif optionnel vers les éléments dans le dépôt.
os_images_elements
: Une liste optionnelle de chemins pour des éléments DIB spécifiques au site.
os_images_upload
: Savoir si les images construites doivent être téléchargées sur Glance. Par défaut, cela vaut True
.
os_images_force_rebuild
: Savoir si une reconstruction de l'image DIB doit être forcée. Les images sur Glance seront remplacées par la nouvelle image construite si os_images_upload
est fixé à True
. Par défaut, cela vaut False
.
os_images_public
: Savoir si les images téléchargées sont publiques. Par défaut, cela vaut True
- notez que cela nécessite des autorisations administratives.
os_images_venv
: Chemin vers le virtualenv dans lequel installer les dépendances python pour télécharger les images.
os_images_dib_venv
: Chemin vers le virtualenv dans lequel installer DIB pour construire les images.
os_images_promote
: Savoir si les anciennes images doivent être retirées et les nouvelles promues. Par défaut, cela vaut False
.
os_images_build
: Savoir si les images doivent être construites.
os_images_name_suffix
: Suffixe d'image qui serait retiré lors de la promotion de l'image, par exemple : -rc, -dev, -test, etc. Obligatoire pour la fonctionnalité de promotion. Vide par défaut.
os_images_hide
: Savoir si les images doivent être cachées dans la liste de Glance. Cacher les images est disponible comme option dans le processus de retrait/promotion des images. Par défaut, cela vaut False
.
Dépendances
Exemple de Playbook
Le playbook suivant génère une image invité et la télécharge sur OpenStack :
---
- nom : Générer une image invitée et la télécharger
hôtes : openstack
rôles :
- rôle : 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
Informations sur l'Auteur
- Stig Telfer (stig@stackhpc.com)
Role to generate guest instance images and upload to OpenStack
ansible-galaxy install stackhpc.os-images