Databases for PostgreSQL -Instanz mit Terraform bereitstellen
In diesem Lernprogramm erfahren Sie, wie Sie mit Terraform eine Databases for PostgreSQL -Instanz bereitstellen.
Übersicht über die verfügbaren Tools
Bevor Sie mit der Bereitstellung einer Datenbank mit Terraform beginnen, Sie benötigen ein IBM Cloud -Konto.
In diesem Lernprogramm stellen Sie Ihre Datenbank mithilfe von Terraform bereit, wodurch Sie die Infrastruktur sicher und vorhersehbar erstellen, ändern und verbessern können. Es ist ein Open-Source-Tool, das APIs in deklarative Konfigurationsdateien codiert, die von Teammitgliedern gemeinsam genutzt werden können, die als Code behandelt, bearbeitet, geprüft und versioniert werden. Das Tool beschreibt Infrastruktur in Form von Code. Sie notieren, wie Ihre Infrastruktur aussehen sollte, und Terraform erstellt, aktualisiert und entfernt Cloudressourcen nach Bedarf. Weitere Informationen finden Sie unter Verstehen Sie die Grundlagen von Terraform.
Zur Unterstützung eines Multi-Cloud-Konzepts arbeitet Terraform mit Providern. Ein Provider ist für das Verständnis von API-Interaktionen und die Bereitstellung von Ressourcen verantwortlich. IBM Cloud® verfügt über einen Provider für Terraform, mit dem Benutzer von IBM Cloud® Ressourcen mit Terraform verwalten können. Obwohl Terraform der Kategorie 'Infrastruktur als Code' angehört, kann das Tool nicht nur für IaaS-Ressourcen (Infrastructure-As-A-Service) verwendet werden. Weitere Informationen finden Sie unter ibm_datenbank.
Terraform installieren
- Folgen Sie den Schritten unter Terraform installieren, um Terraform zu installieren.
Konfigurieren Sie das Plug-in IBM Cloud® Provider
-
Erstellen oder rufen Sie einen IBM Cloud® -API-Schlüssel ab. Der API-Schlüssel wird zur Authentifizierung bei der IBM Cloud® -Plattform und zur Bestimmung Ihrer Berechtigungen für IBM Cloud® -Services verwendet.
-
Erstellen Sie ein Terraform-Projektverzeichnis für IBM Cloud -Datenbanken. Das Verzeichnis enthält alle Konfigurationsdateien, die Sie im Rahmen dieses Lernprogramms erstellen. Das Verzeichnis in diesem Lernprogramm heißt
tf-postgres, aber Sie können einen beliebigen Namen für das Verzeichnis verwenden.mkdir tf-postgres && cd tf-postgres -
Erstellen Sie in Ihrem Projektverzeichnis eine Variablendefinitionsdatei namens
terraform.tfvarsund geben Sie den IBM Cloud -API-Schlüssel an, den Sie abgerufen haben. Zusätzlich geben Sie die Region an, in der Ihre IBM Cloud -Ressourcen erstellt werden sollen. Wenn keine Region angegeben ist, erstellt das IBM Cloud® Provider-Plug-in automatisch Ihre Ressourcen in der Region 'Vereinigte Staaten (Süden)'. Variablen, die in der Dateiterraform.tfvarsdefiniert sind, werden von Terraform automatisch geladen, wenn das IBM Cloud Provider-Plug-in initialisiert wird. Sie können in jeder von Ihnen verwendeten Terraform-Konfigurationsdatei auf sie verweisen.Da die Variablendefinitionsdatei vertrauliche Informationen enthält, sollten Sie diese Datei nicht mit einer Push-Operation an ein Versionssteuerungssystem übertragen. Diese Datei ist nur auf Ihrem lokalen System vorgesehen.
**Beispiel für
terraform.tfvarsDatei **ibmcloud_api_key = "<IBMCLOUD_API_KEY>" region = "us-east"Die
us-east-Region wird als Beispiel bereitgestellt, nicht als Anforderung. Verwenden Sie die Region, die für Ihre Instanzbereitstellung am besten geeignet ist. -
Erstellen Sie eine Providerkonfigurationsdatei mit dem Namen
provider.tf. Verwenden Sie diese Datei, um das IBM Cloud -Provider-Plug-in mit dem API-Schlüssel IBM Cloud aus Ihrer Dateiterraform.tfvarszu konfigurieren. Das Plug-in verwendet diesen Schlüssel, um auf IBM Cloud zuzugreifen und mit Ihrem IBM Cloud -Service zu arbeiten. Um über die Dateiterraform.tfvarsauf einen Variablenwert zuzugreifen, müssen Sie die Variable zuerst in der Dateiprovider.tfdeklarieren und anschließend mithilfe der Syntaxvar.<variable_name>auf die Variable verweisen.Beispieldatei
provider.tfterraform { required_providers { ibm = { source = "IBM-Cloud/ibm" version = ">= 1.28.0" } } } variable "ibmcloud_api_key" {} variable "region" {} provider "ibm" { ibmcloud_api_key = var.ibmcloud_api_key region = var.region }
Bereitstellung einer Databases for PostgreSQL
Erstellen Sie eine Terraform-Konfigurationsdatei mit dem Namen postgres.tf.
**Beispiel für postgres.tf Datei **
```terraform {: codeblock}
resource "ibm_resource_group" "resource_group" {
name = "tutorialRG"
}
resource "ibm_database" "postgresql_db" {
resource_group_id = ibm_resource_group.resource_group.id
name = "terraform_postgres"
service = "databases-for-postgresql"
plan = "standard"
location = "us-east"
service_endpoints = "public"
adminpassword = "password123456789"
group {
group_id = "member"
host_flavor {
id = "multitenant"
}
cpu {
allocation_count = 2
}
memory {
allocation_mb = 4096
}
disk {
allocation_mb = 5120
}
}
}
data "ibm_database_connection" "icd_conn" {
deployment_id = ibm_database.postgresql_db.id
user_type = "database"
user_id = "admin"
endpoint_type = "public"
}
output "Postgresql" {
value = data.ibm_database_connection.icd_conn
}
```
- resource_group_id- Der von Ihnen angegebene Wert der Ressourcengruppe.
- Name -Der Servicename kann eine beliebige Zeichenfolge sein und ist der Name, der im Web und in der Befehlszeilenschnittstelle zur Identifizierung der neuen Bereitstellung verwendet wird.
- Service -Für Databases for PostgreSQL lautet die Service-ID
databases-for-postgresql. Wählen Sie die richtige Service-ID für Ihre Implementierung aus. - Plan -In diesem Lernprogramm wird ein Standardplan verwendet. Für weitere Informationen siehe IBM Cloud® Preisgestaltung.
- Standort -Wählen Sie eine geeignete Region für Ihre Bereitstellungsinstanz aus.
- dienst_endpunkt- The service endpoints of your deployment.
publicis used in the tutorial, however it is recommended that onlyprivateendpoints are used in production. - adminpassword- Der Dienst Databases for PostgreSQL wird mit einem Admin-Benutzer bereitgestellt, so dass Sie PostgreSQL über das Befehlszeilentool
psqlverwalten können. Weitere Informationen finden Sie unter Administratorkennwort festlegen. - gruppe- Skalierungsgruppen stellen die verschiedenen Ressourcen dar, die einer Bereitstellung zugewiesen werden. Ein Beispiel für die Konfiguration und Bereitstellung einer Datenbank, die
groupAttribute verwendet, finden Sie unter Beispieldatenbankinstanz unter Verwendung von Gruppenattributen. - gruppenwerte- Die Werte für Arbeitsspeicher, Festplatte und CPU basieren alle auf den Mindestanforderungen für die Bereitstellung einer gemeinsam genutzten Recheninstanz Databases for PostgreSQL.
- output- Wenn der Terraform-Prozess beendet ist, werden die Verbindungsinformationen für die neue Datenbank im Terminal angezeigt.
Alternativ können Sie Terraform IBM Modules(TIM)für Databases for PostgreSQL verwenden, was die empfohlene Vorgehensweise für Produktionsumgebungen ist. Im Gegensatz zur Rohressource bietet dieses Modul die folgenden Möglichkeiten:
- Umfassende Dokumentation mit README-Dateien und Beispielen
- Mehrere Einsatzszenarien anhand verschiedener Beispiele
- Kontrollierte Versionierung für sichere Updates und einfachere Verwaltung von Abhängigkeiten
- Unternehmenstaugliche Konfigurationen, die sicher, skalierbar und konform sind
So erstellen Sie eine Terraform-Konfigurationsdatei mit dem Namen postgres.tf:
Beispiel einer postgres.tf Datei
resource "ibm_resource_group" "resource_group" {
name = "Default"
}
module "postgresql_db" {
source = "terraform-ibm-modules/icd-postgresql/ibm"
version = "latest" # Replace "latest" with a release version to lock into a specific release
resource_group_id = ibm_resource_group.resource_group.id
name = "my-instance"
region = "us-south"
}
Konfiguration testen
Nachdem Sie das IBM Cloud® -Provider-Plug-in für Ihre Ressource konfiguriert haben, können Sie Terraform unter IBM Cloud® verwenden, um Befehle zum Bereitstellen der Ressource zu initialisieren, auszuführen, zu planen und anzuwenden. Sie benötigen die folgenden Befehle:
| Befehlsbeschreibung | Befehl |
|---|---|
terraform init |
Mit dem Befehl terraform init wird ein Arbeitsverzeichnis initialisiert, das Terraform-Konfigurationsdateien enthält. |
terraform fmt |
Der Befehl terraform fmt wird verwendet, um Terraform-Konfigurationsdateien in ein kanonisches Format und einen kanonischen Stil umzuschreiben. |
terraform validate |
Der Befehl terraform validate validiert die Konfigurationsdateien in einem Verzeichnis. |
terraform apply |
Der Befehl terraform apply führt die Aktionen aus, die in einem Terraform-Plan vorgeschlagen werden. |
Weitere Informationen finden Sie unter IBM Cloud® -Ressourcen bereitstellen.
Informationen zum Anzeigen von Terraform-Beispielvorlagen mit den vollständigen zu testenden Terraform-Konfigurationsdateien finden Sie in Beispielvorlagen.
Eine Übersicht über die Terraform-Ressourcen und Datenquellen, die Sie verwenden können, finden Sie im Index von Terraform für IBM Cloud® -Ressourcen und -Datenquellen.