Versionseinschränkungen angeben
Verwenden Sie Versionsbeschränkungen, um die Version von Terraform, des Terraform-Providers oder von Ansible anzugeben, die Sie für Ihre Terraform-Vorlage oder Ihr Ansible-Playbook verwenden möchten.
Schematics unterstützt gleichzeitig mehrere Images, die jeweils eine bestimmte Version des IBM CloudProvider-Plug-ins, andere Terraform-Provider, wie z. B. den REST-API-Provider, und die ausführbare Datei Ansible aufweisen. Jedes Bild wird von IBM Clouderstellt, getestet und verifiziert. Die im Lieferumfang enthaltenen Terraform-Provider-Versionen werden für eine bestimmte Terraform-CLI-Version getestet und verpackt.
Es empfiehlt sich, die von Ihrer Terraform-Vorlage oder Ihrem Ansible-Playbook benötigte Version mithilfe von Versionsbeschränkungen anzugeben. Auf diese Weise können Sie sicherstellen, dass Ihre Vorlagen und Playbooks weiterhin funktionieren, selbst wenn Terraform-Provider, Terraform-Provider oder Ansible neue Versionen veröffentlichen, die möglicherweise fehlerhafte Änderungen einführen.
Übersicht der SchematicsBilder und verpackten Terraform-Provider
Verwenden Sie den Befehl ibmcloud schematics version, um eine Liste der SchematicsBilder und des Terraform-Providers und der ausführbaren Ansible-Versionen abzurufen, die in den einzelnen Bildern verpackt sind. In der folgenden
CLI-Ausgabe wird beispielsweise die neueste Version des IBM Cloud-Provider-Plug-ins in Terraform v1.1 getestet.
Schematics unterstützt die 5 neuesten IBM Cloud Provider Plug-in for Terraform-Binärdateien in seinem Image. Weitere Informationen finden Sie unter Neueste Releases. Im folgenden Abschnitt finden Sie einige Einschränkungen, die Sie beachten müssen, wenn Sie den IBM Cloud-Provider in Ihrer Terraform-Vorlage verwenden.
Es wird empfohlen, Terraform v1.0 oder höher zu verwenden.
- Wenn Sie Terraform v0.13 oder höher verwenden, können Sie eine beliebige Version des IBM CloudProviders in Ihrer Vorlage auswählen.Anschließend lädt Schematics automatisch den IBM Cloud-Provider entweder lokal aus dem Cache oder über Fernzugriff von der HashiCorp Configuration Language-Terraform-Registry (HCL-Terraform-Registry) herunter.
Wenn Sie eines der vordefinierten Schematics-Images verwenden möchten, müssen Sie die Version des IBM Cloud-Provider-Plug-ins explizit in Ihrer Terraform-Vorlage, die die gewünschten Providerversionen enthält, deklarieren. Weitere Informationen finden Sie unter Versionseinschränkungen für die Terraform-CLI und die Terraform-Provider angeben.
Sie können die Standardversion für die ausführbare Ansible-Datei nicht ändern. Sie können nur die Version der referenzierten Ansible-Rollen und Sammlungen angeben.
ibmcloud schematics version
Template Type Version
terraform terraform_v1.4
Additional terraform Providers Version
Red Hat OpenShift client v3.11.0
Provider for REST API v1.10.0
ansible v2.9.27
Ansible Provisioner v2.3.3
IBM Cloud Provider v1.38.2
Template Type Version
terraform terraform_v1.5
Additional terraform Providers Version
IBM Cloud Provider v1.38.2
Ansible Provisioner v2.3.3
Red Hat OpenShift client v3.11.0
Provider for REST API v1.10.0
ansible v2.9.27
Template Type Version
terraform terraform_v1.6
Additional terraform Providers Version
Ansible Provisioner v2.3.3
IBM Cloud Provider v1.38.2
Red Hat OpenShift client v3.11.0
Provider for REST API v1.10.0
ansible v2.9.27
Template Type Version
terraform terraform_v1.7
Additional terraform Providers Version
Provider for REST API v1.10.0
ansible v2.9.27
IBM Cloud Provider v1.38.2
Red Hat OpenShift client v3.11.0
Ansible Provisioner v2.3.3
Template Type Version
terraform terraform_v1.8
Additional terraform Providers Version
ansible v2.9.27
IBM Cloud Provider v1.38.2
Ansible Provisioner v2.3.3
Red Hat OpenShift client v3.11.0
Provider for REST API v1.10.0
Template Type Version
terraform terraform_v1.9
Additional terraform Providers Version
ansible v2.9.27
Ansible Provisioner v2.3.3
IBM Cloud Provider v1.38.2
Red Hat OpenShift client v3.11.0
Provider for REST API v1.10.0
Template Type Version
terraform terraform_v1.10
Additional terraform Providers Version
IBM Cloud Provider v1.38.2
Red Hat OpenShift client v3.11.0
Provider for REST API v1.10.0
Ansible Provisioner v2.3.3
ansible v2.9.27
Template Type Version
terraform terraform_v1.11
Additional terraform Providers Version
IBM Cloud Provider v1.38.2
Red Hat OpenShift client v3.11.0
Provider for REST API v1.10.0
ansible v2.9.27
Ansible Provisioner v2.3.3
Template Type Version
terraform terraform_v1.12
Additional terraform Providers Version
ansible v2.9.27
Ansible Provisioner v2.3.3
Red Hat OpenShift client v3.11.0
IBM Cloud Provider v1.38.2
Provider for REST API v1.10.0
Template Type Version
terraform terraform_v1.13
Additional terraform Providers Version
ansible v2.9.27
Ansible Provisioner v2.3.3
Red Hat OpenShift client v3.11.0
IBM Cloud Provider v1.38.2
Provider for REST API v1.10.0
Template Type Version
terraform terraform_v1.14
Additional terraform Providers Version
ansible v2.9.27
Ansible Provisioner v2.3.3
Red Hat OpenShift client v3.11.0
IBM Cloud Provider v1.38.2
Provider for REST API v1.10.0
OK
Versionseinschränkungen für die Terraform-CLI und die Terraform-Provider angeben
Sie können auswählen, ob die Terraform-CLI-Version und die Version eines der Provider angegeben werden sollen, die Sie mithilfe von Terraform-Versionseinschränkungen verwenden möchten. Weitere Informationen zur Festlegung von Versionsbeschränkungen finden Sie in der Terraform-Dokumentation.
Versionseinschränkungen für die Terraform-CLI
Wenn Sie einen Schematics-Arbeitsbereich erstellen und eine Terraform-Version auswählen v1.4, werden Ihre Terraform-Vorlagen mit der Standard-Patch-Version ausgeführt, die unter Schematics festgelegt ist. Wenn Sie beispielsweise
terraform_v1.4 auswählen, werden Ihre Vorlagen mithilfe von Terraform v0.13.4 angewendet. Sie können den Block required_providers in Ihrer provider-Definition verwenden, um die Terraform-Engine in Schematicszu
zwingen, eine höhere Version zu extrahieren.
Sie können nur Versionen angeben, die höher sind als die Standardversion MAJOR.MINOR.PATH, die in Schematicsfestgelegt ist. Im Codeblock gibt version = "x.x.x" die IBM Cloud-Providerversion an.
terraform {
required_providers {
version = "1.39.1"
}
}
Sie können in required_versions Terraform-Versionen angeben, die höher sind als die Standardversion MAJOR.MINOR.PATH in der Terraform-Konfigurationsdatei. Im Codeblock gibt required_version = ">=1.0.0, <2.0" die Terraform-Version an.
terraform {
required_version = ">=1.0.0, <2.0"
required_providers {
ibm = {
source = "IBM-Cloud/ibm"
}
}
}
Versionseinschränkungen für Terraform-Provider
Wenn Sie eine der vordefinierten Schematics-Images verwenden möchten, müssen Sie die Version des IBM Cloud-Provider-Plug-ins explizit in Ihrer Terraform-Vorlage, die die gewünschten Providerversionen enthält, deklarieren.
Wenn die IBM CloudProvider-Plug-in-Version in Ihrer Terraform-Vorlage nicht deklariert ist, wird die aktuelle Version des Provider-Plug-ins automatisch in Schematicsverwendet.
Beispiel für die Angabe eines vordefinierten Schematics-Image:
Das folgende Beispiel zeigt, wie das Schematics-Image verwendet wird, das für das IBM Cloud-Provider-Plug-in v1.39.1 erstellt wurde. Dieses Bild enthält bestimmte Versionen für andere Provider, wie z. B. den REST-API-Provider.
terraform {
required_providers {
ibm = {
source = "IBM-Cloud/ibm"
version = "v1.39.1"
}
}
Beispiel für die Verwendung bestimmter Terraform-Providerversionen:
Verwenden Sie die folgende Syntax, um eine andere IBM CloudProvider-Plug-in-Version zu verwenden, oder um Ihre Terraform-Konfigurationsdatei an eine bestimmte Version eines anderen externen Providers, z. B. AWS, Helm oder Kubernetes, zu fixieren.
terraform {
required_providers {
ibm = {
source = "IBM-Cloud/ibm"
version = "~> 1.38.1"
}
aws = {
version = ">= 2.7.0"
source = "hashicorp/aws"
}
}
Versionseinschränkungen in Ansible angeben
Schematics Derzeit wird ausschließlich die neueste Version von Ansible ( v2.9.27 ) unterstützt. Wenn Sie eine SchematicsAktion erstellen, müssen Sie sicherstellen, dass Ihre Ansible-Playbooks mit dieser Version ausgeführt werden können. Sie können für Ihr Spielbuch keine bestimmte Ansible-Version angeben.
Wenn Sie jedoch vorhandene Ansible-Rollen oder Sammlungen in Ihrem Playbook verwenden, können Sie die Version der Rolle oder Sammlung angeben, die Sie mit der Datei requirements.yml ausführen möchten. Weitere Informationen zur Referenzierung
von Rollen und Sammlungen in Ihrem Playbook finden Sie unter Verweis auf Ansible-Rollen in Ihrem Playbook und Verweis auf Ansible-Sammlungen in Ihrem Playbook.
Weitere Informationen zur Angabe von Versionen für Rollen und Sammlungen finden Sie in der Dokumentation zu Ansible.
roles:
- name: andrewrothstein.kubectl
version: 1.1.50