Ressourcen bereitstellen, konfigurieren und entfernen
Mit Terraform können Sie Ihre Ressourcen in der Cloud effizient bereitstellen, ändern und entfernen.
Info zu Terraform-Statusdateien
Terraform speichert Statusinformationen, um die verwalteten Infrastrukturressourcen zu überwachen, die bereitgestellten Ressourcen Ihrer Konfiguration zuzuordnen, Metadaten zu überwachen und die Performance für große Infrastruktur-Deployments zu verbessern.
Standardmäßig wird die Datei terraform.tfstate
auf dem lokalen Host gespeichert. Dieses Standardverhalten ist in IT-Umgebungen nicht optimal, in denen mehrere Benutzer die in einer bestimmten Konfiguration definierten Ressourcen erstellen und endgültig löschen müssen. Um das Deployment und die Verwaltung von Ressourcen in einer Mehrbenutzerumgebung zu steuern, speichern Sie die Terraform-Statusdateien in Oracle Cloud Infrastructure Object Storage und geben die Statusdateien und Sperrdateien für alle Benutzer frei.
Ressourcen erstellen
Nachdem Sie die Variablen in der Datei terraform.tfvars
festgelegt haben, verwenden Sie die Terraform-CLI, um die in der Terraform-Konfiguration definierten Ressourcen bereitzustellen.
Apply complete! Resources: 33 added, 0 changed, 0 destroyed.
Outputs:
admin_private_ip = 10.0.1.10
bastion_public_ip = 203.0.113.101
kubeconfig = export KUBECONFIG=generated/kubeconfig
ocirtoken = <sensitive>
ssh_to_admin = ssh -i /home/joe/.ssh/id_rsa -J opc@203.0.113.101 opc@10.0.1.10
ssh_to_bastion = ssh -i /home/joe/.ssh/id_rsa opc@203.0.113.101
- Die Ausgabe
kubeconfig
zeigt den Befehl an, mit dem Sie die UmgebungsvariableKUBECONFIG
auf Ihrem lokalen Host festlegen können. Führen Sie diesen Befehl aus, wenn Sie die CLIkubectl
vom lokalen Host zum Verwalten des Kubernetes-Clusters verwenden möchten. Der Befehl legtKUBECONFIG
auf die Dateigenerated/kubeconfig
fest, die Terraform beim Anwenden der Konfiguration erstellt. - Die Ausgabe
ssh_to_admin
zeigt den Befehlssh
an, mit dem Sie eine Verbindung zum Admin-Host herstellen können. - Die Ausgabe
ssh_to_bastion
zeigt den Befehlssh
an, mit dem Sie eine Verbindung zum Bastion-Host herstellen können.
Hinweis:
Sie können diese Terraform-Ausgabe jederzeit anzeigen, indem Sie den Befehlterraform output
ausführen.Admin-Host die Ressourcenverwaltung zulassen
Damit der Admin-Host Ressourcen im Compartment verwalten kann, können Sie ihn als Instanz-Principal angeben. Verwenden Sie dieses Feature, wenn Sie CLI-Befehle ausführen oder API-Aufrufe vom Admin-Host vornehmen möchten, um Ressourcen in der Topologie zu verwalten.
Hinweis:
Jeder Benutzer, der sich mit SSH bei einer Compute-Instanz anmelden kann, übernimmt die Berechtigungen des Instanz-Principals, die der Instanz zugewiesen sind. Berücksichtigen Sie dies, wenn Sie entscheiden, ob der Admin-Host als Instanz-Principal angegeben werden soll. Sie können dieses Feature jederzeit deaktivieren oder aktivieren, ohne dass dies Auswirkungen auf den Admin-Host hat.-
Um den Admin-Host als Instanz-Principal anzugeben, legen Sie Folgendes in
terraform.tfvars
fest, und führen Sieterraform apply
aus.admin_instance_principal = true
Der Admin-Host wird zu einem Mitglied einer dynamischen Gruppe, und eine Policy-Anweisung wird erstellt, damit die dynamische Gruppe alle Ressourcen im Compartment verwalten kann.
-
Um die Instanz-Principal-Berechtigungen vom Admin-Host abzuziehen, legen Sie Folgendes in
terraform.tfvars
fest, und führen Sieterraform apply
aus.admin_instance_principal = false
Benachrichtigungen für den Bastion-Host aktivieren oder deaktivieren
Mit dem Oracle Cloud Infrastructure-Benachrichtigungsservice können Sie Statusmeldungen vom Bastion-Host erhalten, wenn Updates eingespielt werden, oder wenn Oracle Ksplice einen bekannten Explokationsversuch erkennt.
Hinweis:
Der Terraform-Code in dieser Lösung konfiguriert nur Benachrichtigungen, wenn Sie das Oracle Autonomous Linux-Standardbild verwenden.-
Um die Benachrichtigungen für den Bastion-Host zu aktivieren, legen Sie die folgenden Variablen in
terraform.tfvars
fest:bastion_notification_enabled = true bastion_notification_endpoint = "email_address" bastion_notification_protocol = "EMAIL" bastion_notification_topic = "topic_name"
Im Folgenden finden Sie ein Beispiel für
terraform.tfvars
mit den definierten informativen Variablen.bastion_notification_enabled = true bastion_notification_endpoint = "joe@example.com" bastion_notification_protocol = "EMAIL" bastion_notification_topic = "bastion"
- Wenn der Basishost bereits erstellt wurde und Sie jetzt Benachrichtigungen aktivieren möchten, legen Sie diese Variablen fest, und führen Sie
terraform apply
erneut aus.- Die erforderlichen Policys werden definiert, damit der Basishost Benachrichtigungen veröffentlichen kann.
- Ein Benachrichtigungsthema wird erstellt, und die von Ihnen angegebene E-Mail-Adresse ist für das Thema abonniert.
- Der Bastion-Host ist so konfiguriert, dass Benachrichtigungen gesendet werden.
Nachdem die Ressourcen erstellt wurden, erhalten Sie eine E-Mail, in der Sie aufgefordert werden, das Abonnement zu bestätigen.
-
Um Benachrichtigungen zu deaktivieren, legen Sie Folgendes in
terraform.tfvars
fest, und führen Sieterraform apply
aus.bastion_notification_enabled = false admin_notification_enabled = false