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 vaut OS_AUTH_URL.
  • project : locataire/projet OpenStack. Par défaut, cela vaut OS_TENANT_NAME.
  • username : nom d'utilisateur OpenStack. Par défaut, cela vaut OS_USERNAME.
  • password : mot de passe OpenStack. Par défaut, cela vaut OS_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 forme CLE : 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 si os_images_upload est défini sur True. Cela vaut par défaut os_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 vaut HEAD.
  • 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

À propos du projet

Role to generate guest instance images and upload to OpenStack

Installer
ansible-galaxy install stackhpc.os-images
Licence
apache-2.0
Téléchargements
201.6k
Propriétaire
StackHPC develops OpenStack capabilities for research computing use cases. Through extensive experience, we understand HPC and cloud.