Créer une machine virtuelle avec l'API
Jump to navigation
Jump to search
Comment créer une machine virtuelle avec l'API de VMWare Cloud Director
Nous allons voir comment créer une machine virtuelle depuis un script en python avec l'API de VMWare Cloud Director.
Voici les liens utiles à votre bonne lecture:
Script Python
Ici nous allons créer notre VM depuis un template de vapp présent en catalogue.
import requests
import json
# On demande une session
header = {"Accept":"application/*;version=36.0","Authorization":"Basic YWRtaW46YWRtaW4gOik="}
req = requests.post("https://vmware.ikoula.com/api/sessions", headers=header)
# On parse la réponse pour récupérer les tokens
rsp = req.headers
xresult = json.loads(str(rsp).replace("'",'"'))
token = xresult["X-VMWARE-VCLOUD-ACCESS-TOKEN"]
xauth = xresult["x-vcloud-authorization"]
# On définie de nouveau le header avec les tokens
header = {"Accept":"application/*;version=36.0","X-VMWARE-VCLOUD-ACCESS-TOKEN":"{}".format(token),"X-VMWARE-VCLOUD-TOKEN-TYPE":"Bearer","x-vcloud-authorization":"{}".format(xauth)}
# On prépare notre body xml pour la requête de création de vapp
xml = """<?xml version="1.0" encoding="UTF-8"?> <vcloud:InstantiateVAppTemplateParams
xmlns:ovf = "http://schemas.dmtf.org/ovf/envelope/1"
xmlns:vcloud = "http://www.vmware.com/vcloud/v1.5"
deploy = "false"
name = "Debian11"
powerOn = "true">
<vcloud:Description> VApp Description </vcloud:Description>
<vcloud:InstantiationParams>
<vcloud:NetworkConfigSection>
<ovf:Info> NetInfo </ovf:Info>
<vcloud:NetworkConfig
networkName = "{mon-network}">
<vcloud:Configuration>
<vcloud:ParentNetwork
href = "https://vmware.ikoula.com/api/network/{id-network}"
name = "{mon-network}"
type = "application/vnd.vmware.vcloud.network+xml"/>
<vcloud:FenceMode>bridged</vcloud:FenceMode>
</vcloud:Configuration>
</vcloud:NetworkConfig>
</vcloud:NetworkConfigSection>
</vcloud:InstantiationParams>
<vcloud:Source
href = "https://vmware.ikoula.com/api/vAppTemplate/vappTemplate-{id-vapp}"
name = "imported"
type = "application/vnd.vmware.vcloud.vAppTemplate+xml"/>
</vcloud:InstantiateVAppTemplateParams>"""
# On envoie la requête
req = requests.post("https://vmware.ikoula.com/api/vdc/{id-vdc}/action/instantiateVAppTemplate", headers=header, data=xml)
Note: Veillez à remplacer les valeur entre accolades et le token Basic par vos propre valeur
Conclusion
A noter que l'utilisation de l'API ne se limite pas à la création de machines virtuelles et qu'il existe différents outils pour mettre en œuvre ces actions.
Cet article vous a semblé utile ?
0
Activer l'actualisation automatique des commentaires