Terraform
Antworten auf häufig gestellte Fragen zu den Arbeitsbereichen von „ IBM Cloud Schematics “ sind im folgenden Abschnitt zusammengefasst.
Unterstützt IBM Cloud Schematics mehrere Terraform-Providerversionen?
Ja, IBM Cloud Schematics unterstützt mehrere Terraform-Providerversionen. Sie müssen den Terraform-Provider-Block mit der Provider-Version hinzufügen. Standardmäßig wird die aktuelle Version 1.21.0 vom Anbieter ausgeführt, und die
vier vorherigen Versionen, wie beispielsweise 1.20.1, 1.20.0, 1.19.0 und 1.18.0, werden unterstützt.
Beispiel für eine Konfiguration mit mehreren Providern:
terraform{
required_providers{
ibm = ">= 1.21.0" // Error !! version unavailable.
ibm = ">= 1.20.0" // Execute against latest version.
ibm = "== 1.20.1" // Executes version v1.20.1.
}
}
Derzeit wird Version 1.21.0 freigegeben. Weitere Informationen finden Sie unter Providerversion.
Vorgehensweise zum Aktualisieren der Terraform-Version
IBM Cloud Schematics veraltet ältere Versionen von Terraform und führt Unterstützung für neuere Terraform-Versionen ein. Weitere Informationen finden Sie unter Schematics Terraform deprecation lifecycle und dem Deprecation Schedule.
Anhand der Themen können Sie ein Upgrade von einer Terraform-Version auf eine andere Version durchführen
Wie kann ich pull latest-Code aus einem Git-Repository über die Befehlszeile verwenden?
Für die Aktualisierung der Arbeitsbereiche IBM Cloud® Schematics über die Befehlszeile ist das erforderliche Feld name erforderlich.
Sie müssen den Befehl ibmcloud schematics workspace update --id <workspace-id> --file <updatefile.json> ausführen. Die Beispieldatei updatefile.json enthält das Namensfeld mit dem Wert.
{
"name":"testworkspace"
}
Welche Tools und Dienstprogramme werden in der Laufzeit verwendet?
Schematics Die Laufzeitumgebung wird mithilfe des Universal Base Image ( UBI-8 ) erstellt, und die Laufzeit utilities/softwares, die im UBI-8 enthalten sind, stehen für Terraform-Provisionierungen und „ Ansible “-Aktionen zur Verfügung.
Weitere Informationen finden Sie in der Liste der Tools und Dienstprogramme, die in Schematics Runtime verwendet werden.
Vorgehensweise zum Beheben von Problemen mit Git-Tokens beim Erstellen von Arbeitsbereichen über die Befehlszeilenschnittstelle
Bei Verwendung des Befehls schematics workspace new --file schematic-file.json -g xxxx wird eine Access token creation failed status ausgelöst, da das Token im Befehl nicht angegeben ist.
Sie müssen Ihre Authentifizierung überprüfen, bevor Sie die Operation über die Befehlszeile durchführen. Erstellen Sie anschließend einen Arbeitsbereich mit dem Befehl schematics workspace new --file schematic-file.json --github-token xxxx.
Weitere Informationen finden Sie im Abschnitt zum Befehl ibmcloud schematics workspace new.
Wie behebt ich Berechtigungsprobleme beim Erstellen oder Aktualisieren eines Arbeitsbereichs?
Autorisierungsfehler treten auf, wenn die Rolle und die Zugriffsrechte beim Aktualisieren des Arbeitsbereichs nicht ausreichen. Weitere Informationen finden Sie unter „ Benutzerzugriff verwalten “.
Wie kann ich Terraform IBM Module mit Schematics verwenden?
Sie können vorgefertigte, quelloffene und unternehmenstaugliche Terraform IBM Module mit Schematics Workspaces verwenden. Diese Module bieten Best Practices für die Bereitstellung von IBM Cloud Ressourcen und können direkt in Ihren Terraform-Konfigurationen referenziert werden. Zum Beispiel können Sie terraform-ibm-modules verwenden, um Ressourcen mit eingebauten Best Practices bereitzustellen.
Was sind die Vorteile der Verwendung von Terraform IBM Modulen?
Terraform IBM Module (TIM) bieten mehrere Vorteile:
- Vorgefertigt, getestet und gewartet von IBM.
- Befolgen Sie IBM Cloud bewährte Verfahren und Sicherheitsrichtlinien.
- Reduzieren Sie Entwicklungszeit und Komplexität.
- Sicherstellung der Konsistenz bei allen Einsätzen.
- Unterstützung für unternehmensgerechte Infrastrukturmuster.
- Regelmäßige Aktualisierungen und Unterstützung durch die Gemeinschaft.
Weitere Informationen finden Sie unter Über Terraform IBM Module.
Wie werden Schematics-Services mit einer Test-ID verwendet?
Die Test-IDs gelten als gültige „ IBM ID “, um API-Aufrufe im Zusammenhang mit dem globalen Katalog oder dem Ressourcen-Controller auszuführen. Wenn Sie nicht auf zugreifen können, wenden Sie sich an den Kundendienst.
Vorgehensweise zum Begrenzen des Klonens von Git-Repositoryordnern
Bei der Erstellung eines Arbeitsbereichs über die Benutzerschnittstelle ist Schematics standardmäßig so eingestellt, dass das vollständige Git-Repository und alle Unterverzeichnisse geklont werden. Wählen Sie das Flag Use full repository ab, um die geklonten Ordner zu begrenzen und die Downloadleistung zu verbessern.
Schematics hat ein Flag compact in der API create workspace und update workspace eingeführt, um die sub directories in Git-Repositorys herunterzuladen. Wenn das Flag „compact“ auf „true“ gesetzt ist, wird „ sub directories “ rekursiv heruntergeladen und gespeichert; andernfalls können Sie weiterhin das gesamte Repository beim
Anlegen des Arbeitsbereichs herunterladen und speichern.
Sie können die Antwort abrufen, indem Sie den Befehl „ get workspace API “ ausführen, um den Wert des „compact“-Flags anzuzeigen. Das Flag „compact“ kann nur gesetzt werden, wenn das Feld „ template_repo.url “ übergeben
wird. Wird bei einer Aktualisierung dieses Feld nicht übergeben, aber der Parameter „ URL “ wird übergeben, erfolgt der Download in komprimierter Form.
Die Syntax für 'compact' in den Nutzdaten ist .template_data[0].compact = true/false. Weitere Informationen finden Sie unter Compact download for Schematics workspaces.
Wie wird ein Arbeitsbereich gelöscht, wenn der Löschvorgang fehlschlägt?
Wenn eine Ressource außerhalb der Schematicsgelöscht wird, zeigt eine Löschoperation für den Arbeitsbereich dies als resource no longer exists an.
Sie müssen den Arbeitsbereich löschen, ohne dabei die Ressourcen zu zerstören, als ob diese nicht verfügbar wären. Weitere Informationen finden Sie unter Arbeitsbereich löschen.
Wie kann ein Helm-Diagramm am besten mithilfe von Berechtigungsnachweisen oder geheimen Schlüsseln bereitgestellt werden?
Die beste Methode ist die Verwendung des IBM Cloud-Katalogs zur Verwaltung der Helm-Charts. Hierbei können Sie die Berechtigungsnachweise im Katalog beibehalten und als geschützt markieren. Weitere Informationen finden Sie unter List of catalog that is related to Helm.
Wie werden Jobfehler behandelt, die durch Wartungsaktivitäten verursacht werden?
Die durch eine Wartung verursachten unerwarteten Auswirkungen führen dazu, dass die aktiven Aktivitäten in einem Schematics-Arbeitsbereich fehlschlagen. Dieser Arbeitsbereich und die dort stattfindenden Aktivitäten sind als „ Failed “ gekennzeichnet. Der Benutzer kann die Aktivität anschließend erneut ausführen. Weitere Informationen finden Sie unter Arbeitsbereichsstatusdiagramm.
Wie wird der Release-Tag Git festgelegt?
2021/11/08 12:34:06 ----- New Action -----
2021/11/08 12:34:06 Request: RepoURL=https://xxxxxxxxxx/wh-hp-insights/hi-cloud-automation, workspaceSource=Schematics, Branch=2021.10, Release=, Folder=terraform-v2/workspace-hi-qa-automation-app
2021/11/08 12:34:06 Related Activity: action=UPDATE_WORKSPACE,processedBy=sandbox-6bcf8bffcd-rxbww_2478
2021/11/08 12:34:06 Getting download command
2021/11/08 12:34:11 Fatal, could not download repo, Failed to clone git repository, couldn't find remote ref "refs/heads/2021.10" (most likely invalid branch name is passed)
2021/11/08 12:34:12 Problems found with the Repository. Please Rectify and Retry
Wenn der Parameter Release leer ist und Branch mit einem Tag 'release' festgelegt wurde.
Schematics release-Tags werden nicht unterstützt, da es schwierig ist, zu erkennen, ob es sich um ein Release-Tag oder einen Branch aus dem Repository „ “ handelt:. Git URL Sie müssen den Tag release über die Schematics-API festlegen.
Warum wird ein Fehler 403 anstelle eines Fehlers 404 ausgegeben, wenn eine ungültige Arbeitsbereichs-ID verwendet wird?
curl -X GET https://schematics.cloud.ibm.com/v1/workspaces/badWOrkspaceId -H "Authorization: $IAM_TOKEN"
{"requestid":"3a3cbffe-e23a-4ccf-b764-042f7379c084","timestamp":"2021-11-11T17:00:07.169953698Z","messageid":"M1078","message":"Error while validating the location in the account. Verify you have permission to the location in the global catalog settings.","statuscode":403}
Ja, es gibt eine Änderung an der API: Diese prüft nun zunächst den Standort, und wenn sie den richtigen Standort für den Arbeitsbereich nicht ermitteln kann, gibt sie einen 403-Fehler anstelle eines 404-Fehlers zurück.
Vorgehensweise zum Aktivieren der Terraform-Debugprotokollierung
Sie können die Umgebungsvariable zum Festlegen der Terraform-Protokollebene 'debug' TF_LOG=debug in den Nutzdaten festlegen (siehe die Beispielnutzdaten). Weitere Informationen finden Sie unter Schematics-Aktualisierung von Arbeitsbereichen.
{
"name": "sample",
"type": [
"terraform_v1.4"
],
"description": "terraform workspace",
"tags": [
],
"template_repo": {
"url": "<your repo>"
},
"template_data": [
{
"folder": ".",
"type": "terraform_v1.4",
"env_values":[
{
"TF_LOG":"debug"
}
]
}
]
}
Wie importiere ich Cloudressourcen in einen Arbeitsbereich?
Verwenden Sie den Befehl ibmcloud schematics workspace import --options value, -o value : Optional und die Beispielsyntax für den Import über die Befehlszeile. Weitere Informationen finden Sie unter Schematics-Arbeitsbereichsimport.
ibmcloud schematics workspaces import --id <workspace_id> --address <my terraform resource address> --resourceID <the CRN of the item to import> --options "-var IC_API_KEY=XXXXXXXX"
or
ibmcloud schematics workspaces import --id <workspace_id> --address <my terraform resource address> --resourceID <the CRN of the item to import> --options "--var-file=<path-to-var-file>"
Wie kann ich Jobdateien herunterladen?
Ja, Sie können die Schematics-Jobdateien herunterladen. Weitere Informationen finden Sie unter Schematics-Jobdateien herunterladen.
Wie kann ich Zeitlimitfehler für Terraform-Ressourcen beheben?
Sie müssen den Zeitlimitwert je nach dem im Terraform-Block gezeigten Service um 5 Minuten oder 10 Minuten erhöhen. Oder Sie müssen „ null value “ angeben, um die Standardwerte zu verwenden.
variable "create_timeout"
{
type = String
description = "Timeout duration to create LogDNA instance in Schematics."
default = "15m"
}
Wie lege ich die Umgebungsvariable TF_CLI_ARGS fest?
Nein, Sie können den Wert einer Umgebungsvariablen nicht direkt in der Arbeitsbereichskonsole von „ Schematics “ festlegen. Stattdessen können Sie eine CURL verwenden, indem Sie die Schematics-API oder die Schematics-Befehlszeile verwenden.
"env_values": [
{
"TF_LOG": "debug"
},
]
Kann ich private Git-Repositorys für Module verwenden?
Ja, Schematics unterstützt das Herunterladen von Terraform-Modulen aus privaten Repositorys. Weitere Informationen finden Sie unter Unterstützung für das Herunterladen von Modulen vom privaten fernen Host.
Kann ich alle Variablen in einem Arbeitsbereich bearbeiten?
Über die „ Schematics “-Konsole können Sie jeweils nur eine Variable bearbeiten. Über die Befehlszeile können alle Variablen des Arbeitsbereichs im JSON-Format mit dem Befehl ibmcloud schematics workspace update bearbeitet werden.
Wie importiere ich Schlüssel beim Import von KMS-Ressourcen?
Ja, Sie können die Schlüssel mithilfe von ibm_kms_key festlegen oder verwalten, wie im Beispielcodeblock gezeigt. Weitere Informationen finden Sie unter ibm_kms_key.
resource "ibm_resource_instance" "kms_instance" {
name = "instance-name"
service = "kms"
plan = "tiered-pricing"
location = "us-south"
}
resource "ibm_kms_key" "test" {
instance_id = ibm_resource_instance.kms_instance.guid
key_name = "key-name"
standard_key = false
force_delete =true
}
resource "ibm_cos_bucket" "smart-us-south" {
bucket_name = "atest-bucket"
resource_instance_id = "cos-instance-id"
region_location = "us-south"
storage_class = "smart"
key_protect = ibm_kms_key.test.id
}
Können Sie die TRACE-Funktion aktivieren, um die Fehlerbehebung bei der „ Schematics “-API zu unterstützen, während der Befehl „workspace list“ ausgeführt wird?
Nein, derzeit wird diese Funktion von Schematics nicht unterstützt, wenn der Befehl IBMCLOUD_TRACE=true ibmcloud schematics workspace list ausgeführt wird.
Wie kann ich Fehler beim Auflisten von Arbeitsbereichen beheben?
Beim Auflisten oder Abrufen von Arbeitsbereichen wird möglicherweise der folgende Fehler empfangen. In: Error while retrieving Schematics Instance for the given account.
Error:
Bad status code [400] returned when getting workspace from Schematics: {"requestid":"fe5f0d6d-1d43-4643-a689-35d090463ce8","timestamp":"2022-01-25T20:23:54.727208017Z","messageid":"M1070","message":"Error while retrieving Schematics Instance for the given account.","statuscode":400}
Möglicherweise verfügen Sie nicht über ausreichende Zugriffsrechte auf die Arbeitsbereiche am angegebenen Speicherort, um die Instanz abzurufen. Bitte überprüfen Sie die für Ihr Konto gewährten Berechtigungen sowie die Standorte, an denen Ihre Instanz erstellt werden soll. Weitere Informationen finden Sie unter Wo werden Informationen gespeichert?
Wie kann ich (IBM) GitLab-Repositorys verwenden?
Ja, Sie können auf das private Repository ( IBM ) unter GitLab zugreifen, indem Sie Schematics mit den entsprechenden Berechtigungen aufrufen.
-
Wenn das private ( IBM ) Repository „ GitLab “
git.cloud.ibm.comkein Zugriffstoken benötigt, da das IAM-Token verwendet wird. -
Wenn der öffentliche GitLab
gitlab.com-,read_repository-undread_api-Zugriff erforderlich ist, um den Verzweigungsnamen für das private Repository zu validieren.
Sie können den Beispiel-Terraform-Code-Block verwenden, um die Details des Repositorys „ GitLab “ zu konfigurieren.
"template_repo": {
"url": "<gitlab_source_repo_url>",
"branch": ""
},
Können IAM-Zugriffsgruppen in Schematicsverwaltet werden?
Ja, Schematics unterstützt die vollständige IBM Cloud-Providerressourcengruppe. Weitere Informationen zur Funktionsweise der IAM-Zugriffsgruppe Siehe ibm_iam_access_group.
Wie arbeite ich mit Ressourcen in einem anderen Konto?
Ja, Sie können Schematics-Arbeitsbereiche in IBM Cloud-Quellenkonto erstellen. Führen Sie anschließend Terraform aus, indem Sie Ressourcen im Zielkonto bereitstellen, um über die Befehlszeilenschnittstelle und API-Aufrufe bereitzustellen, indem Sie die Service-ID des Zielkontos mit der Authentifizierung, der entsprechenden kontenübergreifenden Autorisierung oder dem API-Schlüssel verwenden. Weitere Informationen finden Sie unter Ressourcen in anderen Konten verwalten.
Was gibt die North America-Position an?
Bei der Erstellung eines Arbeitsbereichs unter Schematics gibt Nordamerika stets sowohl us-south als auch us-east als Standort an. Weitere Informationen finden Sie unter Wo kann ich Schematics-Arbeitsbereiche erstellen und Wo werden meine Informationen gespeichert?.
Welche Ports und IP-Adressen werden von Schematicsverwendet?
Schematics kommuniziert mit den Ports, die durch die zugehörigen Ressourcen angegeben sind. Beispielsweise VPC-bezogene Ports; siehe „ VPC: Erforderliche Ports und IP-Adressen in anderen Netzwerk-Firewalls öffnen “.
Wann verwende ich „ Schematics “ und wann die einzelnen Ressourcen-Dashboards?
Mit „ IBM Cloud Schematics “ können Sie Ihren Infrastrukturcode in „ IBM Cloud “ ausführen, um den Lebenszyklus von Cloud-Ressourcen zu verwalten. Nach der Bereitstellung einer Ressource verwenden Sie das Dashboard der einzelnen Ressource zum
Arbeiten und Interagieren mit der Ressource. Wenn Sie beispielsweise eine virtuelle Serverinstanz in einer Virtual Private Cloud (VPC) mit IBM Cloud Schematics bereitstellen. Sie können die VPC-Konsole, die API oder die Befehlszeile für stop,
reboot und power on Ihre virtuelle Serverinstanz verwenden. Um die Instanz des virtuellen Servers jedoch zu entfernen, können Sie den Befehl „ IBM Cloud Schematics “ verwenden.
Wurden Änderungen an Git-Repositorys in Schematicsaktualisiert?
Nein, wenn Sie den Code Ihrer Terraform-Vorlage unter GitHub, ändern, werden diese Änderungen nicht automatisch übernommen, wenn Sie unter IBM Cloud Schematics einen Ausführungsplan erstellen. Um die aktuellen Änderungen aus Ihrem Repository
„ GitHub “ abzurufen, stellen Sie sicher, dass Sie auf der Seite „ settings “ des Arbeitsbereichs die Option „ Pull latest “ auswählen, bevor Sie Ihren Ausführungsplan erstellen.
Wo wird die Terraform-Statusdatei gespeichert?
Nachdem Sie Cloud-Ressourcen durch Ausführen einer „ Schematics “-Anwendung erfolgreich bereitgestellt haben, wird der Status der Ressourcen in einer Terraform-Statusdatei (terraform.tfstate) gespeichert. „ Schematics “ nutzt diese
Statusdatei als einzige zuverlässige Quelle, um zu ermitteln, welche Ressourcen in Ihrem Konto vorhanden sind. Die State-Datei ordnet die Ressourcen, die Sie in Ihrer Terraform-Konfigurationsdatei angegeben haben, den von Ihnen bereitgestellten
Cloud-Ressourcen zu.
Werden Ressourcen beim Löschen des Arbeitsbereichs entfernt?
Das Löschen eines Arbeitsbereichs unter IBM Cloud Schematics führt nicht zum Löschen Ihrer Cloud-Ressourcen. Wenn Sie den Arbeitsbereich löschen, bevor Sie Ihre Ressourcen entfernen, müssen Sie alle Ihre Cloud-Ressourcen manuell über das jeweilige Ressourcen-Dashboard entfernen.
Das Entfernen von Cloud-Ressourcen kann nicht rückgängig gemacht werden. Stellen Sie sicher, dass Sie alle Daten gesichert haben, bevor Sie eine Ressource entfernen. Ressourcen werden entfernt (gelöscht), wenn Sie die Ressourcendefinition entfernen oder die Ressource in Ihrer Terraform-Konfigurationsdatei auf Kommentar setzen. Überprüfen Sie die Planprotokolldatei, um sicherzustellen, dass alle Ihre Ressourcen in das Entfernen eingeschlossen sind.
Kann ich Umgebungsvariablen für Arbeitsbereiche festlegen?
Sie können env values für einen Arbeitsbereich über die CLI und API festlegen. Weitere Informationen finden Sie unter Verwendung von env_values.
Wenn Ihr Arbeitsbereich vom IBM Cloud projects service erstellt wurde, lesen Sie bitte unter Enabling Terraform logs by using the CLI nach, wie Sie Umgebungsvariablen setzen können.
Beispielnutzdaten
{
"name": "newName",
"template_data": [
{
"type": "<same_as_before>",
"env_values": [
{
"env_key1": "dummy_text"
},
{
"env_key2": "dummy_text"
}
],
"env_values_metadata": [
{
"name": "env_values_1",
"hidden": false,
"secure": false
},
{
"name": "env_values_2",
"hidden": false,
"secure": false
}
]
}
]
}
Wird die Drifterkennung automatisch ausgeführt?
Nein, die Drift-Erkennung ist kein automatisches Erkennungsverfahren im „ IBM Cloud Schematics “. Weitere Informationen finden Sie unter Drift in Schematics.
Wie kann ich die Drifterkennung einleiten?
Sie können die Drifterkennung über die Benutzerschnittstelle und die Befehlszeilenschnittstelle einleiten. Weitere Informationen finden Sie unter Drift in Schematics.
Wo kann ich den Status eines Drift-Erkennungsauftrags einsehen?
Um die Ergebnisse eines Drift-Erkennungsauftrags zu überprüfen, müssen Sie das Protokoll des Drift-Erkennungsauftrags einsehen. Das Jobprotokoll gibt Auskunft über die Drifterkennung mit Detailinformationen wie in progress oder
completed in Verbindung mit dem entsprechenden Status wie failure oder success. Weitere Informationen finden Sie unter Drift in Schematics.
Kann ich interrupt oder terminate Jobs ausführen?
Ja, Sie können die Einrichtungsressourcen oder einen aktiven Job in Schematics mithilfe des entsprechenden Typs unterbrechen (Interrupt), zwangsbeenden (Force Stop) oder beenden (Terminate). Weitere Informationen finden Sie unter Jobtypen stoppen.
Wie korrigiere ich einen Incorrect Location Input-Fehler?
Fehler
{
"requestid": "3f59c342-cd2c-4703-aa10-9e8e7072a3ac",
"timestamp": "2022-06-28T20:02:58.529765308Z",
"messageid": "M1097",
"message": "Incorrect Location Input.",
"statuscode": 400
}
Für den globalen Endpunkt Schematics wird standardmäßig die us-Umgebung verwendet. Deshalb müssen Sie regionale Endpunkte verwenden, um Ihren Standort auf eine eu-de-Region
zu verweisen.
Wie kann ich Arbeitsbereichsressourcen anzeigen?
Verwenden Sie den CLI-Befehl state list, um dieselben Ressourcen wie in der Benutzerschnittstelle von IBM Cloud Schematics anzuzeigen.
Wie kann ich den Fehler CreateworkspaceWithContext failed Bad request beheben?
Fehler
CreateWorkspaceWithContext failed Bad request. Check that the information you entered in the payload is complete and formatted correctly in JSON.
Die globale URL des öffentlichen oder privaten Endpunkts Schematics verweist standardmäßig auf us Region. Als Problemumgehung können Sie den Umgebungsvariablenschlüssel vor den Terraform-Befehlen festlegen.
```sh
export IBMCLOUD_SCHEMATICS_API_ENDPOINT="https://eu-de.schematics.cloud.ibm.com"
```
Sie können die Endpunkte auch einer JSON-Datei hinzufügen, um den Endpunktservice als öffentlich oder privat zu kategorisieren.
Beispielproviderdeklaration
{
"IBMCLOUD_SCHEMATICS_API_ENDPOINT":{
"public":{
"eu-de":"https://eu-de.schematics.cloud.ibm.com"
}
}
}
Beispiel für Providerblock
provider "ibm" {
endpoints_file_path= "endpoints.json"
}
Sind sensible Werte in der Statusdatei verschlüsselt?
Schematics verschlüsselt die Terraform-Statusdatei bei der Speicherung und auch bei der Übertragung mit TLS. Terraform verschlüsselt sensible Werte nicht separat. Weitere Informationen finden Sie unter sensitive-data in der Statusdatei.
Warum lösen Arbeitsbereichsvariablen, die über die Befehlszeilenschnittstelle definiert werden, 400 Fehler aus?
Der Speicherwert der Schematics-Arbeitsbereichsvariablen sollte immer eine HCL-Zeichenfolge sein. Das Feld value muss eine Zeichenfolge mit Escapezeichen für den Variablenspeicher für die Liste, Zuordnung oder komplexe Variable
enthalten. Weitere Informationen finden Sie im Abschnitt Werte für Schematics für die deklarierten Variablen bereitstellen.
Können Sie die Terraform-Version (TF_VERSION) mithilfe einer JSON-Datei aktualisieren?
Derzeit besteht die Ausweichlösung für die Aktualisierung von TF_VERSION darin, die TF_VERSION zu übergeben, während der Variablenspeicher aktualisiert wird. Schematics erkennt automatisch, was im Terraform-Versionsblock
in den TF-Dateien angegeben ist. Dies ist das Standardverhalten.
Weitere Informationen finden Sie unter Version festlegen und ändern.
Kann mit einer neuen Terraform-Statusdatei bei jeder Jobausführung gestartet werden?
Nein, Sie müssen einen neuen Arbeitsbereich erstellen. Weitere Informationen finden Sie unter Arbeitsbereichsjobausführung.
Kann ich eine vorhandene Terraform-State-Datei importieren?
Ja, Sie können die Flag-Option --state über den neuen Arbeitsbereich ibmcloud schematics verwenden.
Was ist die maximale variable Länge von Zeichen?
Die maximale Länge der von Schematics-Arbeitsbereichsvariablen unterstützten Zeichen beträgt 1 MB.
Wie lautet die maximale zu importierende Statusdatei?
Die Datei terraform.tfstate muss kleiner als 16 MB sein. Wenn Sie Arbeitsbereich aus einer vorhandenen Terraform-Statusdatei erstellen, muss die Datei terraform.tfstate kleiner als 16 MB sein. Eine Statusdatei mit mehr
als 16 MB wird in Schematicsnicht unterstützt. Es wird eine Fehlernachricht mit 413 Request Entity Too Large error when creating a new workspace angezeigt.
Wie kann ich Authentifizierungsfehler beheben, wenn die API verwendet wird?
Sie müssen das IAM-Zugriffstoken für Ihr IBM Cloud-Konto erstellen. Weitere Informationen finden Sie unter Tokenkennwort abrufen. Hier sehen Sie die folgende Beispielfehlermeldung und die Lösung für den Authentifizierungsfehler.
Error: Request fails with status code: 400, BXNIMO137E: For the original authentication, client id 'default' was passed, refresh the token, client id 'bx' is used.
In der IAM-API-Dokumentation wird beschrieben, wie man eine „ default token “ erstellt. Sie können das refresh token verwenden,
um ein neues IAM-Zugriffstoken abzurufen, wenn dieses Token abgelaufen ist. Bei Verwendung des Standardclients (kein Basisberechtigungsheader), wie in dieser Dokumentation beschrieben, Die Methode „ refresh_token “ kann nicht
zum Abrufen eines neuen IAM-Zugriffstokens verwendet werden. Wenn das IAM-Zugriffstoken bald abläuft, verwenden Sie den API-Schlüssel, um ein neues Zugriffstoken wie aufgelistet zu erstellen.
-
Sie müssen die Dateien „
access_token“ und „refresh_token“ erstellen.export IBMCLOUD_API_KEY=<ibmcloud-api_key> curl -X POST "https://iam.cloud.ibm.com/identity/token" -H "Content-Type: application/x-www-form-urlencoded" -d "grant_type=urn:ibm:params:oauth:grant-type:apikey&apikey=$IBMCLOUD_API_KEY" -u bx:bx -
Exportieren Sie das Zugriffstoken
access_tokenund das Aktualisierungstokenrefresh_token, die Sie in Schritt 1 erhalten haben, als Umgebungsvariablen fürACCESS_TOKENundREFRESH_TOKEN.export ACCESS_TOKEN=<access_token> export REFRESH_TOKEN=<refresh_token> -
Arbeitsbereich erstellen
curl --request POST --url https://cloud.ibm.com/schematics/overview/v1/workspaces -H "Authorization: Bearer <access_token>" -d '{"name":"","type": ["terraform_v1.4"],"description": "","resource_group": "","tags": [],"template_repo": {"url": ""},"template_data": [{"folder": ".","type": "terraform_v1.4","variablestore": [{"name": "variable_name1","value": "variable_value1"},{"name": "variable_name2","value": "variable_value2"}]}]}'
Vorgehensweise zum Abrufen der Schematics-Arbeitsbereichs-ID als Umgebungsvariable
Sie können die Schematics-Arbeitsbereichs-ID als Umgebungsvariable mithilfe des folgenden Codes abrufen. Vor der Ausführung des Plans oder der Anwendung werden die Umgebungsvariablen IC_SCHEMATICS_WORKSPACE_ID, TF_VAR_IC_SCHEMATICS_WORKSPACE_ID,
TF_VAR_IC_SCHEMATICS_WORKSPACE_RG_I, IC_IAM_TOKEN und IC_IAM_REFRESH_TOKEN automatisch auf Ihre Terraform-Scripts gesetzt.
data "external" "env" {
program = ["jq", "-n", "env"]
}
output "workspace_id" {
value = "${lookup(data.external.env.result, "TF_VAR_IC_SCHEMATICS_WORKSPACE_ID")}"
Wenn Sie alle verfügbaren Umgebungsvariablen im Arbeitsbereich anzeigen möchten, verwenden Sie output "${jsonencode(data.external.env.result)}"-Code.
Wie behebe ich 401-Fehler aus dem Broker-Aufruf beim Löschen der Schematics-Objekte?
Nach der Löschung der Schematics Objekte, wenn die Schematics Dienste die Objekte in Ihrem Konto nicht löschen können. Sie müssen ein Schematics Support-Ticket auslösen, um aus der Ressourcensteuerung zu entfernen.