IBM Cloud Docs
Création de ressources VPC avec l'interface de ligne de commande (CLI) et API

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é :

  1. Créez un cloud privé virtuel et un sous-réseau afin de définir le réseau.
  2. Si vous souhaitez autoriser toutes les ressources du sous-réseau pour communiquer avec l'Internet public, connectez une passerelle publique.
  3. 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.
  4. Si vous souhaitez davantage de stockage, créez un volume de stockage par blocs et connectez-le à votre instance.
  5. Pour définir le trafic entrant et sortant autorisé pour l'instance, configurez son groupe de sécurité.
  6. 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.

    1. 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.

    2. 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 et catalog_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 le offering_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 valeur offering_version_crn.

      Sauvegardez offering_crn et offering_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 ou 0s.

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é :

  1. Créez un cloud privé virtuel et un sous-réseau afin de définir le réseau.
  2. Si vous souhaitez autoriser toutes les ressources du sous-réseau pour communiquer avec l'Internet public, connectez une passerelle publique.
  3. Créez une instance de serveur virtuel. Par défaut, un volume d'amorçage de 100 Go est connecté à l'instance.
  4. Si vous souhaitez davantage de stockage, créez un volume de stockage par blocs et connectez-le à votre instance.
  5. Pour définir le trafic entrant et sortant autorisé pour l'instance, configurez son groupe de sécurité.
  6. 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.