Terraform ist ein Infrastructure-as-Code(IaC)-Tool, das in der Hashicorp Configuration Language (HCL) geschrieben ist. In diesem Artikel wird davon ausgegangen, dass der Leser mit Terraform gearbeitet hat und versteht, wie Module funktionieren.
Jeder, der in Terraform programmiert, hat entweder seine eigenen Module erstellt oder zumindest die von jemand anderem verwendet.
Module sind Container für mehrere Ressourcen, die zusammen verwendet werden. Ein Modul besteht aus einer Sammlung von .tf- und/oder .tf.json-Dateien, die in einem Verzeichnis zusammengehalten werden.
Module sind die wichtigste Möglichkeit, Ressourcenkonfigurationen mit Terraform zu verpacken und wiederzuverwenden.
Module können in Registrierungsstellen wie der Terraform-Registrierung oder GitLab veröffentlicht werden. Module können auch aus Git-Repositorys bereitgestellt werden, indem die HTTPS- oder SSH-URLs bereitgestellt werden. Diese können auch versioniert werden. Zum Beispiel,
module "consul" { source = "github.com/hashicorp/example" }
Versioniert:
module "consul" { source = "github.com/hashicorp/example?ref=1.2.6" }
Wenn Ihre Repositorys wachsen und Sie auf Ihre Module in anderen Repositorys verweisen, sollten Sie Ihre Module sinnvollerweise versionieren, um sicherzustellen, dass Upstream-Änderungen in der Quelle Ihre Infrastruktur nicht beschädigen. Allerdings ist es schwierig, den Überblick über alle Neuerscheinungen der eingesetzten Module zu behalten und noch schwieriger, dies regelmäßig zu tun. Wenn man das nicht angeht, führt dies im Laufe der Zeit zu technischen Schulden, wenn man eines Tages feststellt, dass ein Kernmodul jetzt drei Hauptversionen voraus ist.
Wir präsentieren samwise-cli, ein Tool, mit dem Sie die Terraform/OpenTofu-Abhängigkeiten Ihres Repositorys im Upstream verfolgen können. Durchsucht Ihr Repository nach der Verwendung von Modulen und generiert einen Bericht der Module, für die Aktualisierungen verfügbar sind, sowie aller Versionen, die fortgeschrittener sind als die derzeit verwendete Version.
Im Moment gibt es nur einen Befehl, aber hoffentlich werden es bald weitere sein, wenn das Tool weiterentwickelt wird.
Zufälliges Repo vorerst
Eine CLI-Anwendung, die Sie auf Ihrer Reise mit dem Terraform-Modul begleiten und mit der Sie Ihre Last der Modulabhängigkeitsaktualisierungen teilen können, so wie ein mutiger Hobbit Frodo dabei geholfen hat, seine zu tragen :)
\ : / '-: __ :-' -: )(_ :-- -' |r-_i'- ,sSSSSs, (2-,7 sS';:'`Ss )-j ;K e (e s7 / ( S, '' SJ ( ;/ sL_~~_;(S_) _7 |, 'J)_.-' />'-' `Z j J /-;-A'-'|'--'-j\ L L ) |/ : / \ \ \ | | | '._.'| L \ \ | | | | \ J \ \ _/ | | | ',| \ L.,' | | | | |/ _;-r-<_. __. _ l- l>…
Damit dies dort ausgeführt werden kann, wo Module private GitHub-Repositorys verwenden, muss die Konfigurationsdatei .samwise.yaml als Argument übergeben werden oder im Home-Verzeichnis des Benutzers vorhanden sein.
.samwise.yaml-Format:
github_key: github_username:
Derzeit wird nur die GitHub-HTTPS-Authentifizierung unterstützt, aber die SSH-Authentifizierung wird bald unterstützt.
CSV-Format
JSON-Format
Ich liebe Herr der Ringe :)
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3