View
10
Download
0
Category
Preview:
Citation preview
TerraformEin Einblick in die Möglichkeiten von
Infrastructure-as-Code
Dr. Sebastian Oehlke
2019-06-04
Terraforming - Begriffserklärung
https://en.wikipedia.org/wiki/Image:MarsTransitionV.jpg
#atix #linuxstammtisch #linux #IaC
Motivation
Wir brauchen jetzt n-Ressourcen, die folgendeAnforderungen erfüllen …
#atix #linuxstammtisch #linux #IaC
Terraform - Kurzbeschreibung
I Infrastructure-as-code
I Hashicorp (Vagrant, Vault, Packer)
#atix #linuxstammtisch #linux #IaC
Terraform - Kurzbeschreibung
I Kodifiziert API-Befehle in deklaritive Konfigurationsdateien
I Open-Source
#atix #linuxstammtisch #linux #IaC
Terraform - Kurzbeschreibung
I Sicher und vorhersagbar
I Erstellen, Ändern, Verbessernder Infrastruktur
I Kombination vonverschiedenen Providern
I Code teilen, Versionskontrolle,Review-Möglichkeit
I Modular
I Gut zu automatisieren
#atix #linuxstammtisch #linux #IaC
Terraform - Kurzbeschreibung
I Sicher und vorhersagbar
I Erstellen, Ändern, Verbessernder Infrastruktur
I Kombination vonverschiedenen Providern
I Code teilen, Versionskontrolle,Review-Möglichkeit
I Modular
I Gut zu automatisieren
#atix #linuxstammtisch #linux #IaC
Schema
Infrastructure
ProviderCode Ressource 2
Ressource 1
Ressource 3
Ressource …
#atix #linuxstammtisch #linux #IaC
Auszug an Möglichkeiten mit Terraform
Provider-Gruppen:
I Verwaltung vonCloud-Diensten
I Verwaltung vonContainer-Plattformen
I Network Providern
I Version Control
I Monitoring & SystemManagement
I Databases
⇒ Wenn es eine API hat, geht vermutlich das Management via Terraform
#atix #linuxstammtisch #linux #IaC
Auszug an Möglichkeiten mit Terraform
Provider-Gruppen:
I Verwaltung vonCloud-Diensten
I Verwaltung vonContainer-Plattformen
I Network Providern
I Version Control
I Monitoring & SystemManagement
I Databases
⇒ Wenn es eine API hat, geht vermutlich das Management via Terraform
#atix #linuxstammtisch #linux #IaC
Ablaufplan
Code
Check
done
terraform plan
terraform apply
terraform init
(terraform destroy)
I Check der Syntax und ladender benötigten Plugins
I Erstellen von Übersicht
I Was bereits vorhandenI Was wird geändertI Was für Operationen
werden durchgeführt
I Provider Kommunikation (API)
I (Entfernen der Ressource(n))
#atix #linuxstammtisch #linux #IaC
Ablaufplan
Code
Check
done
terraform plan
terraform apply
terraform init
(terraform destroy)
I Check der Syntax und ladender benötigten Plugins
I Erstellen von Übersicht
I Was bereits vorhandenI Was wird geändertI Was für Operationen
werden durchgeführt
I Provider Kommunikation (API)
I (Entfernen der Ressource(n))
#atix #linuxstammtisch #linux #IaC
Variables
In Datei: variables.tf
variable "region" {description = "Region to be used"}
In Datei: terraform.tfvars
region = "eu-central-1"
Im Code:
region = "${var.region}"
⇒ Kombinierbar mit Modulen
#atix #linuxstammtisch #linux #IaC
Variables
In Datei: variables.tf
variable "region" {description = "Region to be used"}
In Datei: terraform.tfvars
region = "eu-central-1"
Im Code ab Version 0.12:
region = var.region
⇒ Kombinierbar mit Modulen
#atix #linuxstammtisch #linux #IaC
Modules
module "name" {source = "/path/to/folder"variable1 = "foo"variable2 = "bar"
}
module "frontend" {source = "git::git@github.com:user/i-modules.git//m-name?ref=v0.1"
variable1 = 8variable2 = 20
}
#atix #linuxstammtisch #linux #IaC
Modules
module "name" {source = "/path/to/folder"variable1 = "foo"variable2 = "bar"
}
module "frontend" {source = "git::git@github.com:user/i-modules.git//m-name?ref=v0.1"
variable1 = 8variable2 = 20
}
#atix #linuxstammtisch #linux #IaC
Zusammenarbeit mit Backends
User 2
User 3
User N
Backend
#atix #linuxstammtisch #linux #IaC
Terraform - k8s
#atix #linuxstammtisch #linux #IaC
Kritik und Ausblick
Aktuelle KritikpunkteI Sehr gute Übersicht der potentiellen Änderungen bevor diese
durchgeführt werden
I Code ist recht Provider-Spezifisch
I Durch unterschiedlicher Technologie nicht alle Settings lassensich 1:1 übertragen
I Provisinors sind recht limitiert
I aktuell nur Chef, Salt und rudimentäre ProvisinorsI aktuell kein Support für Ansible oder Puppet
Terraform ist immer noch in 0.x Status dewegen werden viele Sachen nochaddressiert und können innerhalb nächster Zeit schon umgesetzt werden
#atix #linuxstammtisch #linux #IaC
Terraform - Ein Versuch ist es Wert
https://en.wikipedia.org/wiki/Image:MarsTransitionV.jpg
#atix #linuxstammtisch #linux #IaC
Recommended