Assez de recherches sur d'autres sites Web puisque vous êtes au bon endroit, nous avons la solution qu'il vous faut pour trouver et sans problème.
Note
Ce plugin fait partie de la collection community.general (version 2.0.1).
Pour l'installer, utilisez : ansible-galaxy collection install community.general
.
Pour l'utiliser dans un playbook, spécifiez : community.general.one_vm
.
- Synopsis
- Exigences
- Paramètres
- Exemples
- Valeurs de retour
Synopsis
- Gère les instances OpenNebula
Exigences
Les exigences ci-dessous sont nécessaires sur l'hôte qui exécute ce module.
- pyone
Paramètres
Paramètre | Choix/par défaut | Commentaires |
---|---|---|
api_passwordchaîne de caractères | Mot de passe de l'utilisateur pour se connecter au serveur RPC d'OpenNebula. S'il n'est pas défini, la valeur de l'option ONE_PASSWORD variable d'environnement est utilisée.Si les deux api_username ou api_mot de passe ne sont pas définis, alors il essaiera de s'authentifier avec le fichier ONE auth. Le chemin par défaut est "~/.one/one_auth".Définir la variable d'environnement ONE_AUTH pour remplacer ce chemin. |
|
api_urlchaîne de caractères | URL du serveur RPC d'OpenNebula.Il est recommandé d'utiliser HTTPS afin que le nom d'utilisateur/mot de passe ne soit pas transféré sur le réseau en clair.Si elle n'est pas définie, alors la valeur de l'attribut ONE_URL est utilisée. |
|
api_usernamechaîne de caractères | Nom de l'utilisateur pour se connecter au serveur RPC d'OpenNebula. Si ce n'est pas le cas, la valeur de la propriété ONE_USERNAME variable d'environnement est utilisée. |
|
attributsdictionnaire | Par défaut : {} |
Un dictionnaire d'attributs clé/valeur à ajouter aux nouvelles instances, ou forsetting. state d'instances avec ces attributs.Les clés ne sont pas sensibles à la casse et OpenNebula les convertit automatiquement en majuscules.Attention NAME est un attribut spécial qui définit le nom de la VM lorsqu'elle est déployée.# peuvent être ajoutés à l'attribut NAME et le module ajoutera automatiquement des index aux noms des VM.par exemple ':'. NAME':' foo-### créerait des VMs avec des noms foo-000 , foo-001 ,...Lorsqu'il est utilisé avec count_attributes et exact_count le module correspondra au nom de base sans la partie index. |
comptenombre entier | Par défaut : 1 |
Nombre d'instances à lancer |
count_attributesdictionnaire | Un dictionnaire d'attributs clé/valeur qui ne peut être utilisé qu'avec.exact_count pour déterminer combien de nœuds basés sur un critère d'attributs spécifiques doivent être déployés. Ceci peut être exprimé de plusieurs façons et est montré dans la section EXEMPLES. |
|
count_labelsliste / elements=chaîne | Une liste d'étiquettes qui ne peuvent être utilisées qu'avec les éléments suivants exact_count pour déterminer combien de nœuds basés sur un critère d'étiquettes spécifique doivent être déployés.Cela peut être exprimé de plusieurs façons et est montré dans la section EXEMPLES. |
|
cpufloat | Pourcentage du processeur divisé par 100 requis pour la nouvelle instance. La moitié de l'aprocesseur est écrite 0,5. | |
datastore_idnombre entier ajouté dans la version 0.2.0 de community.general | Nom du Datastore à utiliser pour créer un nouvel instace. | |
nom_datastorechaîne de caractères ajouté dans la version 0.2.0 de community.general | Nom du Datastore à utiliser pour créer un nouvel instace. | |
disk_saveasdictionnaire | Crée une image à partir d'un disque VM.C'est un dictionnaire où vous devez spécifier name de la nouvelle image.En option, vous pouvez spécifier disk_id du disque que vous voulez sauvegarder. Par défaut disk_id est égal à 0.NOTE':' Cette opération ne sera effectuée que sur la première VM (si plus d'une ID de VM est passée)et la VM doit se trouver dans la zone poweredoff De même, cette opération échouera si une image avec l'état spécifié name spécifiée existe déjà. |
|
taille_du_disqueliste / elements=string | La taille du disque créé pour les nouvelles instances (en Mo, Go, TB,...).NOTE':' Si le modèle chapeaute plusieurs disques, l'ordre des tailles est comparé à l'ordre spécifié en template_id /template_name . |
|
exact_countnombre entier | Indique le nombre d'instances qui correspondent count_attributes et count_labels doivent être déployées. Les instances sont soit créées soit terminées en fonction de cette valeur.NOTE':' Les instances ayant le moins d'ID seront terminées en premier. |
|
group_idnombre entier | ID du groupe qui sera défini comme le groupe de l'instance. | |
durbooléen |
|
Redémarrer, mettre hors tension ou mettre fin aux instances. hard |
instance_idsliste / elements=string | Une liste d'identifiants d'instance utilisés pour les états':' absent , running , rebooted , poweredoff alias : ids |
|
étiquettesliste / elements=string | Par défaut : [] |
Une liste d'étiquettes à associer aux nouvelles instances, ou pour le paramétrage.state d'instances avec ces labels. |
mémoirechaîne de caractères | La taille de la mémoire pour les nouvelles instances (en MB, GB, ...) | |
modechaîne de caractères | Définir le mode de permission de l'instance au format octet, par exemple. 600 pour donner au propriétaire use et manage et rien au groupe et aux autres. |
|
réseauxliste / elements=chaîne | Par défaut : [] |
Une liste de dictionnaires avec des paramètres de réseau. Voir les exemples pour plus de détails. |
propriétaire_idnombre entier | ID de l'utilisateur qui sera défini comme le propriétaire de l'instance. | |
persistantbooléen ajouté dans la version 0.2.0 de community.general |
|
Crée une copie persistante privée du modèle plus toute image définie dans DISK, et instancie cette copie. |
étatchaîne de caractères |
|
present - créer des instances à partir d'un modèle spécifié avec template_id /template_name .running - exécuter des instances poweredoff - mise hors tension des instances rebooted - redémarrage des instances absent - instances de terminaison |
modèle_identier | ID d'un modèle de VM à utiliser pour créer une nouvelle instance. | |
nom_du_modèlechaîne de caractères | Nom du modèle de VM à utiliser pour créer un nouvel instace. | |
vcpunombre entier | Nombre de processeurs (cœurs) dont disposera la nouvelle VM. | |
vm_start_on_holdbooléen |
|
Défini à true pour mettre la vm en attente pendant la création. |
attentebooléen |
|
Attendez que l'instance atteigne l'état souhaité avant de revenir. Gardez à l'esprit que si vous attendez que l'instance soit en état d'exécution, cela ne signifie pas que vous serez en mesure de SSH sur cette machine, seulement que le processus de démarrage a commencé sur cette instance, voir l'exemple 'wait_for' pour plus de détails. |
wait_timeoutentier | Par défaut : 300 |
Combien de temps avant que l'attente n'abandonne, en secondes. |
Exemples
-name: Create a new instance community.general.one_vm:template_id:90register: result -name: Print VM properties ansible.builtin.debug:msg: result -name: Deploy a new VM on hold community.general.one_vm:template_name:'app1_template'vm_start_on_hold:'True'-name: Deploy a new VM and set its name to 'foo' community.general.one_vm:template_name:'app1_template'attributes:name: foo -name: Deploy a new VM and set its group_id and mode community.general.one_vm:template_id:90group_id:16mode:660-name: Deploy a new VM as persistent community.general.one_vm:template_id:90persistent: yes -name: Change VM's permissions to 640 community.general.one_vm:instance_ids:5mode:640-name: Deploy 2 new instances and set memory, vcpu, disk_size and 3 networks community.general.one_vm:template_id:15disk_size: 35.2 GB memory: 4 GB vcpu:4count:2networks:-NETWORK_ID:27-NETWORK:"default-network"NETWORK_UNAME:"app-user"SECURITY_GROUPS:"120,124"-NETWORK_ID:27SECURITY_GROUPS:"10"-name: Deploy a new instance which uses a Template with two Disks community.general.one_vm:template_id:42disk_size:- 35.2 GB - 50 GB memory: 4 GB vcpu:4count:1networks:-NETWORK_ID:27-name:"Deploy an new instance with attribute 'bar: bar1' and set its name to 'foo'"community.general.one_vm:template_id:53attributes:name: foo bar: bar1 -name:"Enforce that 2 instances with attributes 'foo1: app1' and 'foo2: app2' are deployed"community.general.one_vm:template_id:53attributes:foo1: app1 foo2: app2 exact_count:2count_attributes:foo1: app1 foo2: app2 -name: Enforce that 4 instances with an attribute 'bar' are deployed community.general.one_vm:template_id:53attributes:name: app bar: bar2 exact_count:4count_attributes:bar:# Deploy 2 new instances with attribute 'foo: bar' and labels 'app1' and 'app2' and names in format 'fooapp-##'# Names will be: fooapp-00 and fooapp-01-name: Deploy 2 new instances community.general.one_vm:template_id:53attributes:name: fooapp-##foo: bar labels:- app1 - app2 count:2# Deploy 2 new instances with attribute 'app: app1' and names in format 'fooapp-###'# Names will be: fooapp-002 and fooapp-003-name: Deploy 2 new instances community.general.one_vm:template_id:53attributes:name: fooapp-###app: app1 count:2# Reboot all instances with name in format 'fooapp-#'# Instances 'fooapp-00', 'fooapp-01', 'fooapp-002' and 'fooapp-003' will be rebooted-name: Reboot all instances with names in a certain format community.general.one_vm:attributes:name: fooapp-#state: rebooted # Enforce that only 1 instance with name in format 'fooapp-#' is deployed# The task will delete oldest instances, so only the 'fooapp-003' will remain-name: Enforce that only 1 instance with name in a certain format is deployed community.general.one_vm:template_id:53exact_count:1count_attributes:name: fooapp-#-name: Deploy an new instance with a network community.general.one_vm:template_id:53networks:-NETWORK_ID:27register: vm -name: Wait for SSH to come up ansible.builtin.wait_for_connection:delegate_to:'{{ vm.instances[0].networks[0].ip }}'-name: Terminate VMs by ids community.general.one_vm:instance_ids:-153-160state: absent -name: Reboot all VMs that have labels 'foo' and 'app1' community.general.one_vm:labels:- foo - app1 state: rebooted -name:"Fetch all VMs that have name 'foo' and attribute 'app: bar'"community.general.one_vm:attributes:name: foo app: bar register: results -name: Deploy 2 new instances with labels 'foo1' and 'foo2' community.general.one_vm:template_name: app_template labels:- foo1 - foo2 count:2-name: Enforce that only 1 instance with label 'foo1' will be running community.general.one_vm:template_name: app_template labels:- foo1 exact_count:1count_labels:- foo1 -name: Terminate all instances that have attribute foo community.general.one_vm:template_id:53exact_count:0count_attributes:foo:-name:"Power-off the VM and save VM's disk with id=0 to the image with name 'foo-image'"community.general.one_vm:instance_ids:351state: poweredoff disk_saveas:name: foo-image -name:"Save VM's disk with id=1 to the image with name 'bar-image'"community.general.one_vm:instance_ids:351disk_saveas:name: bar-image disk_id:1
Valeurs de retour
Les valeurs de retour courantes sont documentées ici, les champs suivants sont uniques à ce module :
Clé | Retourné | Description | |
---|---|---|---|
instancescomplexe | succès | une liste d'instances info dont l'état est modifié ou qui sont récupérées avec... instance_ids option. |
|
attributsdictionnaire | succès | Un dictionnaire d'attributs clés/valeurs qui sont associés à l'instance. Exemple :{'HYPERVISOR' : 'kvm', 'LOGO' : 'images/logos/centos.png', 'TE_GALAXY' : 'bar', 'USER_INPUTS' : None} |
|
cpufloat | succès | Pourcentage de l'unité centrale divisé par 100 Echantillon : 0.2 |
|
taille du disquechaîne de caractères | succès | La taille du disque en Mo Echantillon : 20480 MO |
|
groupe_idnombre entier | succès | ID du groupe du vm Echantillon : 1 |
|
nom_du_groupechaîne de caractères | succès | nom du groupe du vm Echantillon : un-users |
|
étiquettesliste / elements=string | succès | Une liste d'étiquettes de chaîne qui sont associées à l'instance. Exemple :['foo', 'spec-label'] |
|
lcm_statechaîne de caractères | succès | État lcm d'une instance qui n'est pertinent que lorsque l'état est ACTIF. Exemple : RUNNING |
|
mémoirechaîne de caractères | succès | La taille de la mémoire en Mo Echantillon : 4096 MO |
|
modechaîne de caractères | succès | mode de la vm Echantillon : 660 |
|
réseauxliste / elements=chaîne | succès | une liste de dictionnaires avec des informations sur IP, NAME, MAC, SECURITY_GROUPS pour chaque NIC. Exemple :[{'ip': '10.120.5.33', 'mac': '02:00:0a:78:05:21', 'name': 'default-test-private', 'security_groups': '0,10'}, {'ip': '10.120.5.34', 'mac': '02:00:0a:78:05:22', 'name': 'default-test-private', 'security_groups': '0'}] |
|
propriétaire_idnombre entier | succès | ID du propriétaire du vm Echantillon : 143 |
|
nom_du_propriétairechaîne de caractères | succès | nom du propriétaire de la vm Echantillon : utilisateur de l'application |
|
étatchaîne de caractères | succès | état d'une instance Exemple : ACTIF |
|
modèle_identier | succès | ID du modèle du vm Echantillon : 153 |
|
uptime_hnombre entier | succès | Temps de fonctionnement de l'instance en heures Exemple : 35 |
|
vcpuentier | succès | Nombre de processeurs (cœurs) Echantillon : 2 |
|
vm_identier | succès | id vm Echantillon : 153 |
|
vm_namechaîne de caractères | succès | nom du vm Echantillon : foo |
|
instances_idsliste / elements=string | succès | une liste d'ids d'instances dont l'état est modifié ou qui sont récupérées avec la fonction instance_ids option.Echantillon :[1234, 1235] |
|
tagged_instancescomplexe | succès | Une liste d'instances info basée sur un attribut spécifique et/ou des labels qui sont spécifiés avec count_attributes et count_labels options. |
|
attributsdictionnaire | succès | Un dictionnaire d'attributs clés/valeurs qui sont associés à l'instance. Exemple :{'HYPERVISOR' : 'kvm', 'LOGO' : 'images/logos/centos.png', 'TE_GALAXY' : 'bar', 'USER_INPUTS' : None} |
|
cpufloat | succès | Pourcentage de l'unité centrale divisé par 100 Echantillon : 0.2 |
|
taille du disqueliste / elements=string | succès | La taille du disque en Mo Echantillon :['20480 MB', '10240 MB'] |
|
groupe_idnombre entier | succès | ID du groupe du vm Echantillon : 1 |
|
nom_du_groupechaîne de caractères | succès | nom du groupe du vm Echantillon : un-users |
|
étiquettesliste / elements=string | succès | Une liste d'étiquettes de chaîne qui sont associées à l'instance. Exemple :['foo', 'spec-label'] |
|
lcm_statechaîne de caractères | succès | État lcm d'une instance qui n'est pertinent que lorsque l'état est ACTIF. Exemple : RUNNING |
|
mémoirechaîne de caractères | succès | La taille de la mémoire en Mo Echantillon : 4096 MO |
|
modechaîne de caractères | succès | mode de la vm Echantillon : 660 |
|
réseauxliste / elements=chaîne | succès | une liste de dictionnaires avec des informations sur IP, NAME, MAC, SECURITY_GROUPS pour chaque NIC. Exemple :[{'ip': '10.120.5.33', 'mac': '02:00:0a:78:05:21', 'name': 'default-test-private', 'security_groups': '0,10'}, {'ip': '10.120.5.34', 'mac': '02:00:0a:78:05:22', 'name': 'default-test-private', 'security_groups': '0'}] |
|
propriétaire_idnombre entier | succès | ID utilisateur du vm Echantillon : 143 |
|
nom_du_propriétairechaîne de caractères | succès | nom d'utilisateur de la vm Echantillon : app-user |
|
étatchaîne de caractères | succès | état d'une instance Exemple : ACTIF |
|
modèle_identier | succès | ID du modèle du vm Echantillon : 153 |
|
uptime_hnombre entier | succès | Temps de fonctionnement de l'instance en heures Exemple : 35 |
|
vcpuentier | succès | Nombre de processeurs (cœurs) Echantillon : 2 |
|
vm_identier | succès | id vm Echantillon : 153 |
|
vm_namechaîne de caractères | succès | nom du vm Echantillon : foo |
Auteurs
- Milan Ilic (@ilicmilan)
- Jan Meerkamp (@meerkampdvv)
N'oubliez pas que nous vous permettons de noter cet article si vous avez découvert votre souci au bon moment.