API- und CLI-Umgebung einrichten
Vor der Erstellung einer VPC-Instanz (VPC = IBM Cloud® Virtual Private Cloud) mithilfe der API oder CLI müssen Sie Ihre Umgebung einrichten.
Allgemeine Voraussetzungen
-
Richten Sie Ihr Konto für den Zugriff auf VPC ein. Stellen Sie sicher, dass Ihr Konto auf ein gebührenpflichtiges Konto hochgestuft ist.
-
Vergewissern Sie sich, dass Sie über einen öffentlichen SSH-Schlüssel verfügen, der verwendet werden kann, um eine Verbindung zur Virtual Server-Instanz herzustellen. Generieren Sie z. B. einen SSH-Schlüssel auf Ihrem Linux-Server, indem Sie den folgenden Befehl ausführen:
ssh-keygen -t rsaDieser Befehl generiert zwei Dateien. Der generierte öffentliche Schlüssel befindet sich in der Datei
id_rsa.pubunter einem Verzeichnis.sshin Ihrem Ausgangsverzeichnis, z. B..../.ssh/id_rsa.pub.Weitere Informationen hierzu finden Sie unter SSH-Schlüssel.
CLI-Voraussetzungen
Bevor Sie die Befehlszeilenschnittstelle (CLI) zum Erstellen Ihrer VPC-Instanz verwenden können, müssen Sie die IBM Cloud-CLI und das VPC-CLI-Plug-in installieren.
[Veraltete] Befehle „{: tag-deprecated} “ und „ IBM Cloud “ werden auf LinuxONE ( s390x-Prozessorarchitektur) nicht unterstützt. Sie können die Befehlszeilenschnittstelle jedoch auf einer anderen unterstützten Plattform installieren und sie bei Virtual Server-Instanzen mit LinuxONE (s390x-Prozessorarchitektur) verwenden.
-
Installieren Sie die IBM Cloud-CLI.
-
Installieren Sie das VPC-CLI-Plug-in.
ibmcloud plugin install vpc-infrastructureDie VPC-CLI-Aktionen verwenden die Erweiterung
is. Wenn Sie Informationen zur Verwendung der CLI-Befehle benötigen, dann führen Sie die folgenden Befehle aus:ibmcloud is help ibmcloud is help vpc-create ibmcloud is help instance-createInformationen zum Erstellen von Ressourcen mithilfe der CLI finden Sie unter „ VPC-Ressourcen erstellen “.
Zugriff auf die Befehlszeilenschnittstelle über den privaten Endpunkt der VPC-API
Führen Sie die folgenden Schritte aus, um die Befehlszeilenschnittstelle für die Verwendung des privaten VPC-API-Endpunkts festzulegen:
Wenn Sie die IBM Cloud CLI und die zugehörigen Plug-Ins herunterladen möchten, müssen Sie auf das öffentliche Repository zugreifen können, in dem sie sich befinden.
-
Stellen Sie sicher, dass die zentrale IBM Cloud-CLI und das Plug-in für den VPC-Infrastrukturservice auf die neueste Version aktualisiert werden:
ibmcloud update ibmcloud plugin update vpc-infrastructure -
Geben Sie den folgenden Befehl ein, um auf in den Modus für private API-Endpunkte zu wechseln:
ibmcloud login -a private.cloud.ibm.comDerzeit unterstützt der Modus „Privater API-Endpunkt“ nur die Regionen
us-southundus-east.
API-Voraussetzungen
Bevor Sie die API zur Erstellung Ihrer VPC-Instanz nutzen können, müssen Sie ein IAM-Token abrufen, den Endpunkt als Variable speichern und überprüfen, ob Sie über Zugriff auf den VPC-API-Service verfügen.
Bei den folgenden Beispielen wird der regionale Endpunkt us-south verwendet. Weitere API-Endpunkte finden Sie im Abschnitt zur Virtual Private Cloud-API.
Schritt 1: API-Schlüssel als Variable speichern
Führen Sie den folgenden Befehl aus, um den API-Schlüssel Ihres Kontos in einer Umgebungsvariablen zu speichern. Wenn Sie keinen API-Schlüssel haben, lesen Sie den Abschnitt API-Schlüssel erstellen.
apikey="<YOUR_API_KEY>"
Schritt 2: IBM IAM-Token (IAM - Identity and Access Management) abrufen
Führen Sie den folgenden Befehl aus, um mithilfe des JSON-Verarbeitungsprogramms „jq“ ein IAM-Token abzurufen und zu analysieren. Sie können den Befehl so ändern, dass ein anderes Parsing-Tool verwendet wird. Alternativ können Sie den letzten Teil des Befehls entfernen, wenn Sie das Token manuell parsen möchten.
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)'`
Führen Sie echo $iam_token aus, um das IAM-Token anzuzeigen. Das Ergebnis sollte wie folgt aussehen:
Bearer <your token>
Vom Berechtigungsheader wird erwartet, dass das Token mit "Bearer" beginnt. Wenn das Ergebnis die Zeichenfolge "Bearer" nicht enthält, aktualisieren Sie die Variable iam_token so, dass sie diese Angabe enthält.
Diese Beispiele setzen voraus, dass "Bearer" in iam_token enthalten ist.
Sie müssen den vorherigen Schritt wiederholen, um das IAM-Token stündlich zu aktualisieren, da das Token sonst abläuft.
Schritt 3: API-Endpunkt als Variable speichern
Führen Sie den folgenden Befehl aus, um den API-Endpunkt in einer Variablen zu speichern, sodass er zu einem späteren Zeitpunkt in Ihrer Sitzung erneut verwendet werden kann.
Öffentlicher Endpunkt:
vpc_api_endpoint="https://us-south.iaas.cloud.ibm.com"
Virtueller privater Endpunkt:
vpc_api_endpoint="https://us-south.private.iaas.cloud.ibm.com"
Um sicherzustellen, dass diese Variable gespeichert wurde, führen Sie echo $vpc_api_endpoint aus und stellen Sie sicher, dass die Antwort nicht leer ist.
Informationen zu unterstützten Endpunktregionen finden Sie unter Verfügbare Endpunkte.
Schritt 4: API-Version als Variable speichern
Jede API-Anforderung muss den Parameter version im Format YYYY-MM-DD enthalten. Führen Sie den folgenden Befehl aus, um das Versionsdatum in einer Variablen zu speichern, sodass es in einer zukünftigen Sitzung erneut
verwendet werden kann. Weitere Informationen zum Festlegen des Parameters „ version “ finden Sie unter „Versionierung“ in der Virtual Private Cloud-API.
api_version="2019-09-30"
Um sicherzustellen, dass diese Variable gespeichert wurde, führen Sie echo $api_version aus und stellen Sie sicher, dass die Antwort nicht leer ist.
Schritt 5: API-Zugriff überprüfen
Wenn unerwartete Ergebnisse auftreten, fügen Sie nach dem Befehl --verbose das Flag curl (Debug) hinzu, um detaillierte Protokollierungsinformationen zu erhalten. Weitere Informationen zu allgemein auftretenden Fehlern
finden Sie unter Fehlerbehebung.
-
Rufen Sie die API zum Abrufen von Regionen auf, um die für VPC verfügbaren Regionen im JSON-Format anzuzeigen. Es sollte mindestens ein Objekt zurückgegeben werden.
Sie müssen den Parameter
generationmit jeder API-Anforderung senden, um anzugeben, welche Generation verwendet werden soll. Geben Sie für Virtual Server-Instanzen der zweiten Generationgeneration=2an. Weitere Informationen finden Sie unter „Generation“ in der Virtual Private Cloud-API.curl -X GET "$vpc_api_endpoint/v1/regions?version=$api_version&generation=2" \ -H "Authorization: Bearer $iam_token" -
Rufen Sie die API zum Abrufen von Zonen auf, um alle für VPC in einer bestimmten Region verfügbaren Zonen (z. B.
us-south) im JSON-Format anzuzeigen.curl -X GET "$vpc_api_endpoint/v1/regions/us-south/zones?version=$api_version&generation=2" \ -H "Authorization: Bearer $iam_token" -
Rufen Sie die API zum Abrufen von Profilen auf, um die für Ihre Virtual Server-Instanzen verfügbaren Profile im JSON-Format anzuzeigen. Es sollte mindestens ein Objekt zurückgegeben werden.
Fügen Sie nach dem Befehl 'curl' die Angabe
| json_pphinzu, um eine lesbare JSON-Zeichenfolge zu erhalten. Der Befehljson_ppist ein JSON-Präprozessor, der bei den meisten Linux-Distributionen standardmäßig installiert ist.curl -X GET "$vpc_api_endpoint/v1/instance/profiles?version=$api_version&generation=2" \ -H "Authorization: Bearer $iam_token" -
Rufen Sie die API zum Abrufen von Images auf, um die für Ihre Instanzen verfügbaren Images im JSON-Format zurückzugeben. Es sollte mindestens ein Objekt zurückgegeben werden.
curl -X GET "$vpc_api_endpoint/v1/images?version=$api_version&generation=2" \ -H "Authorization: Bearer $iam_token" -
Rufen Sie die API zum Abrufen von VPC-Instanzen auf, um alle VPC-Instanzen, die bereits unter Ihrem Konto erstellt wurden, im JSON-Format anzuzeigen.
curl -X GET "$vpc_api_endpoint/v1/vpcs?version=$api_version&generation=2" \ -H "Authorization: Bearer $iam_token"
Informationen zum Erstellen von Ressourcen mithilfe der Anwendungsprogrammierschnittstelle finden Sie unter VPC-Ressourcen mit Befehlszeilenschnittstelle und API erstellen.