Configuration de votre environnement d'API et d'interface de ligne de commande

Pour créer un IBM Cloud® Virtual Private Cloud (VPC) à l'aide de l'API ou de l'interface de ligne de commande, définissez votre environnement.

Conditions générales préalables

  1. Configurez votre compte pour accéder à VPC. Vérifiez que votre compte a été mis à niveau vers un compte payant.

  2. Vérifiez que vous disposez d'une clé SSH publique, qui sera utilisée pour la connexion à l'instance de serveur virtuel. Par exemple, générez une clé SSH sur votre serveur Linux en exécutant la commande suivante :

    ssh-keygen -t rsa
    

    Cette commande génère deux fichiers. La clé publique générée se trouve dans le fichier id_rsa.pub sous un répertoire .ssh de votre répertoire de base, par exemple, .../.ssh/id_rsa.pub.

    Pour plus d'informations, voir Clés SSH.

Prérequis pour l'interface de ligne de commande (CLI)

Avant de pouvoir utiliser l'interface de ligne de commande pour créer votre VPC, vous devez installer l'interface de ligne de commande d'IBM Cloud et le plug-in de l'interface de ligne de commande du VPC.

[Obsolète] :{: tag-deprecated} L'interface CLI de IBM Cloud n'est pas prise en charge sur LinuxONE (architecture de processeur s390x ). Cependant, vous pouvez installer cette interface sur une autre plateforme prise en charge et l'utiliser avec des instances de serveur virtuel LinuxONE (architecture de processeur s390x).

  1. Installez l'interface de ligne de commandeIBM Cloud.

  2. Installez le plug-in de l'interface de ligne de commande du VPC.

    ibmcloud plugin install vpc-infrastructure
    

    Les actions de l'interface de ligne de commande du VPC utilisent l'extension is. Pour savoir comment utiliser les commandes CLI, vous pouvez exécuter :

    ibmcloud is help
    ibmcloud is help vpc-create
    ibmcloud is help instance-create
    

    Pour savoir comment créer des ressources à l'aide de l'interface de ligne de commande (CLI), consultez la section « Création de ressources VPC ».

Accès à l'interface de ligne de commande via le noeud final privé de l'API VPC

Pour définir l'interface de ligne de commande de sorte qu'elle utilise le noeud final privé de l'API VPC, procédez comme suit:

Si vous avez besoin de télécharger le CLI IBM Cloud et les plug-ins associés, vous devez être en mesure d'accéder au dépôt public où ils se trouvent.

  1. Vérifiez que l'interface de ligne de commande IBM Cloud de base et le plug-in de service d'infrastructure VPC sont mis à jour vers la version la plus récente:

    ibmcloud update
    ibmcloud plugin update vpc-infrastructure
    
  2. Pour passer au mode de point d'extrémité privé d'API, entrez la commande suivante :

    ibmcloud login -a private.cloud.ibm.com
    

    À l'heure actuelle, le mode « point de terminaison privé » de l'API ne prend en charge que les régions suivantes : us-south et us-east.

Prérequis d'API

Avant de pouvoir utiliser l'API pour créer votre VPC, vous devez obtenir un jeton IAM, stocker le point d'extrémité en tant que variable et vérifier que vous avez accès au service d'API de VPC.

Les exemples suivants utilisent le point d'extrémité régional us-south. Pour consulter d'autres paramètres API, voir API Virtual Private Cloud.

Etape 1 : stockez votre clé d'API sous forme de variable

Exécutez la commande suivante pour stocker la clé d'API pour votre compte dans une variable d'environnement. Si vous ne disposez pas d'une clé d'API, voir Création d'une clé d'API.

apikey="<YOUR_API_KEY>"

Etape 2 : obtenez un jeton IBM IAM (Identity and Access Management)

Exécutez la commande suivante pour récupérer et analyser un jeton IAM à l'aide de l'utilitaire de traitement JSON jq. Vous pouvez modifier la commande pour utiliser un autre outil d'analyse syntaxique ou supprimer la dernière partie de la commande si vous préférez analyser manuellement le jeton.

