„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > samwise-CLI: Der Abhängigkeits-Tracker des Open-Source-Terraform-Moduls

samwise-CLI: Der Abhängigkeits-Tracker des Open-Source-Terraform-Moduls

Veröffentlicht am 07.11.2024
Durchsuche:302

Terraform

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.

Terraform-Module

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"
}

Herausforderung

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.

Lösung

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.

samwise-CLI: The Open Source Terraform module dependency tracker

Im Moment gibt es nur einen Befehl, aber hoffentlich werden es bald weitere sein, wenn das Tool weiterentwickelt wird.

Zufälliges Repo vorerst

samwise-CLI: The Open Source Terraform module dependency tracker Darth-Tech / samwise-cli

Eine CLI-Anwendung, die Sie auf Ihrer Reise mit dem Terraform-Modul begleiten und die Last der Modulabhängigkeitsaktualisierungen teilen kann, so wie ein mutiger Hobbit Frodo dabei geholfen hat, seine zu tragen :)

samwise

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 :)

samwise-CLI: The Open Source Terraform module dependency tracker

%,( "' /%% / Cccc' (cause I couldn't find good enough Samwise Gamgee ASCII art) Frodo by Shanaka Dias">
                       \ : /
                    '-: __ :-'
                    -:  )(_ :--
                    -' |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>…
Auf GitHub ansehen

checkForUpdates

samwise-CLI: The Open Source Terraform module dependency tracker

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.

Ergebnis

CSV-Format
samwise-CLI: The Open Source Terraform module dependency tracker

JSON-Format
samwise-CLI: The Open Source Terraform module dependency tracker

Einschränkungen (oder besser beschrieben als hinzuzufügende Funktionen)

  • SSH-Authentifizierung zum Abrufen von Modulquellen
  • Verfolgen des Registrierungsmoduls von Hashicorp (sie verfügen über eine API, um hier Versionen aufzulisten

Kontext für den Namen

Ich liebe Herr der Ringe :)

Freigabeerklärung Dieser Artikel ist abgedruckt unter: https://dev.to/thundersparkf/samwise-cli-the-open-source-terraform-module-dependency-tracker-3b1e?1 Bei Verstößen wenden Sie sich bitte an [email protected] um es zu löschen
Neuestes Tutorial Mehr>

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