Specifica dei vincoli di versione
Utilizza i vincoli di versione per specificare la versione di Terraform, del provider Terraform o di Ansible che desideri utilizzare per il tuo template Terraform o per il tuo playbook Ansible.
Schematics supporta simultaneamente più immagini che impacchettano una versione specifica del plug-in del provider IBM Cloud, altri provider Terraform, come il provider API REST e l'eseguibile Ansible. Ogni immagine viene creata, verificata e verificata da IBM Cloud. Le versioni del provider Terraform incluse vengono verificate e impacchettate per una particolare versione della CLI Terraform.
È consigliabile dichiarare la versione richiesta dal tuo template Terraform o dal playbook Ansible utilizzando i vincoli di versione. In questo modo, puoi garantire che i tuoi modelli e i tuoi playbook continuino a funzionare, anche se Terraform, i provider Terraform o Ansible pubblicano nuove versioni che potrebbero introdurre modifiche di interruzione.
Panoramica delle immagini Schematics e dei provider Terraform impacchettati
Utilizza il comando ibmcloud schematics version per recuperare un elenco delle immagini Schematics e delle versioni del provider Terraform e dell'eseguibile Ansible incluse in ciascuna immagine. Ad esempio,
nell'output della CLI riportato di seguito, l'ultima versione del plug-in del provider IBM Cloud è stata testata su Terraform v1.1.
Schematics supporta le 5 versioni più recenti di IBM Cloud Provider Plug-in for Terraform nella sua immagine. Per ulteriori informazioni, vedi ultime release. Di seguito sono riportati alcuni vincoli che devi seguire quando utilizzi il provider IBM Cloud nel template Terraform.
Si consiglia di utilizzare Terraform v1.0 o versioni successive.
- Se stai usando Terraform v0.13 o superiore, puoi scegliere arbitrariamente qualsiasi versione del provider IBM Cloud nel tuo modello. Quindi, Schematics scarica automaticamente il provider IBM Cloud localmente dalla cache o in remoto dal HashiCorp Configuration Language)Terraform Registry.
Per utilizzare una qualsiasi delle immagini predefinite di Schematics, è necessario dichiarare esplicitamente nel proprio template Terraform la versione del plug-in IBM Cloud Provider che include le versioni del provider desiderate. Per ulteriori informazioni, vedi Specifica dei vincoli della versione per la CLI Terraform e i provider Terraform.
Non è possibile modificare la versione predefinita dell'eseguibile " Ansible ". Puoi solo specificare la versione dei ruoli e delle raccolte di Ansible a cui si fa riferimento.
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
Specifica dei vincoli di versione per la CLI Terraform e i fornitori Terraform
Puoi scegliere di specificare la versione della CLI Terraform e la versione di qualsiasi provider che vuoi utilizzare utilizzando i vincoli della versione Terraform. Per ulteriori informazioni su come specificare i vincoli di versione, consultare la documentazione Terraform.
Vincoli di versione per la CLI Terraform
Quando si crea uno spazio di lavoro su Schematics e si sceglie una versione di Terraform, ad esempio v1.4, i modelli Terraform vengono eseguiti utilizzando la versione patch predefinita impostata su Schematics. Ad esempio, se
scegli terraform_v1.4, i tuoi modelli vengono applicati tramite Terraform v0.13.4. È possibile utilizzare il blocco required_providers nella definizione provider per forzare
il motore Terraform presente in Schematics a scaricare una versione più recente.
Puoi specificare solo versioni superiori alla versione MAJOR.MINOR.PATH predefinita impostata in Schematics. Nel codeblock version = "x.x.x" significa la versione del fornitore IBM Cloud.
terraform {
required_providers {
version = "1.39.1"
}
}
Puoi specificare Terraform required_versions che è superiore al valore predefinito MAJOR.MINOR.PATH nel file di configurazione Terraform. Nel codeblock required_version = ">=1.0.0, <2.0" indica la versione Terraform.
terraform {
required_version = ">=1.0.0, <2.0"
required_providers {
ibm = {
source = "IBM-Cloud/ibm"
}
}
}
Vincoli di versione per i provider Terraform
Per utilizzare qualsiasi immagine Schematics predefinita, devi dichiarare esplicitamente la versione del plug-in del provider IBM Cloud nel tuo modello Terraform che include le versioni del provider che desideri.
Se nel modello Terraform non è specificata la versione del plug-in del provider " IBM Cloud ", verrà utilizzata automaticamente l'ultima versione del plug-in del provider disponibile all'indirizzo Schematics.
Esempio per specificare un' Schematics predefinita:
Il seguente esempio mostra come utilizzare l'immagine Schematics creata per il plug-in provider IBM Cloud v1.39.1. Questa immagine include versioni specifiche per altri provider, ad esempio il provider API REST.
terraform {
required_providers {
ibm = {
source = "IBM-Cloud/ibm"
version = "v1.39.1"
}
}
Esempio di utilizzo di specifiche versioni del provider Terraform:
Per utilizzare una versione del plug-in del provider IBM Cloud diversa o per bloccare il tuo file di configurazione Terraform a una versione specifica di un altro provider esterno, come ad esempio AWS, Helm o Kubernetes, utilizza la seguente sintassi.
terraform {
required_providers {
ibm = {
source = "IBM-Cloud/ibm"
version = "~> 1.38.1"
}
aws = {
version = ">= 2.7.0"
source = "hashicorp/aws"
}
}
Specifica dei vincoli di versione in Ansible
Schematics Attualmente supporta solo l'ultima versione di Ansible: v2.9.27. Quando crei un'azione Schematics, devi assicurarti che i tuoi playbook Ansible possano essere eseguiti con questa versione. Non è possibile specificare una versione Ansible specifica per il playbook.
Tuttavia, se si utilizzano le raccolte o i ruoli Ansible esistenti nel proprio playbook, è possibile specificare la versione del ruolo o della raccolta che si desidera eseguire utilizzando un file requirements.yml. Per ulteriori
informazioni su come fare riferimento ai ruoli e alle raccolte nel playbook, consultare Riferimento ai ruoli Ansible nel playbook e Riferimento alle raccolte Ansible nel playbook.
Per ulteriori informazioni su come specificare le versioni per ruoli e raccolte, consultare la documentazioneAnsible.
roles:
- name: andrewrothstein.kubectl
version: 1.1.50