Clusterzugriff mithilfe von Terraform für Red Hat OpenShift on IBM Cloud zuweisen
Terraform in IBM Cloud® ermöglicht eine vorhersehbare und konsistente Bereitstellung von IBM Cloud-Services, damit Sie in kürzester Zeit komplexe, mehrschichtige Cloudumgebungen nach IaC-Prinzipien (Infrastructure as Code) erstellen können. Ähnlich wie bei der Verwendung der IBM Cloud CLI oder API und SDKs können Sie die Bereitstellung, Aktualisierung und Löschung Ihrer Red Hat OpenShift on IBM Cloud Ressourcen mit der HashiCorp Configuration Language (HCL) automatisieren.
Suchen Sie eine verwaltete Lösung für Terraform on IBM Cloud®? Probieren Sie IBM Cloud® Schematics aus. Mit Schematics können Sie die Terraform-Skriptsprache verwenden, mit der Sie vertraut sind, aber Sie müssen sich nicht um die Einrichtung und Pflege der Terraform-Befehlszeile oder des IBM Cloud® Provider-Plugin. Schematics bietet auch vordefinierte Terraform-Vorlagen, die Sie einfach aus dem IBM Cloud® Katalog installieren können.
Red Hat OpenShift-Cluster mit Terraform erstellen
Bevor Sie den Clusterzugriff mithilfe von Terraform zuweisen können, führen Sie die Schritte zum Erstellen eines Red Hat OpenShift-Clusters mit Terraform aus. Wenn Sie bereits über einen Cluster verfügen, lesen Sie den Abschnitt IAM-Benutzerzugriff zuweisen.
Bevor Sie beginnen, stellen Sie sicher, dass Sie über den erforderlichen Zugang verfügen, um Red Hat OpenShift on IBM Cloud Ressourcen zu erstellen und mit ihnen zu arbeiten.
-
Führen Sie die Anweisungen im Terraform auf IBM Cloud® Lernprogramm zur Einführung, um die Terraform-CLI zu installieren und konfigurieren Sie das IBM Cloud® Provider-Plug-in für Terraform. Das Plug-in abstrahiert die IBM Cloud®-APIs, die zur Bereitstellung, Aktualisierung oder Löschung von Red Hat OpenShift-Serviceinstanzen und Ressourcen verwendet werden.
-
Befolgen Sie das Lernprogramm, um Einzel-und Mehrzonencluster mit Terraform zu erstellen.
IAM-Benutzerzugriff auf Red Hat OpenShift-Cluster zuweisen
Mit Terraform können Sie den IAM-Benutzerzugriff für Red Hat OpenShift-Cluster in einem IBM Cloud-Konto zuweisen. Weitere Informationen zur Verwendung von Terraform mit IAM-Richtlinien finden Sie in der Dokumentation zum IBM Cloud-Provider für Terraform.
-
Erstellen Sie im Terraform-Verzeichnis eine Konfigurationsdatei namens
iam.tf. Fügen Sie in Ihrer Dateiiam.tfdie Konfigurationsparameter hinzu, um eine IAM-Benutzerzugriffsrichtlinie für einen Red Hat OpenShift-Cluster mit der HashiCorp-Konfigurationssprache (HCL) zu erstellen. Die folgende Beispielkonfiguration erstellt dieibm_iam_user_policyund ordnet die Richtlinie dann einem angegebenen Cluster zu. Weitere Informationen finden Sie in der Terraform-Dokumentation.resource "ibm_iam_user_policy" "cluster" { ibm_id = "<ibm_id>" roles = ["<access_role_1>, <access_role_2>"] resources { service = "containers-kubernetes" resource_instance_id = "<cluster_name>" } }IAM-Zugriffsrichtlinien mit Terraform konfigurieren Ressource Beschreibung ibm_idDie IBM Cloud-ID oder E-Mail-Adresse des Benutzers, für den Sie die IAM-Zugriffsrichtlinie erstellen wollen rolesEine durch Kommas getrennte Liste der Zugriffsrollen, die Sie dem Benutzer zuweisen möchten serviceDie Art des Dienstes, für den die Zugangsrichtlinie gilt. Geben Sie "openshift"für Red Hat OpenShift-Cluster ein. Führen Sieibmcloud oc catalog service-marketplaceaus, um eine vollständige Liste der gültigen Servicetypen zu erhalten.resource_instance_idDie ID oder der Name des Clusters. Beispiel für eine Konfigurationsdatei:
resource "ibm_iam_user_policy" "test_policy" { ibm_id = "ibm_id@ibm.com" roles = ["Viewer", "Editor", "Administrator"] resources { service = "containers-kubernetes" resource_instance_id = "my-cluster" } } -
Terraform-Befehlszeilenschnittstelle initialisieren.
terraform init -
Erstellen Sie einen Terraform-Ausführungsplan und überprüfen Sie die Ausgabe. Der Terraform-Ausführungsplan fasst alle Aktionen zusammen, die zur Erstellung des Red Hat OpenShift in Ihrem Konto ausgeführt werden. Beachten Sie den Abschnitt
Plander Ausgabe. In der Beispielausgabe wirdPlan: 1 to add, 0 to change, 0 to destroyangegeben, da die Konfigurationsdatei eine IAM-Benutzerzugriffsrichtlinie erstellt.Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols: + create Terraform will perform the following actions: # ibm_iam_user_policy.test_policy will be created + resource "ibm_iam_user_policy" "test_policy" { + account_management = false + ibm_id = "ibm_id@ibm.com" + id = (known after apply) + roles = [ + "Viewer", + "Editor", + "Administrator", ] + resources { + service = "containers-kubernetes" } } Plan: 1 to add, 0 to change, 0 to destroy. -
Wenden Sie die Konfigurationsdatei an, um die Zugriffsrichtlinie zu erstellen. Es kann ein paar Sekunden dauern, bis der Vorgang abgeschlossen ist. Notieren Sie in der Ausgabe die Richtlinien-ID-Nummer nach der IBM E-Mail des Benutzers.
terraform applyBeispielausgabe:
ibm_iam_user_policy.test_policy: Creating... ibm_iam_user_policy.test_policy: Creation complete after 2s [id=ibm_id@ibm.com/f81b161f-e1db-4084-8b28-cfcbe88fec72] -
Überprüfen Sie, ob die IAM-Zugriffsrichtlinie erfolgreich erstellt wurde, indem Sie den Befehl ausführen und nach der zuvor notierten Richtlinien-ID suchen.
ibmcloud iam user-policies ibm_id@ibm.comBeispielausgabe:
Policy ID: f81b161f-e1db-4084-8b28-cfcbe88fec72 Roles: Viewer, Editor, Administrator Resources: Service Name containers-kubernetes Service Instance my-cluster