Terraform — это инструмент «Инфраструктура как код» (IaC), написанный на языке конфигурации Hashicorp (HCL). В этой статье предполагается, что читатель работал с Terraform и понимает, как работают модули.
Каждый, кто программирует в Terraform, либо создал свои собственные модули, либо, по крайней мере, использовал чужие.
Модули — это контейнеры для нескольких ресурсов, которые используются вместе. Модуль состоит из набора файлов .tf и/или .tf.json, хранящихся вместе в каталоге.
Модули — это основной способ упаковки и повторного использования конфигураций ресурсов с помощью Terraform.
Модули можно публиковать в таких реестрах, как Terraform или GitLab. Модули также можно обслуживать из репозиториев Git, предоставив URL-адреса HTTPS или SSH. Они также могут иметь версии. Например,
module "consul" { source = "github.com/hashicorp/example" }
Версия:
module "consul" { source = "github.com/hashicorp/example?ref=1.2.6" }
По мере того, как ваши репозитории растут, и вы ссылаетесь на свои модули в других репозиториях, вам следует разумно создавать версии своих модулей, чтобы гарантировать, что исходные изменения в исходном коде не нарушат вашу инфраструктуру. Однако сложно отслеживать все новые выпуски используемых модулей, а еще труднее делать это регулярно. Если оставить это без внимания, это приведет к сверхурочной работе в виде технического долга, поскольку однажды вы обнаружите, что основной модуль теперь опережает три основные версии.
Представляем samwise-cli, инструмент, помогающий отслеживать исходящие зависимости Terraform/OpenTofu вашего репозитория. Ищет в вашем репозитории использование модулей и генерирует отчет о модулях, для которых доступны обновления, а также обо всех более продвинутых версиях, чем используемая в данный момент версия.
На данный момент существует только одна команда, но, надеюсь, по мере развития инструмента их будет больше.
Случайное репо на данный момент
Приложение CLI, которое будет сопровождать вас в путешествии по модулю терраформирования и делиться вашим бременем обновлений зависимостей модулей, так же, как один храбрый хоббит помогал Фродо нести его :)
\ : / '-: __ :-' -: )(_ :-- -' |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>…
Чтобы это работало там, где модули используют частные репозитории GitHub, файл конфигурации .samwise.yaml должен быть передан в качестве аргумента или должен присутствовать в домашнем каталоге пользователя.
.samwise.yaml формат:
github_key: github_username:
В настоящее время поддерживается только аутентификация GitHub HTTPS, но скоро будет поддерживаться аутентификация SSH.
Формат CSV
Формат JSON
Я люблю «Властелин колец» :)
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3