IBM Cloud Docs
Clusterzugriff mithilfe von Terraform für Red Hat OpenShift on IBM Cloud zuweisen

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.

  1. 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.

  2. Befolgen Sie das Lernprogramm, um Einzel-und Mehrzonencluster mit Terraform zu erstellen.

  3. Optional: Verwenden Sie Terraform zum Konfigurieren von IAM-Benutzerzugriffsrichtlinien für Ihren Red Hat OpenShift-Cluster.

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.

  1. Erstellen Sie im Terraform-Verzeichnis eine Konfigurationsdatei namens iam.tf. Fügen Sie in Ihrer Datei iam.tf die Konfigurationsparameter hinzu, um eine IAM-Benutzerzugriffsrichtlinie für einen Red Hat OpenShift-Cluster mit der HashiCorp-Konfigurationssprache (HCL) zu erstellen. Die folgende Beispielkonfiguration erstellt die ibm_iam_user_policy und 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_id Die IBM Cloud-ID oder E-Mail-Adresse des Benutzers, für den Sie die IAM-Zugriffsrichtlinie erstellen wollen
    roles Eine durch Kommas getrennte Liste der Zugriffsrollen, die Sie dem Benutzer zuweisen möchten
    service Die Art des Dienstes, für den die Zugangsrichtlinie gilt. Geben Sie "openshift" für Red Hat OpenShift-Cluster ein. Führen Sie ibmcloud oc catalog service-marketplace aus, um eine vollständige Liste der gültigen Servicetypen zu erhalten.
    resource_instance_id Die 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"
        }
    }
    
  2. Terraform-Befehlszeilenschnittstelle initialisieren.

    terraform init
    
  3. 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 Plan der Ausgabe. In der Beispielausgabe wird Plan: 1 to add, 0 to change, 0 to destroy angegeben, 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.
    
  4. 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 apply
    

    Beispielausgabe:

    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]
    
  5. Ü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.com
    

    Beispielausgabe:

    Policy ID:   f81b161f-e1db-4084-8b28-cfcbe88fec72   
    Roles:       Viewer, Editor, Administrator   
    Resources:                        
                Service Name       containers-kubernetes   
                Service Instance   my-cluster