stafwag.cloud_localds
Rôle Ansible : cloud_localds
Un rôle Ansible pour créer des images de disque de configuration cloud-init.
Ce rôle est un wrapper autour de la commande cloud-localds
.
Exigences
cloud-localds
Distributions GNU/Linux supportées
Cela devrait fonctionner sur la plupart des distributions GNU/Linux.
cloud-localds
est requis. cloud-localds
était disponible sur
Centos/RedHat 7 mais pas sur Redhat 8. Vous devrez l'installer manuellement
pour utiliser le rôle sur Centos/RedHat 8.
- Archlinux
- Debian
- Centos 7
- RedHat 7
- Ubuntu
Tâches, étiquettes, variables et modèles du rôle
Tâches
installer
Toutes les tâches liées à l'installation sont définies dans le playbook
install
. Cela vous permet d'installer les paquets requis et de démarrer/activer le service nécessaire avectasks_from
dans le moduleinclude_role
,import_role
, etc.Voir l'exemple ci-dessous.
Étiquettes
installer
Installer les paquets requis.
Variables liées au playbook
- cloud_localds : "espace de noms"
- dest : L'image de destination
- hostname : Le nom d'hôte
- dir : optionnel par défaut :
/var/lib/libvirt/images
. Le répertoire de destination lorsque dest n'est pas défini. - config : La configuration de données utilisateur
- network_config : La configuration réseau
- config_template : Utiliser un modèle Ansible pour la configuration de données utilisateur.
- network_config_template : Utiliser un modèle Ansible pour la configuration réseau.
- owner : uid par défaut 0 Le propriétaire du fichier de l'image de destination
- group : gid par défaut 0 Le groupe propriétaire du fichier de l'image de destination
- mode : mode par défaut '0400' Les permissions de l'image de destination
- overwrite : booléen par défaut : false Écraser l'iso de destination si elle existe déjà.
Le rôle crée une image disque iso avec la configuration cloud-init.
Lorsque cloud_localds.dest
est défini, les fichiers suivants sont créés :
- {{ cloud_localds.dest }}_config.yml les données utilisateur cloud-init
- {{ cloud_localds.dest }}_net_config.yml la configuration réseau cloud-init ( si network_config est défini)
- {{ cloud_localds.dest }} l'image iso avec la configuration cloud-init.
Lorsque cloud_localds.dest n'est pas défini, cloud_localds.hostname doit être défini. Dans ce cas, les fichiers suivants seront créés :
- {{ cloud_localds.dir }}/{{ cloud_localds.hostname }}_config.yml les données utilisateur cloud-init
- {{ cloud_localds.dir }}/{{ cloud_localds.hostname }}_net_config.yml la configuration réseau cloud-init ( si network_config est défini)
- {{ cloud_localds.dir }}/{{ cloud_localds.hostname }}_cloud-init.iso : l'image iso avec la configuration cloud-init.
Exemples de Playbooks
Installer le paquet cloud-localds avec include_role
---
- nom : Installer libvirt & co
collecter_faits : vrai
hôtes : tous
devenir : vrai
tâches :
- nom : Installer les exigences
include_role:
name: "{{ item }}"
tasks_from:
install
with_items:
- stafwag.libvirt
- stafwag.qemu_img
- stafwag.cloud_localds
étiquettes :
- installer
Créer un iso cloud-init avec dest défini
- nom : Créer config.iso
collecter_faits : non
devenir : vrai
hôtes : localhost
rôles :
- rôle : stafwag.cloud_localds
vars:
cloud_localds:
dest: /var/lib/libvirt/images/tstdebian_cloudinit.iso
config: "{{ lookup('template','files/mytstdebian.j2') }}"
network_config: "{{ lookup('template','files/mytstdebian.j2') }}"
Créer un iso cloud-init avec le nom d'hôte défini
---
- nom : Créer config.iso
collecter_faits : non
devenir : vrai
hôtes : localhost
rôles :
- rôle : stafwag.cloud_localds
vars:
cloud_localds:
hostname: tstdebian
config: "{{ lookup('template','files/mytstdebian.j2') }}"
network_config: "{{ lookup('template','files/mytstdebian.j2') }}"
Utiliser des modèles ansible
---
- nom : Créer config.iso
collecter_faits : vrai
devenir : vrai
hôtes : localhost
rôles :
- rôle : stafwag.cloud_localds
vars:
cloud_localds:
hostname: tstdebian
config_template: "files/debian/debian.j2"
network_config_template: "files/debian/debian.j2"
Licence
MIT/BSD
Informations sur l'auteur
Créé par Staf Wagemakers, email : staf@wagemakers.be, site web : http://www.wagemakers.be.
An ansible role to create cloud-init config disk images.
ansible-galaxy install stafwag.cloud_localds