Terraform (Software)
| Terraform | |
|---|---|
| Basisdaten | |
| Entwickler | HashiCorp Inc. |
| Erscheinungsjahr | Juni 2014 |
| Aktuelle Version | 1.15.5 (27. Mai 2026) |
| Betriebssystem | Windows, macOS, Linux, FreeBSD, OpenBSD, Solaris |
| Programmiersprache | Go |
| Kategorie | Provisionierungssoftware |
| Lizenz | BSL-1.1 |
| developer.hashicorp.com/terraform | |
Terraform ist eine Infrastructure as Code Software der Firma HashiCorp Inc. Sie dient vorrangig der Provisionierung von Systemen. Über die deklarative Konfigurationssprache Hashicorp Configuration Language (HCL) wird die geforderte Infrastruktur definiert. Durch die Verwendung von Providern (Sammlungen von API-Aufrufen) wird die Konfiguration in die entsprechenden Ressourcen umgesetzt.
Geschichte
[Bearbeiten | Quelltext bearbeiten]HashiCorp veröffentlichte Terraform Version 0.1 im Juli 2014.[1] 2017 wurde die Terraform Module Registy, ein Online-Register für Module des Terraformökosystems, eröffnet.[2] 2022 wird Terraform Version 1.0 veröffentlicht.[1]
Am 10. August 2023 änderte HashiCorp die Lizenzen seiner Produkte, auf die zwar quelloffene aber in ihren Rechten eingeschränkte Business Souce License (BSL-1.1). Terraform war zuvor mit der copyleft Mozilla Public License (MPLv2) lizenziert[3]. Als Begründung wurde der Schutz vor kommerziellen konkurrierenden Produkten, die auf der selben Plattform basieren, genannt.
Durch die neue Lizenz angetrieben, wurde im August 2023 der Fork OpenTofu[4] ins Leben gerufen.
Features
[Bearbeiten | Quelltext bearbeiten]Terraform verwaltet externe Ressourcen (z. B. öffentliche und private Cloudinfrastrukturen, Netzwerkkomponenten, Software-as-a-Service, Plattform-as-a-Service) mittels Modulen und API-Sammlungen, sogenannte Provider. Offizielle Provider werden von HashiCorp bereitgestellt. Community Provider sind ebenfalls unterstützt.
Über die deklarative Ausgestaltung der Umgebung mittels HashiCorp Configuration Language (HCL[5]) sammeln die Provider Daten aus der lebenden Umgebung oder verwalten Ressourcen und Infrastruktur.
Deklarative Konfiguration und Zustandsspeicherung
[Bearbeiten | Quelltext bearbeiten]Im Gegensatz zu Konfigurationsverwaltungsprogrammen wie Ansible oder Progress Chef, wo die einzelnen Schritte zum Erreichen eines Zielzustandes definiert werden müssen, definiert man in Terraform den gewünschten Zielzustand.
Aus den Konfigurationsdateien erzeugt Terraform einen Abhängigkeitsgraphen um die Reihenfolge und Abhängigkeiten, der zu erledigenden Schritte, zu ermitteln und führt diese mit den entsprechenden Modulen und Providern aus. Dabei wird die Infrastruktur vom Ist-Zustand in den definierten Soll-Zustand überführt.[6]
Terraform sichert den Zustand der Infrastruktur in einer State-Datei. Nicht gespeicherte Änderungen werden als Divergenz erkannt und korrigiert.[7]
Einzelnachweise
[Bearbeiten | Quelltext bearbeiten]- 1 2 HashiCorp, Inc: Origin Story Products. Abgerufen am 5. Juni 2026 (englisch).
- ↑ HashiCorp, Inc: Releaseblog. Abgerufen am 5. Juni 2026 (englisch).
- ↑ Boris Mayer: Terraform und Vagrant stehen künftig unter der BSL. Abgerufen am 5. Juni 2026.
- ↑ OpenTofu Developers: OpenTofu Fork. Abgerufen am 5. Juni 2026 (englisch).
- ↑ HashiCorp, Inc: Configuration syntax. Abgerufen am 5. Juni 2026 (englisch).
- ↑ Yevgeniy Brikman: Procedural vs Declarative. Abgerufen am 5. Juni 2026 (englisch).
- ↑ HashiCorp, Inc: State. Abgerufen am 5. Juni 2026 (englisch).