• Publikation
  • Infrastructure as Code: Continuous Integration für Ansible-Skripte
  • Infrastructure as Code: Continuous Integration für Ansible-Skripte

iX

09/19

Infrastructure as Code: Continuous Integration für Ansible-Skripte

Autor:
Jonas Hecht

Molekular getestet

Wer Ansible-Playbooks mit Molecule testet, darf die Continuous Integration in seiner Infrastructure as Code nicht vergessen. Mit CloudCI gelingt das auch in der Amazon-Cloud.

Die Vorteile von Test-driven Development (TDD) in der Infrastrukturentwicklung mit Ansible und Molecule sind unbestreitbar, doch damit die Tests automatisiert und regelmäßig ablaufen, bedarf es Methoden der Continuous Integration (CI). Erst dieses Vorgehen macht Fehler im Code frühzeitig sichtbar, bevor das Reparieren aufwendig und teuer wird.

Wie die testgetriebene Entwicklung mithilfe von Ansible und Molecule in die Entwicklung von Infrastrukturcode Einzug halten kann, hat ein Artikel in iX 4/2019 ausführlich gezeigt. Das ermöglicht das Schreiben von Tests auch für Infrastructure as Code, die gleichzeitig ein fester Bestandteil des Entwicklungsprozesses werden, so wie es in der Softwareentwicklung mittlerweile zum guten Ton gehört.
Damit die Tests nicht veralten, müssen sie im Rahmen von Continuous Integration regelmäßig ausgeführt werden. Nur so ist sichergestellt, dass bei jedem neuen Commit des Infrastrukturcodes alle bisherigen Tests weiterhin lauffähig sind – eine vernünftige Testabdeckung vorausgesetzt.

Ein erster Schritt aus diesem Dilemma könnte der Umstieg auf Molecules Docker-Treiber statt Vagrant sein – immerhin bildet der den Default-Driver in Molecule. Umso überraschender lauern auch hier einige Tücken, sobald es über die ersten Hello-World-Demos hinausgeht: Schon die Installation von Docker auf Ubuntu machte Probleme [1]. Wer sich innerhalb der Continuous-Integration-Plattformen auf Docker festlegt, müsste dann zwingend auch Docker in Docker (also nested) installieren, was aber leider nicht immer möglich ist.

Szenarien für multiple Infrastruktur-Provider

Weil Molecule alle Infrastrukturen nutzen kann, die Ansible bedient, bietet sich auch der Umzug auf eine Cloud-Infrastruktur wie die Amazon Web Services an. Die Integration eines weiteren Infrastruktur-Providers für Molecule sollte aber nicht dazu führen, dass der bisherige auf Basis von Vagrant obsolet ist. Mit Molecules Szenario-Ansatz bleiben zukünftige Tests des Infrastrukturcodes auch nicht auf AWS beschränkt und erlauben mehrere Infrastruktur-Provider gleichzeitig.

Vollständiger Artikel

Cookies erleichtern die Bereitstellung unserer Dienste. Mit der Nutzung unserer Dienste erklären Sie sich damit einverstanden, dass wir Cookies verwenden. Weitere Informationen

Hinweis: In Ihrem Browser ist JavaScript deaktiviert. Für eine bessere und fehlerfreie Nutzung dieser Webseite, aktivieren Sie bitte JavaScript in Ihrem Browser.