Création de ressources VPC avec l'interface de ligne de commande (CLI) et API
Outre la création d'un VPC, vous pouvez également créer des ressources VPC telles qu'une instance, un sous-réseau et un volume de stockage par blocs.
Pour plus d'informations sur la création de ressources VPC à l'aide de la console IBM Cloud, voir Utilisation de la console IBM Cloud pour créer des ressources VPC.
Utilisation de l'interface de ligne de commande pour créer des ressources VPC
Vous pouvez créer et configurer un site IBM Cloud® Virtual Private Cloud en utilisant le CLI IBM Cloud®.
Pour créer et configurer votre cloud privé virtuel (VPC) et d'autres ressources associées, effectuez les étapes présentées dans les sections suivantes, dans l'ordre indiqué :
- Créez un cloud privé virtuel et un sous-réseau afin de définir le réseau.
- Si vous souhaitez autoriser toutes les ressources du sous-réseau pour communiquer avec l'Internet public, connectez une passerelle publique.
- Créez une instance de serveur virtuel. Par défaut, un volume de démarrage est attaché à l'instance. Pour la plupart des instances de serveur virtuel, la taille de volume d'amorçage par défaut est de 100 Go. La taille de volume d'amorçage par défaut pour une instance de serveur virtuel z/OS est de 250 Go.
- Si vous souhaitez davantage de stockage, créez un volume de stockage par blocs et connectez-le à votre instance.
- Pour définir le trafic entrant et sortant autorisé pour l'instance, configurez son groupe de sécurité.
- Si vous souhaitez que votre instance soit accessible à partir d'Internet, réservez et associez une adresse IP flottante.
Avant de commencer
Assurez-vous que vous avez configuré votre environnement CLI.
Connexion à IBM Cloud
ibmcloud login --sso -a cloud.ibm.com
Cette commande renvoie une URL et des invites pour un code d'accès. Accédez à cette URL dans votre navigateur et connectez-vous. En cas de réussite, vous obtenez un code d'accès à usage unique. Copiez ce code et collez-le en réponse à l'invite. Après les étapes d'authentification, vous êtes invité à choisir votre compte. Si vous avez accès à plusieurs utilisateurs, sélectionnez l'utilisateur que vous souhaitez connecter.
Lorsque vous êtes invité à sélectionner une région, sélectionnez us-south.
Répondez à toutes les invites restantes pour terminer la connexion.
création d'un vpc
Utilisez la commande suivante pour créer le VPC my-vpc.
ibmcloud is vpc-create my-vpc
À partir du résultat obtenu, enregistrez l'ID dans une variable afin de pouvoir l'utiliser ultérieurement, par exemple :
vpc="0738-59de4046-3434-4d87-bb29-0c99c428c96e"
L'exemple précédent ne crée pas de VPC avec un accès classique. Si le VPC a besoin d'accéder à vos ressources classiques, voir Configuration de l'accès à l'infrastructure classique. Vous pouvez activer un VPC pour un accès classique uniquement lorsque vous le créez. En outre, vous ne pouvez avoir qu'un seul VPC avec accès à Classic Infrastructure dans votre compte à tout moment.
Création d'un catalogue privé
Cette étape est facultative. Si vous prévoyez de partager des images à partir d'un catalogue privé, le catalogue privé doit d'abord être créé. Si vous sélectionnez une image de catalogue appartenant à un autre compte, vous devez examiner d'autres considérations et limitations. Voir Utilisation de références d'image entre comptes dans un catalogue privé. Pour créer un catalogue privé, voir le tutoriel Intégration de logiciels à votre catalogue à l'aide de l'interface de ligne de commande.
Création d'un sous-réseau
Avant de créer un sous-réseau, sélectionnez le préfixe de zone et d'adresse dans lequel vous souhaitez le créer. Pour répertorier les préfixes d'adresse pour chaque zone de votre VPC, exécutez la commande suivante :
ibmcloud is vpc-address-prefixes $vpc
Vous devez maintenant sélectionner le préfixe d'adresse par défaut pour la zone us-south-3
. A partir de la sortie de la commande, notez le bloc CIDR du préfixe d'adresse. Lorsque vous créez un sous-réseau, vous devez spécifier
une plage d'adresses IP qui se trouve dans l'un des préfixes d'adresse de la zone sélectionnée.
Un sous-réseau ne peut pas être redimensionné après sa création.
ibmcloud is subnet-create my-subnet $vpc us-south-3 --ipv4-cidr-block "10.0.1.0/24"
À partir du résultat obtenu, enregistrez l'ID dans une variable afin de pouvoir l'utiliser ultérieurement, par exemple :
subnet="0738-658756a4-1106-4914-969a-3b43b338524a"
Le statut du sous-réseau est pending
lorsque vous le créez pour la première fois. Pour pouvoir créer des ressources dans le sous-réseau, le sous-réseau doit passer au statut available
, ce qui prend quelques secondes.
Pour vérifier le statut du sous-réseau, exécutez la commande suivante :
ibmcloud is subnet $subnet
Connexion d'une passerelle publique
Connectez une passerelle publique au sous-réseau si vous souhaitez autoriser toutes les ressources connectées à communiquer avec l'Internet public.
Pour créer une passerelle publique, exécutez la commande suivante :
ibmcloud is public-gateway-create my-gateway $vpc us-south-3
À partir du résultat obtenu, enregistrez l'ID dans une variable afin de pouvoir l'utiliser ultérieurement, par exemple :
gateway="0738-446c0c63-f0b1-4043-b30d-644f55fde391"
Pour connecter la passerelle publique à votre sous-réseau, exécutez la commande suivante :
ibmcloud is subnet-update $subnet --pgw $gateway
Il n'y a qu'une seule passerelle publique autorisée par zone dans un cloud privé virtuel, mais elle doit être connectée à plusieurs sous-réseaux dans la zone. Pour rechercher la passerelle publique d'une zone, exécutez la commande ibmcloud is public-gateways
et recherchez les valeurs particulières de VPC et Zone.
Ajout d'une clé SSH
Ajoutez votre clé SSH publique à votre compte IBM Cloud. Cette clé est spécifiée lors de la création de l'instance, et vous en aurez besoin ultérieurement pour vous connecter à l'instance. Vous pouvez utiliser une clé pour mettre à disposition plusieurs instances.
Pour consulter les clés disponibles dans votre compte IBM Cloud, exécutez la commande suivante :
ibmcloud is keys
Pour ajouter une clé, exécutez la commande suivante. Remplacez le chemin d'accès à votre fichier de clé SSH. Pour une clé SSH RSA, vous pouvez utiliser le chemin d'accès à votre fichier id_rsa.pub
. Pour une clé SSH Ed25519, vous
pouvez utiliser le chemin d'accès à votre fichier id_ed25519.pub
.
ibmcloud is key-create my-key @$HOME/.ssh/id_rsa.pub
À partir du résultat obtenu, enregistrez l'ID dans une variable afin de pouvoir l'utiliser ultérieurement, par exemple :
key="0738-859b4e97-7540-4337-9c64-384792b85653"
Sélection d'un profil pour l'instance
Pour répertorier toutes les instances de profil disponibles, exécutez la commande suivante :
ibmcloud is instance-profiles
Sauvegardez le profil que vous prévoyez d'utiliser en tant que variable, qui sera utilisée ultérieurement pour mettre à disposition une instance.
Sélection d'une image pour l'instance
Vous pouvez créer une instance à l'aide d'une image stockée, d'une image personnalisée de votre compte ou d'une image qui a été partagée avec votre compte à partir d'un catalogue privé. Exécutez l'une des commandes suivantes en fonction de l'image que vous prévoyez d'utiliser.
-
Sélectionnez une image stockée ou une image personnalisée dans votre compte pour votre instance.
-
Pour répertorier toutes les images disponibles, exécutez la commande
ibmcloud is images
. Si la liste est trop longue, pensez à la filtrer comme dans l'exemple suivant.$ ibmcloud is images | grep -i "debian.*available.*amd64.*public" r006-17cc6c08-f628-46f4-8bf4-a8edab749722 ibm-debian-10-13-minimal-amd64-4 available amd64 debian-10-amd64 10.x Buster/Stable - Minimal Install 1 public provider none Default - r006-b721bf3b-393b-4386-a618-d1ea8c004e1c ibm-debian-11-7-minimal-amd64-2 available amd64 debian-11-amd64 11.x Bullseye/Stable - Minimal Install 1 public provider none Default - r006-e66ebfcd-4aac-44e2-b504-1f6f4c003518 ibm-debian-12-0-minimal-amd64-1 available amd64 debian-12-amd64 12.x Bookworm/Stable - Minimal Install 1 public provider none Default -
Les images obsolètes n'incluent pas le support le plus actuel.
-
Sélectionnez une image telle que
ibm-debian-12-0-minimal-amd64-1
et sauvegardez l'ID image en tant que variable à utiliser ultérieurement pour mettre à disposition une instance.image=$(ibmcloud is images | grep -i "ibm-debian-12-0-minimal-amd64-1" | cut -d" " -f1)
-
-
Sélectionnez une image partagée à partir d'un catalogue privé pour l'instance
Si vous sélectionnez une image de catalogue appartenant à un autre compte, vous devez examiner d'autres considérations et limitations. Voir Utilisation de références d'image entre comptes dans un catalogue privé dans l'interface de ligne de commande
-
Pour répertorier toutes les offres d'images de catalogue privées disponibles, exécutez la commande suivante.
ibmcloud is catalog-image-offerings
Cette commande renvoie l'identificateur de chaque offre d'image et l'identificateur du catalogue privé où réside l'image. Sauvegardez
offering_id
etcatalog_id
dans des variables, qui sont utilisées ultérieurement pour mettre à disposition une instance.offering_id=6bf79f7b-de48-4ce8-8cae-866b376f2889 catalog_id=71306253-8444-4cae-a45d-64d35e5393ec
-
Pour obtenir le
offering_crn
de l'offre et leoffering_version_crn
de chaque version de l'offre, exécutez la commande suivante.ibmcloud is catalog-image-offering $catalog_id $offering_id
Lorsque vous mettez à disposition une instance, vous pouvez mettre à disposition l'instance à partir de l'image gérée par catalogue privée dans la dernière version d'une offre de produit de catalogue en utilisant la valeur
offering_crn
ou à partir de la version spécifique de l'offre de produit de catalogue en utilisant la valeuroffering_version_crn
.Sauvegardez
offering_crn
etoffering_version_crn
dans des variables, qui sont utilisées ultérieurement pour mettre à disposition une instance.offering_crn="crn:v1:bluemix:public:globalcatalog-collection:global:a/a1234567:offering:136559f6-4588-4af2-8585-f3c625eee09d" offering_version_crn="crn:v1:bluemix:public:globalcatalog-collection:global:a/a1234567:version:136559f6-4588-4af2-8585-f3c625eee09d/8ae92879-e253-4a7c-b09f-8d30af12e518"
-
Création de l'instance
Créez l'instance dans le sous-réseau nouvellement créé. Transmettez votre clé SSH publique pour pouvoir vous connecter une fois l'instance mise à disposition.
Exécutez l'une des commandes d'interface de ligne de commande suivantes en fonction de l'image que vous prévoyez d'utiliser.
-
Créez une instance à l'aide d'une image stockée ou d'une image personnalisée à partir de votre compte pour votre instance.
ibmcloud is instance-create my-instance $vpc us-south-3 bx2-2x8 $subnet --image-id $image --key-ids $key
-
Créez une instance à l'aide d'une image gérée par catalogue privée à partir de la version d'image la plus récente.
ibmcloud is instance-create my-instance $vpc us-south-3 bx2-2x8 $subnet --catalog-offering $offering_crn --keys $key
-
Créez une instance à l'aide d'une image gérée par catalogue privée à partir d'une version spécifique de l'image.
ibmcloud is instance-create my-instance $vpc us-south-3 bx2-2x8 $subnet --catalog-offering-version $offering_version_crn --keys $key
Les informations relatives à l'interface réseau créée pour la nouvelle instance ne sont pas renvoyées après la création de l'instance.
À partir du résultat obtenu, enregistrez l'ID de l'instance dans une variable afin de pouvoir l'utiliser ultérieurement, par exemple :
instance="0738-21179496-964e-4c00-8210-cf23d75750b3"
Le statut de l'instance est pending
lorsque vous la créez pour la première fois. Pour que vous puissiez continuer, l'instance doit passer au statut running
, ce qui prend quelques minutes. Pour vérifier le statut de
l'instance, exécutez la commande suivante :
ibmcloud is instance $instance
À partir de la sortie retournée, enregistrez l'ID de l'interface réseau primaire (Primary Interface
) dans une variable afin de pouvoir l'utiliser ultérieurement, par exemple :
nic="0738-4d9b3a58-f796-4e6a-b5ac-84f4216e9b68-glhvl"
Création d'un volume de données Block Storage
Vous pouvez créer un volume de stockage par blocs et le connecter à votre instance de serveur virtuel si vous souhaitez davantage de stockage. Lorsque vous créez un volume de stockage par blocs, vous sélectionnez un profil pour optimiser les performances de vos charges de travail de traitement. Pour plus d'informations sur la capacité de volume et les plages d'E-S/s en fonction du profil de volume que vous sélectionnez, voir Profils.
Pour afficher une liste de profils de volume, exécutez :
ibmcloud is volume-profiles
Exécutez cette commande pour créer un volume de données de stockage par blocs. Spécifiez un nom pour votre volume, votre profil de volume et la zone dans laquelle vous créez le volume. Pour connecter un volume de données de stockage par blocs à une instance, l'instance et le volume doivent être créés dans la même zone.
ibmcloud is volume-create my-volume custom us-south-3 --iops 1000 --size 500
À partir du résultat obtenu, enregistrez l'ID du volume dans une variable afin de pouvoir l'utiliser ultérieurement :
vol=0738-933c8781-f7f5-4a8f-8a2d-3bfc711788ee
Le statut du volume est pending
lorsqu'il est créé pour la première fois. Pour que vous puissiez continuer, le volume doit passer au statut available
, ce qui prend quelques minutes.
Pour vérifier le statut du volume, exécutez la commande suivante :
ibmcloud is volume $vol
Attacher un volume de données Block Storage à une instance
Utilisez la commande suivante pour attacher le volume à l'instance de serveur virtuel, en utilisant les variables que vous avez créées :
ibmcloud is instance-volume-attachment-add my-volume-attachment $instance $vol --auto-delete true
Ajout de règles au groupe de sécurité par défaut
Vous pouvez configurer le groupe de sécurité afin de définir le trafic entrant et sortant qui est autorisé pour l'instance. Par exemple, vous pouvez ajouter une règle autorisant le trafic SSH.
Recherchez le groupe de sécurité pour le cloud privé virtuel :
ibmcloud is vpc-sg $vpc
À partir du résultat obtenu, enregistrez l'identifiant dans une variable afin de pouvoir l'utiliser ultérieurement :
sg=0738-2d364f0a-a870-42c3-a554-000000981149
Créez à présent une règle pour autoriser le trafic SSH :
ibmcloud is sg-rulec $sg inbound tcp --port-min=22 --port-max=22
Vous pouvez également ajouter une règle autorisant le trafic ping :
ibmcloud is sg-rulec $sg inbound icmp --icmp-type 8 --icmp-code 0
Pour les images Windows, assurez-vous que le groupe de sécurité qui est associé à l'instance autorise le trafic RDP (Remote Desktop Protocol) entrant et sortant (port TCP 3389).
Création d'une adresse IP flottante pour l'instance
Créez une adresse IP flottante si vous souhaitez que votre instance soit accessible à partir d'Internet.
ibmcloud is floating-ip-reserve my-fip --nic $nic
À partir du résultat obtenu, enregistrez le site Address
dans une variable afin de pouvoir l'utiliser ultérieurement :
address=169.48.88.0
Connexion à votre instance
Par exemple, sous Linux, vous pouvez utiliser une commande de la forme suivante :
ssh -i $HOME/.ssh/id_rsa root@$address
La connexion utilisateur « root » est désactivée par défaut dans le système d'exploitation Fedora Core. La connexion utilisateur « core » peut être utilisée pour se connecter aux instances du système d'exploitation Fedora Core.
Lorsque vous êtes invité à poursuivre la connexion, entrez yes
.
L'accès SSH à l'instance peut être empêché par des groupes de sécurité. Assurez-vous que le groupe de sécurité de l'instance autorise l'accès SSH.
Pour vous connecter à une image Windows, connectez-vous à l'aide de son mot de passe déchiffré. Pour obtenir des instructions, voir Connexion à votre instance Windows.
Surveillance de votre instance
Vous pouvez surveiller l'utilisation de l'unité centrale, du volume, de la mémoire et du réseau de votre instance au fil du temps dans la console IBM Cloud. Etant donné que les données de surveillance sont stockées dans IBM Cloud Monitoring, vous devez être authentifié auprès d'une instance du service Surveillance dans votre compte. Pour plus d'informations, voir Initiation à la surveillance.
Pour les instances IBM Cloud Hyper Protect Virtual Servers pour IBM Cloud® Virtual Private Cloud, les métriques de mémoire ne peuvent pas être collectées car Hyper Protect Virtual Servers pour les instances VPC sont créées à l'aide d'images d'exécution sécurisée et la mémoire d'une instance d'exécution sécurisée n'est pas accessible.
Création d'une passerelle VPN
Créez une passerelle VPN sur le sous-réseau si vous souhaitez connecter en toute sécurité votre VPC à un autre réseau privé.
Pour créer une passerelle VPN, exécutez la commande suivante :
ibmcloud is vpn-gateway-create my-vpn-gateway $subnet
À partir du résultat obtenu, enregistrez l'ID de la passerelle VPN dans une variable afin de pouvoir l'utiliser ultérieurement, par exemple :
vpn_gateway="0757-7e91085b-dc11-4707-aa4d-66e735e9a2bc"
L'état de la passerelle VPN est pending
lorsque vous la créez pour la première fois. Pour que vous puissiez continuer, la passerelle VPN doit passer au statut available
, ce qui prend quelques minutes. Pour vérifier
le statut de la passerelle VPN, exécutez la commande suivante :
ibmcloud is vpn-gateway $vpn_gateway
Pour créer sur la passerelle VPN une connexion VPN à l'adresse homologue 169.61.161.150
et la clé pré-partagée mykey
, exécutez la commande suivante :
ibmcloud is vpn-gateway-connection-create my-vpn-conn $vpn_gateway 169.61.161.150 mykey
Dans cet exemple, 169.61.161.150
est l'adresse de la passerelle homologue, qui spécifie l'adresse IP de la passerelle VPN pour le réseau en dehors de votre VPC. La valeur mykey
est la clé d'authentification de la
passerelle VPN pour le réseau en dehors de votre VPC. Il s'agit d'une chaîne de chiffres hexadécimaux ou d'une phrase de passe composée de caractères ASCII imprimables. Pour être compatible avec la plupart des types de passerelle homologues,
cette chaîne doit respecter les règles suivantes :
- Il peut s'agir d'une combinaison de chiffres, de caractères minuscules ou majuscules, ou des caractères spéciaux suivants :
- + & ! @ # $ % ^ * ( ) . , :
- La longueur de la chaîne doit être comprise entre 6 et 128 caractères.
- La chaîne ne peut pas commencer par
0x
ou0s
.
Le statut de la connexion VPN est down
lorsqu'elle est créée et il devient up
une fois que la connexion a été établie. Pour vérifier le statut des connexions VPN sur une passerelle VPN, exécutez la commande suivante
:
ibmcloud is vpn-gateway-connections $vpn_gateway
Félicitations !
Vous avez créé et configuré votre VPC à partir de l'interface de ligne de commande IBM Cloud. Pour essayer d'autres commandes d'interface de ligne de commande, reportez-vous à la référence de l'interface de ligne de commande.
Utilisation des API REST pour créer des ressources VPC
Vous pouvez créer et configurer les ressources IBM Cloud® Virtual Private Cloud en utilisant les API REST.
Pour créer et configurer votre cloud privé virtuel (VPC) et d'autres ressources associées, effectuez les étapes présentées dans les sections suivantes, dans l'ordre indiqué :
- Créez un cloud privé virtuel et un sous-réseau afin de définir le réseau.
- Si vous souhaitez autoriser toutes les ressources du sous-réseau pour communiquer avec l'Internet public, connectez une passerelle publique.
- Créez une instance de serveur virtuel. Par défaut, un volume d'amorçage de 100 Go est connecté à l'instance.
- Si vous souhaitez davantage de stockage, créez un volume de stockage par blocs et connectez-le à votre instance.
- Pour définir le trafic entrant et sortant autorisé pour l'instance, configurez son groupe de sécurité.
- Si vous souhaitez que votre instance soit accessible à partir d'Internet, réservez et associez une adresse IP flottante.
Avant de commencer
Définissez des variables pour le jeton IAM, le point d'extrémité d'API et la version d'API. Pour obtenir des instructions, voir Configuration de votre environnement d'API et d'interface de ligne de commande.
Pour en savoir plus sur l'API, cliquez sur Obtenir un exemple d'appel d'API sur les pages de mise à disposition dans la console IBM Cloud. Vous pouvez afficher la séquence correcte des demandes d'API et mieux comprendre les actions et leurs dépendances.
création d'un vpc
Créez un IBM Cloud VPC appelé my-vpc
.
curl -X POST "$vpc_api_endpoint/v1/vpcs?version=$api_version&generation=2" \
-H "Authorization:$iam_token" \
-d '{
"name": "my-vpc"
}'
Vous devez envoyer le paramètre generation
avec chaque demande d'API pour spécifier la génération à utiliser. Pour les instances de serveur virtuel de génération 2, spécifiez generation=2
. Pour plus d'informations,
voir Génération dans l'API Virtual Private Cloud.
Pour le reste des appels, vous devez connaître l'ID du VPC nouvellement créé. Sauvegardez l'ID dans une variable, par exemple :
vpc="0738-59de4046-3434-4d87-bb29-0c99c428c96e"
Pour vérifier que la variable a été enregistrée, exécutez echo $vpc
et assurez-vous que la réponse n'est pas vide.
L'exemple précédent ne crée pas de VPC avec un accès classique. Si le VPC a besoin d'accéder à vos ressources classiques, voir Configuration de l'accès à l'infrastructure classique. Vous pouvez activer un VPC pour un accès classique uniquement lorsque vous le créez. En outre, vous ne pouvez avoir qu'un seul VPC avec accès à Classic Infrastructure dans votre compte à tout moment.
Création d'un catalogue privé
Cette étape est facultative. Si vous prévoyez de partager des images à partir d'un catalogue privé, le catalogue privé doit d'abord être créé. Si vous sélectionnez une image de catalogue appartenant à un autre compte, vous devez examiner d'autres considérations et limitations. Voir Utilisation de références d'images inter-comptes dans un catalogue privé dans la console. Pour créer un catalogue privé, voir le tutoriel Intégration de logiciels à votre catalogue à l'aide de l'interface de ligne de commande.
Création d'un sous-réseau
Avant de créer un sous-réseau, sélectionnez le préfixe de zone et d'adresse dans lequel vous souhaitez le créer. Pour répertorier les préfixes d'adresse pour chaque zone de votre VPC, exécutez la commande suivante :
curl -X GET "$vpc_api_endpoint/v1/vpcs/$vpc/address_prefixes?version=$api_version&generation=2" \
-H "Authorization:$iam_token"
Sélectionnez maintenant le préfixe d'adresse par défaut pour la zone us-south-3. A partir de la réponse, notez le bloc CIDR du préfixe d'adresse. Lorsque vous créez un sous-réseau, vous devez spécifier une plage d'adresses IP qui se trouve dans l'un des préfixes d'adresse de la zone sélectionnée.
Un sous-réseau ne peut pas être redimensionné après sa création.
curl -X POST "$vpc_api_endpoint/v1/subnets?version=$api_version&generation=2" \
-H "Authorization:$iam_token" \
-d '{
"name": "my-subnet",
"ipv4_cidr_block": "10.0.1.0/24",
"zone": { "name": "us-south-3" },
"vpc": { "id": "'$vpc'" }
}'
Sauvegardez l'ID du sous-réseau dans une variable.
subnet="0738-35fb0489-7105-41b9-99de-033fae723006"
Pour mettre à disposition des ressources dans votre sous-réseau, le sous-réseau doit être au statut Ready
. Interrogez la ressource de sous-réseau et vérifiez que le statut est Ready
avant de continuer. Si le statut
est failed
, contactez le support en fournissant les détails. Vous pouvez essayer de mettre à disposition un autre sous-réseau.
curl -X GET "$vpc_api_endpoint/v1/subnets/$subnet?version=$api_version&generation=2" \
-H "Authorization: $iam_token"
Connexion d'une passerelle publique
Connectez une passerelle publique au sous-réseau si vous souhaitez autoriser toutes les ressources connectées à communiquer avec l'Internet public.
Créez une passerelle publique pour la zone :
curl -X POST "$vpc_api_endpoint/v1/public_gateways?version=$api_version&generation=2" \
-H "Authorization:$iam_token" \
-d '{
"name": "my-gateway",
"zone": { "name": "us-south-3" },
"vpc": { "id": "'$vpc'" }
}'
Sauvegardez l'ID de la passerelle publique dans une variable.
gateway="0738-ad0cded3-53a3-4d4a-9809-8c59b50d2b80"
Connectez la passerelle publique à votre sous-réseau.
curl -X PUT "$vpc_api_endpoint/v1/subnets/$subnet/public_gateway?version=$api_version&generation=2" \
-H "Authorization:$iam_token" \
-d '{
"id": "'$gateway'"
}'
Il n'y a qu'une seule passerelle publique autorisée par zone dans un cloud privé virtuel, mais elle doit être connectée à plusieurs sous-réseaux dans la zone. Pour rechercher la passerelle publique d'une zone, exécutez la commande ibmcloud is public-gateways
et recherchez les valeurs particulières de VPC et Zone.
Vous pouvez ensuite extraire et afficher la passerelle publique connectée au sous-réseau en exécutant la commande ci-après.
curl -X GET "$vpc_api_endpoint/v1/subnets/$subnet/public_gateway?version=$api_version&generation=2" \
-H "Authorization: $iam_token"
Ajout d'une clé SSH
Ajoutez votre clé SSH publique à votre compte IBM Cloud. Cette clé est spécifiée lors de la création de l'instance, et vous en aurez besoin ultérieurement pour vous connecter à l'instance. Vous pouvez utiliser une clé pour mettre à disposition plusieurs instances.
curl -X POST "$vpc_api_endpoint/v1/keys?version=$api_version&generation=2" \
-H "Authorization:$iam_token" \
-d '{
"name": "my-key",
"public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQB/nAmOjTmezNUDKYvEeIRf2YnwM9/uUG1d0BYsc8/tRtx+RGi7N2lUbp728MXGwdnL9od4cItzky/zVdLZE2cycOa18xBK9cOWmcKS0A8FYBxEQWJ/q9YVUgZbFKfYGaGQxsER+A0w/fX8ALuk78ktP31K69LcQgxIsl7rNzxsoOQKJ/CIxOGMMxczYTiEoLvQhapFQMs3FL96didKr/QbrfB1WT6s3838SEaXfgZvLef1YB2xmfhbT9OXFE3FXvh2UPBfN+ffE7iiayQf/2XR+8j4N4bW30DiPtOQLGUrH1y5X/rpNZNlWW2+jGIxqZtgWg7lTy3mXy5x836Sj/6L"
}'
Sauvegardez l'ID de la clé SSH dans une variable, par exemple :
key="0738-35fb0489-7105-41b9-8764-033fae723006"
Sélection d'un profil pour votre instance
Appelez l'API pour répertorier tous les profils. La commande suivante répertorie les profils disponibles.
curl -X GET "$vpc_api_endpoint/v1/instance/profiles?version=$api_version&generation=2" \
-H "Authorization:$iam_token"
Sauvegardez le nom du profil dans une variable, qui sera utilisée ultérieurement pour mettre à disposition une instance. Par exemple :
profile_name="b2-2x8"
Sélection d'une image pour votre instance
Vous pouvez créer une instance à l'aide d'une image stockée, d'une image personnalisée de votre compte ou d'une image qui a été partagée avec votre compte à partir d'un catalogue privé. Exécutez l'un des appels d'API suivants en fonction de l'image que vous prévoyez d'utiliser.
-
Sélectionnez une image stockée ou une image personnalisée dans votre compte pour votre instance.
La commande suivante répertorie les images disponibles :
curl -X GET "$vpc_api_endpoint/v1/images?version=$api_version&generation=2" \ -H "Authorization:$iam_token"
Sauvegardez l'ID de l'image dans une variable, qui doit être utilisée ultérieurement pour mettre à disposition une instance. Par exemple :
image_id="0738-660198a6-52c6-21cd-7b57-e37917cef586"
-
Sélectionnez une image partagée à partir d'un catalogue privé pour votre instance.
Si vous sélectionnez une image de catalogue appartenant à un autre compte, vous devez examiner d'autres considérations et limitations. Voir Utilisation de références d'image de comptes croisés dans un catalogue privé dans l'API
Vous pouvez mettre à disposition une instance à partir de l'image du catalogue privé à la version la plus récente dans une offre de produit de catalogue ou à partir d'une version spécifique dans l'offre de produit de catalogue.
Pour sélectionner l'image de catalogue privé à partir de la dernière version d'une offre de produit de catalogue, voir API de gestion de catalogue-Obtenir une offre. Recherchez le CRN de l'offre et sauvegardez-le dans une variable pour une utilisation ultérieure:
offering_crn="crn:v1:bluemix:public:globalcatalog-collection:global::1082e7d2-5e2f-0a11-a3bc-f88a8e1931fc:offering:00111601-0ec5-41ac-b142-96d1e64e6442-global"
Pour sélectionner l'image de catalogue privé à partir d'une version spécifique d'une offre de produit de catalogue, voir API de gestion de catalogue-Obtenir une offre. Accédez ensuite à Get offering > Kinds > Versions > CRN pour extraire le CRN de la version et l'enregistrer dans une variable pour une utilisation ultérieure:
version_crn="crn:v1:bluemix:public:globalcatalog-collection:global::1082e7d2-5e2f-0a11-a3bc-f88a8e1931fc:version:00111601-0ec5-41ac-b142-96d1e64e6442-global/ec66bec2-6a33-42d6-9323-26dd4dc8875d-global"
Création de l'instance
Créez l'instance dans le sous-réseau nouvellement créé. Transmettez votre clé SSH publique pour pouvoir vous connecter une fois l'instance mise à disposition. Exécutez l'un des appels d'API suivants en fonction du type d'image que vous prévoyez d'utiliser.
-
Sélectionnez une image stockée ou une image personnalisée dans votre compte pour votre instance.
curl -X POST "$vpc_api_endpoint/v1/instances?version=$api_version&generation=2" \ -H "Authorization:$iam_token" \ -d '{ "name": "my-instance", "zone": { "name": "us-south-3" }, "vpc": { "id": "'$vpc'" }, "primary_network_interface": { "subnet": { "id": "'$subnet'" } }, "keys":[{"id": "'$key'"}], "profile": { "name": "'$profile_name'" }, "image": { "id": "'$image_id'" } }'
-
Créez une instance à l'aide d'une image de catalogue privée à partir de la dernière version d'une offre de produit de catalogue.
curl -X POST "$vpc_api_endpoint/v1/instances?version=$api_version&generation=2" \ -H "Authorization:$iam_token" \ -d '{ "name": "my-instance", "zone": { "name": "us-south-3" }, "vpc": { "id": "'$vpc'" }, "primary_network_interface": { "subnet": { "id": "'$subnet'" } }, "keys":[{"id": "'$key'"}], "profile": { "name": "'$profile_name'" }, "catalog_offering": { "offering": { "crn": "'$offering_crn'" } }'
-
Créez une instance à l'aide d'une image de catalogue privée à partir d'une version spécifique d'une offre de produit de catalogue.
curl -X POST "$vpc_api_endpoint/v1/instances?version=$api_version&generation=2" \ -H "Authorization:$iam_token" \ -d '{ "name": "my-instance", "zone": { "name": "us-south-3" }, "vpc": { "id": "'$vpc'" }, "primary_network_interface": { "subnet": { "id": "'$subnet'" } }, "keys":[{"id": "'$key'"}], "profile": { "name": "'$profile_name'" }, "catalog_offering": { "version": { "crn": "'$version_crn'" } }'
Sauvegardez l'ID de l'instance dans une variable, par exemple :
instance="0738-35fb0489-7105-41b9-99de-033fae723006"
Le statut de l'instance est stopped
lorsque vous la créez. Pour que vous puissiez continuer, l'instance doit passer au statut running
, ce qui prend quelques minutes. Interrogez le statut de l'instance et assurez-vous
qu'elle est running
.
curl -X GET "$vpc_api_endpoint/v1/instances/$instance?version=$api_version&generation=2" \
-H "Authorization: $iam_token"
Enregistrez l'ID de l'interface réseau principale de l'instance renvoyée dans l'appel GET/instance API
, par exemple :
network_interface="0738-7710e766-dd6e-41ef-9d36-06f7adbef33d"
Vous ne pouvez pas obtenir l'ID de l'interface réseau principale tant que vous n'interrogez pas l'instance spécifique.
(Facultatif) Création et rattachement d'un volume de données Block Storage
Vous pouvez créer un volume de données Block Storage et l'attacher à votre instance de serveur virtuel en tant que stockage auxiliaire. Créez un volume de données avec une demande similaire à cet exemple. Cette procédure permet d'afficher les profils de volume, de créer un volume, d'enregistrer l'ID de volume dans une variable, de vérifier l'état du volume, puis de créer la connexion de volume.
Afficher la liste des profils de volume:
curl -X GET "$vpc_api_endpoint/v1/volumes/profiles?version=$api_version&generation=2" \
-H "Authorization: $iam_token" \
Les profils peuvent être general-purpose (3 ES/s/Go), 5iops-tier, 10iops-tier et custom. Pour plus d'informations sur la capacité de volume et les plages d'E-S/s en fonction du profil de volume que vous sélectionnez, voir Profils.
Créez le volume de données:
curl -X POST "$vpc_api_endpoint/v1/volumes?version=$api_version&generation=2" \
-H "Authorization: $iam_token" \
-d '{
"name": "my-volume",
"iops": 1000,
"capacity": 100,
"zone": {
"name": "us-south-3"
},
"profile": {
"name": "custom"
}
}'
Enregistrer l'ID du volume dans une variable :
volume_id="0738-640774d7-2adc-4609-add9-6dfd96167a8f"
Le statut du volume est pending
lorsqu'il est créé pour la première fois. Pour que vous puissiez continuer, le volume doit passer au statut available
, ce qui prend quelques minutes.
Vérifier l'état du volume :
curl -X GET "$vpc_api_endpoint/v1/volumes/$volume_id?version=$api_version&generation=2" \
-H "Authorization: $iam_token"
Créez un attachement de volume pour attacher le nouveau volume de données à l'instance de serveur virtuel. Utilisez la variable d'ID de l'instance que vous avez créée auparavant dans la demande. Utilisez la variable d'ID volume pour spécifier le volume.
Créez la connexion de volume:
curl -X POST "$vpc_api_endpoint/v1/instances/$instance/volume_attachments?version=$version&generation=2" \
-H "Authorization: $iam_token" \
-d '{
"name": "my-volume-attachment",
"volume": {
"id": "'$volume_id'"
}
}'
Ajout de règles au groupe de sécurité par défaut
Vous pouvez configurer le groupe de sécurité afin de définir le trafic entrant et sortant qui est autorisé pour l'instance. Par exemple, vous pouvez ajouter une règle autorisant le trafic SSH.
Recherchez le groupe de sécurité pour le cloud privé virtuel :
curl -X GET "$vpc_api_endpoint/v1/vpcs/$vpc/default_security_group?version=$api_version&generation=2" \
-H "Authorization:$iam_token"
Sauvegardez l'ID du groupe de sécurité dans une variable, par exemple :
sg=0738-2d364f0a-a870-42c3-a554-000000981149
Créez maintenant une règle pour autoriser le trafic SSH entrant afin de pouvoir vous connecter à l'instance :
curl -X POST "$vpc_api_endpoint/v1/security_groups/$sg/rules?version=$api_version&generation=2" \
-H "Authorization: $iam_token" \
-d '{
"direction": "inbound",
"protocol": "tcp",
"port_min": 22,
"port_max": 22
}'
Pour les images Windows, assurez-vous que le groupe de sécurité qui est associé à l'instance autorise le trafic RDP (Remote Desktop Protocol) entrant et sortant (port TCP 3389).
Création d'une adresse IP flottante
Créez une adresse IP flottante si vous souhaitez que votre instance soit accessible à partir d'Internet. Utilisez l'interface réseau principale de l'instance comme cible pour l'adresse IP flottante.
curl -X POST "$vpc_api_endpoint/v1/floating_ips?version=$api_version&generation=2" \
-H "Authorization:$iam_token" \
-d '{
"name": "my-floatingip",
"target": {
"id":"'$network_interface'"
}
}
'
Sauvegardez l'ID de l'adresse IP flottante dans une variable, par exemple.
floating_ip="0738-35fb0489-7105-41b9-99de-033fae723006"
Connexion à votre instance
Pour vous connecter à l'instance, utilisez l'adresse IP flottante que vous avez créée. Pour obtenir l'adresse IP flottante, exécutez la commande suivante :
curl -X GET "$vpc_api_endpoint/v1/floating_ips/$floating_ip?version=$api_version&generation=2" \
-H "Authorization:$iam_token"
Sous Linux, utilisez l'address
de l'adresse IP flottante pour vous connecter à l'instance avec SSH :
ssh -i <private_key_file> root@<floating ip address>
La connexion utilisateur « root » est désactivée par défaut dans le système d'exploitation Fedora Core. La connexion utilisateur « core » peut être utilisée pour se connecter aux instances du système d'exploitation Fedora Core.
Pour vous connecter à une image Windows, connectez-vous à l'aide de son mot de passe déchiffré. Pour obtenir des instructions, voir Connexion à votre instance Windows.
Surveillance de votre instance
Vous pouvez surveiller l'utilisation de l'unité centrale, du volume, de la mémoire et du réseau de votre instance au fil du temps dans la console IBM Cloud. Les données de surveillance étant stockées dans IBM Cloud Monitoring, vous devez être authentifié auprès d'une instance IBM Cloud Monitoring dans votre compte. Pour plus d'informations, voir IBM Cloud Monitoring.
(Facultatif): Suppression des ressources
Vous pouvez supprimer des ressources à tout moment. Toutefois, une ressource ne peut pas être supprimée si elle est requise par d'autres ressources. Par exemple, un VPC ne peut pas être supprimé s'il contient des instances, des sous-réseaux ou des passerelles publiques. Pour obtenir des instructions sur la suppression d'un VPC et de toutes ses ressources, voir Suppression d'un VPC avec les API REST.
Félicitations !
Vous avez créé et configuré avec succès votre VPC en utilisant les API REST. Pour essayer d'autres commandes d'API, voir l'API de cloud privé virtuel.