iam_token=`curl -k -X POST \
  --header "Content-Type: application/x-www-form-urlencoded" \
  --header "Accept: application/json" \
  --data-urlencode "grant_type=urn:ibm:params:oauth:grant-type:apikey" \
  --data-urlencode "apikey=$apikey" \
  "https://iam.cloud.ibm.com/identity/token"  |jq -r '(.token_type + " " + .access_token)'`

Pour afficher le jeton IAM, exécutez echo $iam_token. Le résultat doit être similaire au code suivant :

Bearer <your token>

L'en-tête d'autorisation s'attend à ce que le jeton commence par "Bearer". Si le résultat n'inclut pas "Bearer", mettez à jour la variable iam_token pour l'inclure. Ces exemples supposent que "Bearer" est inclus dans le jeton iam_token.

Vous devez répéter l'étape précédente pour actualiser votre jeton IAM toutes les heures, car celui-ci expire.

Etape 3 : stockez le point d'extrémité d'API en tant que variable

Exécutez la commande suivante pour stocker le point d'extrémité d'API dans une variable afin qu'elle puisse être réutilisée ultérieurement dans votre session.

Nœud final public :

vpc_api_endpoint="https://us-south.iaas.cloud.ibm.com"

Nœud final privé virtuel :

vpc_api_endpoint="https://us-south.private.iaas.cloud.ibm.com"

Pour vérifier que cette variable a été sauvegardée, exécutez echo $vpc_api_endpoint et assurez-vous que la réponse n'est pas vide.

Pour connaître les régions de noeud final prises en charge, voir Noeuds finaux disponibles.

Etape 4 : stockez la version de l'API en tant que variable

Toutes les demandes d'API doivent inclure le paramètre version, au format YYYY-MM-DD. Exécutez la commande suivante pour stocker la date de version dans une variable pour pouvoir la réutiliser dans votre session. Pour plus d'informations sur la configuration du paramètre « version », consultez la section « Gestion des versions » de l'API Virtual Private Cloud.

api_version="2019-09-30"

Pour vérifier que cette variable a été sauvegardée, exécutez echo $api_version et assurez-vous que la réponse n'est pas vide.

Etape 5 : vérifiez que vous disposez d'un accès à l'API

Si vous rencontrez des résultats inattendus, ajoutez l'indicateur --verbose (debug) après la commande curl pour obtenir des informations de journalisation détaillées. Pour plus d'informations sur les erreurs courantes, voir Traitement des incidents.

  • Appelez l'API GET Regions pour voir les régions disponibles pour VPC, au format JSON. Au moins un objet doit être renvoyé.

    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, consultez la section « Génération » de l'API Virtual Private Cloud.

    curl -X GET "$vpc_api_endpoint/v1/regions?version=$api_version&generation=2" \
      -H "Authorization: Bearer $iam_token"
    
  • Appelez l'API GET Zones pour voir toutes les zones disponibles pour VPC dans une région spécifique, telle que us-south, au format JSON.

    curl -X GET "$vpc_api_endpoint/v1/regions/us-south/zones?version=$api_version&generation=2" \
      -H "Authorization: Bearer $iam_token"
    
  • Appelez l'API GET Profiles pour voir les profils disponibles pour vos instances de serveur virtuel, au format JSON. Au moins un objet doit être renvoyé.

    Ajoutez | json_pp après la commande curl pour obtenir une chaîne JSON lisible. La commande json_pp est un préprocesseur JSON qui est généralement installé par défaut sur la plupart des distributions Linux.

    curl -X GET "$vpc_api_endpoint/v1/instance/profiles?version=$api_version&generation=2" \
      -H "Authorization: Bearer $iam_token"
    
  • Appelez l'API GET Images pour renvoyer les images disponibles pour vos instances, au format JSON. Au moins un objet doit être renvoyé.

    curl -X GET "$vpc_api_endpoint/v1/images?version=$api_version&generation=2" \
      -H "Authorization: Bearer $iam_token"
    
  • Appelez l'API GET VPC pour voir tous les VPC déjà créés sous votre compte, au format JSON.

    curl -X GET "$vpc_api_endpoint/v1/vpcs?version=$api_version&generation=2" \
      -H "Authorization: Bearer $iam_token"
    

Pour savoir comment créer des ressources à l'aide de l'API, voir Création de ressources VPC à l'aide de l'interface de ligne de commande et de l'API.