DigitalOcean ist eine der am einfachsten zu verwenden, cloud, virtual machine Anbietern gibt. Wenn Sie einen schnell-computing-Umgebung bereitgestellt, DigitalOcean virtuellen Maschinen in der Regel in unter 60 Sekunden. Anstelle der Verwendung der Benutzeroberfläche (UI), ist es oft am besten zu automatisieren.
Terraform ist eine Infrastruktur als code-Sprache, die erlaubt, dass Sie mit Anbietern, wie DigitalOcean, Ressourcen bereitstellen, ohne die DigitalOcen UI. In diesem Artikel werden wir untersuchen, wie Terraform zur Bereitstellung einer DigitalOcean Droplet (virtuelle Maschine).
Installation Terraform
Terraform steht für eine Vielzahl von Plattformen, Windows und Linux gleichermaßen. Die einfachste Methode ist das herunterladen der ausführbaren Datei von den unten stehenden link und setzen Sie die ausführbare Datei in ein system-Pfad zu ermöglichen, die darauf verweisen, von überall.
https://www.terraform.io/downloads.html
Erstellen API-Schlüssel von DigitalOcean
Für Terraform für die Kommunikation mit DigitalOcean, die wir generieren müssen API-Schlüssel für die Verwendung mit dem DigitalOcean-Anbieter. Die folgenden Schritte beschreiben, wie Sie erstellen Sie eine neue API-Schlüssel speziell für die Verwendung mit Terraform. Sie könnten mit anderen API-Keys, aber es ist am besten Praxis, um nicht wieder, keys, wo Sie können einfach deaktivieren Sie den Zugriff, wenn nötig.
- Login des DigitalOcean Systemsteuerung.
- Navigieren Sie zu der API-Abschnitt.
- Klicken Sie auf “Generate New Token.”
- Geben Sie eine token-Namen und erlauben die token-lese-und Schreibberechtigung.
- Kopieren Sie den API-Schlüssel, da Sie nicht angezeigt werden es wieder, wir werden dann mit diesem für Terraform.
Erste Schritte
Der erste Schritt, mit jedem Terraform-setup initialisieren Sie eine neue Konfiguration. Zuerst erstellen Sie ein Verzeichnis zum Haus unserer Terraform-Konfiguration.
mkdir digitalocean-terraform
cd digitalocean-terraform
Als Nächstes brauchen wir eine digitalocean.tfvars-Datei, die wir verwenden, um unser API-Key, den wir zuvor generiert. Dies ist eine bewährte Methode, um nicht hartcodieren den Anmeldeinformationen. Bei der Verwendung von version control, was empfohlen wird, können Sie ignorieren .tfvars Dateien, oder spezifisch, um sicherzustellen, dass die Anmeldeinformationen nicht gespeichert werden, die innerhalb des version-control-Geschichte.
touch digitalocean.tfvars
Innerhalb des digitalocean.tfvars, wir erstellen eine einfache variable mit dem Namen api_token. Dies wird später verwendet werden, auf die innerhalb unserer Terraform-Skripte.
api_token = 12345123213412425
Erstellen der Droplet-Ressource-Datei
Nun, wir haben Terraform und DigitalOcean-Konfiguration eingerichtet haben, erstellen wir unsere Terraform-Konfigurationsdatei. Erstellen Sie die Datei digitalocean.tf, und verwenden Sie den boilerplate-code unten, um loszulegen. Damit unsere Konfiguration des Anbieters und Anmeldeinformationen, müssen wir sagen, wo diese Daten kommen.
variable “api_token” {
default = “”
}
der Anbieter “digitalocean” {
token = var.api_token
}
Nun, wir haben unser Skript konfiguriert, können wir terraform init-code, und es wird nun unsere Terraform Metadaten, und installieren Sie Anbieter. Sie werden feststellen, dass die Ausgabe des Befehls zeigt die Anbieter, die heruntergeladen wird, für die Verwendung. Darüber hinaus haben wir gesagt, unser Anbieter verwendet die Anmeldeinformationen, die Sie zuvor in der angegebenen .tfvars-Datei.
Ausfüllen des Droplet-Befehle
In diesem Fall, wir wollen Bereitstellung eine einfache droplet-Ressource. Es gibt ein paar Parameter, die wir verwenden werden. Wir wollen Ihre günstigsten verfügbaren plan, in der NYC1 Daten-center, und fügen Sie ein paar Optionen zu machen, dass die Tropfen mehr in der Zukunft flexibel.
- Droplet-Bild: ubuntu-18.04-x64
- Region: NYC1
- Größe: s1-vcpu1-1gb
Jetzt haben wir unsere Basis-Attribute, die wir konstruieren, die eine Terraform-config für diese Tropfen.
Ressource “digitalocean_droplet” “web” {
Bild = “ubuntu-18-04-x64”
name = “test-web-vm”
region = “nyc1”
size = “en-1vcpu-1 GB”
überwachung = true
ipv6 = true
private_networking = true
}
Die zusätzlichen Befehle, die wir hinzufügen, sind hier für monitoring, ipv6 und private Netzwerke. Monitoring bedeutet, dass Sie Metriken wie CPU und Speicher, innerhalb des DigitalOcean cloud-Konsole. Sie können dann festlegen, dass Benachrichtigungen, die auf diesen Metriken, so ist es sehr nützlich für die Zukunft. IPv6 bedeutet, dass Ihr droplet wird zugänglich von IPv6, die Ihnen hilft, die Zukunftssicherheit Ihres Tröpfchen. Schließlich, private networking bedeutet, dass Sie Ihre Tropfen bekommt eine 10.x.x.x-Adresse aus zugänglich ist, von anderen Tröpfchen, aber nicht das öffentliche internet.
Es gibt eine andere sehr nützliche Fähigkeit, und das ist user-Daten. Für Linux ermöglicht Ihnen das ausführen bestimmter Befehle auf die Bereitstellung der VM, wie das aktualisieren von Paketen. Wir können diese direkt in der Terraform-Konfiguration, indem Sie dieses Attribut auf.
Ressource “digitalocean_droplet” “web” {
Bild = “ubuntu-18-04-x64”
name = “test-web-vm”
region = “nyc1”
size = “en-1vcpu-1 GB”
überwachung = true
ipv6 = true
private_networking = true
user_data = “#cloud-confignpackage_update: truenpackage_upgrade: true,”
}
Wenn Sie beginnen, tun sehr viel mit user_data können Sie speichern die Daten in einer YAML-Datei und fügen Sie Sie dann in den Ressource-Erklärung.
Datei(“Benutzer-Daten.yml”)
Die Bereitstellung der Tröpfchen
Nun, dass unsere Terraform-Konfiguration fertig ist, lassen Sie uns bereitstellen, werden die Tröpfchen durch ausführen des folgenden Codes.
terraform gelten -var-file=”digitalocean.tfvars
Sie können auch feststellen, eine neue .tfstate-Datei erstellt. Dieser erfasst den aktuellen Zustand, der Terraform weiß, der für Ihre Umgebung. Wenn Sie versuchen, bereitstellen dieses droplet-Konfiguration wieder, Terraform nicht, da er bereits weiß, dass das droplet erstellt wurde. Wenn Sie diese Datei löschen, wird es zu Terraform nicht erkennen, dass die Ressource vorhanden ist, und versuchen, um es wieder zu schaffen.
Zusammenfassung
Wie können Sie erkennen aus diesem Artikel ist das erstellen einer Ressource in DigitalOcean über Terraform ist schnell und einfach. Es gibt viele weitere Ressourcen, die Sie kann Bestimmungen über die DigitalOcean-Anbieter.
Mit dieser Konfiguration wie code, können Sie die Bestimmung, die gesamten Umgebungen schnell und einfach innerhalb von DigitalOcean mit Terraform. Zum Beispiel, wenn Sie eine BRANDNEUE Entwicklung Umwelt, und Sie haben es bisher kartiert in ein Terraform-Konfiguration mithilfe einer einfachen Bereitstellung-Befehl, können Sie eine völlig neue Entwicklungsumgebung bereit zu gehen.
Die Kombination von Terraform und DigitalOcean ermöglicht eine leistungsstarke Kombination, die nicht nur schützt Ihre Infrastruktur, ermöglicht die Versionskontrolle, aber erzwingt Konsistenz und Sicherheit.