Ajouter une adresse IP publique à une nouvelle VM
Découvrez comment utiliser une IP publique sur une VM Ubuntu, créée via API
Découvrez comment utiliser une IP publique sur une VM Ubuntu, créée via API
Dernière mise à jour le 11/01/2022
Si vous souhaitez créer un frontend web ou un reverse proxy pour créer une pile de VM (serveur web, base de données), il faudra ajouter une adresse IP publique pour créer un point d'entrée.
Découvrez comment utiliser l'API Nutanix pour déployer une VM Ubuntu avec une adresse IP publique.
OVHcloud vous met à disposition des services dont la configuration, la gestion et la responsabilité vous incombent. Il vous appartient donc de ce fait d’en assurer le bon fonctionnement.
Ce guide a pour but de vous accompagner au mieux sur des tâches courantes. Néanmoins, nous vous recommandons de faire appel à un prestataire spécialisé si vous éprouvez des difficultés ou des doutes concernant l’administration, l’utilisation ou la mise en place d’un service sur un serveur.
Connectez-vous à l'espace client OVHcloud et ajoutez une adresse Additional IP à votre vRack.
Les instructions suivantes vont utiliser le bloc IP 123.45.6.78/30 à titre d'exemple.
Dans le cadre d'une utilisation du vRack, la première adresse, l'avant-dernière et la dernière adresse d'un bloc IP donné sont toujours réservées respectivement à l'adresse réseau, à la passerelle réseau et au broadcast du réseau. Cela signifie que la première adresse utilisable est la seconde adresse du bloc, comme indiqué ci-dessous :
123.45.6.76 Reserved: Network address
123.45.6.77 First usable IP
123.45.6.78 Reserved: Network gateway
123.45.6.79 Reserved: Network broadcast
Pour configurer la première adresse IP utilisable, vous devez éditer le fichier de configuration réseau.
Dans cet exemple, le masque de sous-réseau (255.255.255.252) convient à la plage d'adresses IP utilisée. Votre masque de sous-réseau peut être différent selon la taille de votre bloc. Lorsque vous achetez votre bloc IP, vous recevez un e-mail vous indiquant le masque de sous-réseau à utiliser.
Sur Ubuntu 20.04 LTS (Focal Fossa) avec « netplan », la configuration devrait être la suivante :
network:
version: 2
renderer: networkd
ethernets:
ens3:
addresses: [123.45.6.77/30]
gateway4: 123.45.6.78
nameservers:
addresses: [213.186.33.99]
Connectez-vous à Prism Central et rendez vous dans les menus Compute & Storage
puis Images
.
Cliquez sur le bouton Add Image
.
Collez l'URL d'une image cloud compatible, par exemple :
https://cloud-images.ubuntu.com/focal/current/focal-server-cloudimg-amd64.img
Cliquez sur Upload file
puis sur Next
.
Sélectionnez Place image directly on clusters
, puis sélectionnez votre cluster et cliquez sur Save
.
Pour déployer la VM, il faut l'UUID de l'image et du réseau.
Ouvrez un terminal et exécutez la commande suivante :
curl -k -H Accept:application/json -H Content-Type:application/json -u "admin:PRISMADMINPASSWORD" -X POST https://fqdn-cluster:9440/api/nutanix/v3/images/list -d{} | jq .
Prenez soin de renseigner votre mot de passe réel et votre nom de domaine complet dans les paramètres.
Le « jq . » permettra d'obtenir un json lisible.
{
"api_version": "3.1",
"metadata": {
"total_matches": 2,
"kind": "image",
"length": 2,
"offset": 0
},
"entities": [
{
"status": {
"state": "COMPLETE",
"execution_context": {
"task_uuids": [
"4a7d3ce8-8127-4556-b30e-cf7013e74c81"
]
},
"name": "ubuntu-focal",
"resources": {
"retrieval_uri_list": [
"https://127.0.0.1:9440/api/nutanix/v3/images/3cd498a2-99da-49a2-bbdf-14c349036019/file"
],
"current_cluster_reference_list": [
{
"kind": "cluster",
"uuid": "0005cfe0-d7b6-81c8-6173-0c42a12333ee"
}
],
"architecture": "X86_64",
"size_bytes": 2361393152,
"image_type": "DISK_IMAGE",
"source_uri": "https://cloud-images.ubuntu.com/focal/current/focal-server-cloudimg-amd64.img"
}
},
"spec": {
"name": "ubuntu-focal",
"resources": {
"image_type": "DISK_IMAGE",
"source_uri": "https://cloud-images.ubuntu.com/focal/current/focal-server-cloudimg-amd64.img",
"architecture": "X86_64"
}
},
"metadata": {
"last_update_time": "2021-11-08T15:12:31Z",
"kind": "image",
"uuid": "3cd498a2-99da-49a2-bbdf-14c349036019",
"spec_version": 0,
"creation_time": "2021-11-08T15:12:06Z",
"categories_mapping": {},
"owner_reference": {
"kind": "user",
"uuid": "00000000-0000-0000-0000-000000000000",
"name": "admin"
},
"categories": {}
}
}
Dans les métadonnées, vous retrouvez l'UUID, ici : 3cd498a2-99da-49a2-bbdf-14c349036019.
Vous devez ensuite trouver le bon UUID de sous-réseau. Exécutez la commande ci-dessous :
curl -k -H Accept:application/json -H Content-Type:application/json -u "admin:PRISMADMINPASSWORD" -X POST https://fqdn-cluster:9440/api/nutanix/v3/subnets/list -d{} | jq .
Prenez soin de renseigner votre mot de passe réel et votre nom de domaine complet dans les paramètres.
{
"api_version": "3.1",
"metadata": {
"total_matches": 2,
"kind": "subnet",
"length": 2,
"offset": 0
},
"entities": [
{
"status": {
"state": "COMPLETE",
"name": "base",
"resources": {
"vswitch_name": "br0",
"subnet_type": "VLAN",
"virtual_switch_uuid": "4a18b6dd-be0a-4c05-bd81-59229e67ac46",
"vlan_id": 0
},
"cluster_reference": {
"kind": "cluster",
"name": "cluster-36",
"uuid": "0005cfe0-d7b6-81c8-6173-0c42a12333ee"
}
},
"spec": {
"name": "base",
"resources": {
"vswitch_name": "br0",
"subnet_type": "VLAN",
"virtual_switch_uuid": "4a18b6dd-be0a-4c05-bd81-59229e67ac46",
"vlan_id": 0
},
"cluster_reference": {
"kind": "cluster",
"name": "cluster-36",
"uuid": "0005cfe0-d7b6-81c8-6173-0c42a12333ee"
}
},
"metadata": {
"last_update_time": "2021-11-04T08:25:18Z",
"kind": "subnet",
"uuid": "ed156bb0-a838-4596-b427-4bbed1968864",
"spec_version": 0,
"creation_time": "2021-11-04T08:25:18Z",
"categories_mapping": {},
"categories": {}
}
}
Dans les métadonnées, vous retrouvez l'UUID, ici : ed156bb0-a838-4596-b427-4bbed1968864.
Pour déployer la VM, vous avez besoin de deux fichiers : vm.json
, décrivant la machine virtuelle et le fichier de configuration cloud-init.yaml
qui contient les données utilisateur telles que mot de passe, réseau, etc.
Créez le fichier vm.json
:
{
"spec": {
"name": "YOURVMNAME",
"resources": {
"power_state": "ON",
"num_vcpus_per_socket": 4,
"num_sockets": 1,
"memory_size_mib": 4096,
"disk_list": [
{
"disk_size_mib": 41264,
"device_properties": {
"device_type": "DISK",
"disk_address": {
"device_index": 0,
"adapter_type": "SATA"
}
},
"data_source_reference": {
"kind": "image",
"uuid": "3cd498a2-99da-49a2-bbdf-14c349036019"
}
}
],
"nic_list": [
{
"nic_type": "NORMAL_NIC",
"ip_endpoint_list": [
{
"ip_type": "DHCP"
}
],
"subnet_reference": {
"kind": "subnet",
"name": "base",
"uuid": "d1117d0b-015b-4007-a84b-37f196f1af4d"
},
"is_connected": true
},
{
"nic_type": "NORMAL_NIC",
"ip_endpoint_list": [
{
"ip_type": "DHCP"
}
],
"subnet_reference": {
"kind": "subnet",
"name": "base",
"uuid": "ed156bb0-a838-4596-b427-4bbed1968864"
},
"is_connected": true
}
],
"guest_customization": {
"cloud_init": {
"user_data": "USERDATA"
},
"is_overridable": false
}
}
},
"api_version": "3.1.0",
"metadata": {
"kind": "vm"
}
}
Vous pouvez ajuster les paramètres en fonction de vos valeurs, selon vos besoins : nom de la VM, nombre de VCPU, taille de la RAM, taille du disque, etc.
Cochez data_source_reference
pour vous assurer que l'UUID est bien l'UUID de votre image système :
"data_source_reference": {
"kind": "image",
"uuid": "3cd498a2-99da-49a2-bbdf-14c349036019"
}
Vérifiez également l'UUID de votre sous-réseau :
"subnet_reference": {
"kind": "subnet",
"name": "base",
"uuid": "ed156bb0-a838-4596-b427-4bbed1968864"
}
Il faut maintenant créer le fichier cloud-init.yaml
. Ce fichier contient les « données utilisateur ». Au démarrage du système, ces paramètres tels que les utilisateurs, les paquets, les fichiers, etc, seront appliqués à la VM.
Vous trouverez ci-dessous un template que vous pourrez modifier avec vos valeurs pour créer votre VM individuelle.
mkpasswd --method=SHA-512 --rounds=4096
#cloud-config
hostname: <yourhostname>
fqdn: <yourhostname.ovh.cloud>
users:
- name: <yourusername>
sudo: ['ALL=(ALL) NOPASSWD:ALL']
groups: sudo
shell: /bin/bash
lock_passwd: false
passwd: <yourhashpass>
ssh-authorized-keys: <your public ssh key>
write_files:
- path: /etc/netplan/50-cloud-init.yaml
content: |
network:
version: 2
renderer: networkd
ethernets:
ens3:
addresses: [123.45.6.77/30]
gateway4: 123.45.6.78
nameservers:
addresses: [213.186.33.99]
runcmd:
- netplan generate
- netplan apply
# Optional: if you want to use access via password instead of SSH key, uncomment the next line
# - sed -i s/PasswordAuthentication/#PasswordAuthentication/g /etc/ssh/sshd_config
- reboot
Transformez le cloud-init.yaml
en « base64 » et placez-le dans une variable :
sed -i s/USERDATA/${USERDATA}/g vm.json
Remplacez ensuite la chaîne « USERDATA » dans vm.json
par la valeur de la variable USERDATA
dans le fichier vm.json
:
sed -i s/USERDATA/${USERDATA}/g vm.json
Enfin, utilisez une requête cURL pour enregistrer et mettre sous tension la VM :
curl -k -H Accept:application/json -H Content-Type:application/json -u "admin:PRISMADMINPASSWORD" -X POST https://fqdn:9440/api/nutanix/v3/vms -d @vm.json | jq .
Vous pouvez maintenant vous connecter à votre VM en SSH via l'adresse IP publique.
API Nutanix : Création d'une VM Linux
Échangez avec notre communauté d'utilisateurs sur https://community.ovh.com/.
N’hésitez pas à nous proposer des suggestions d’amélioration afin de faire évoluer cette documentation.
Images, contenu, structure… N’hésitez pas à nous dire pourquoi afin de la faire évoluer ensemble !
Vos demandes d’assistance ne seront pas traitées par ce formulaire. Pour cela, utilisez le formulaire "Créer un ticket" .
Merci beaucoup pour votre aide ! Vos retours seront étudiés au plus vite par nos équipes..
Accedez à votre espace communautaire. Posez des questions, recherchez des informations, publiez du contenu et interagissez avec d’autres membres d'OVHcloud Community.
Echanger sur OVHcloud Community