„Infrastrukture as Code“ (IaC), also die deklarative Formulierung von digitaler Infrastruktur mittels Code, ist im Rahmen von Multicloud und DevOps gerade richtig im Kommen. Das große Versprechen ist, dass der Zustand virtueller Maschinen und der zugehörigen Netzwerklandschaft durch entsprechende Formulierung versionierbar werden. Damit soll es möglich sein, den Status Quo jederzeit einzusehen, aber auch nach Belieben auf alte Versionen zurückzurollen, sollte etwas einmal nicht mehr funktionieren. Auch Skalierbarkeit soll hierdurch viel einfacher werden, schließlich ist es ein Leichtes, bestehenden Code zu kopieren. Es verwundert also kaum, dass immer mehr Unternehmen Terraform – das derzeit beliebteste Werkzeug für providerunabhängige IaC – in ihre Arbeitsabläufe integrieren. Ein ähnliches Konzept, „Configuration as Code“ (CaC), beschreibt die Konfiguration von Plattformen und Anwendungen in Form von Code und hat sich bereits lange auf dem Markt etabliert. Der Einsatz von Puppet, Ansible und Co. gilt mittlerweile als synonym zur Rechenzentrumsautomatisierung. Daher gehören diese Werkzeuge zum Standardarsenal von DevOps-Engineers weltweit. In diesem Vortrag möchte ich die Schnittstelle zwischen IaC und CaC am Beispiel der Kombination Terraform-Ansible beleuchten. Nach einer kurzen Vorstellung beider Werkzeuge und ihrer jeweiligen Funktionsweise, beschreibe ich dafür zunächst die häufigsten Fragen, die sich bei der Integration von Terraform in einen bestehenden Ansible Workflow ergeben: * Wo ziehe ich die Grenze zwischen Terraform und Ansible? * Wie kann ich Daten von Terraform nach Ansible bekommen? * Wie paketiere ich „Terraform-Ansible“ Code? Im Anschluss präsentiere ich Antworten auf diese Fragen live anhand von Code-Beispielen und vollständigen Terraform Modulen. Die vorgestellten Konzepte reichen dabei von minimaler bis hin zu maximaler Integration der beiden Werkzeuge. Vorwissen zu Terraform und Ansible ist dabei aufgrund der Kurzeinführung zu Beginn des Vortrags nicht nötig.