samwise-CLI: ردیاب وابستگی ماژول Terraform منبع باز

Summarize this content to 400 words in Persian Lang
Terraform
Terraform یک ابزار Infrastructure-as-Code (IaC) است که به زبان پیکربندی Hashicorp (HCL) نوشته شده است. این مقاله فرض می کند که خواننده با Terraform کار کرده است و نحوه کار ماژول ها را درک می کند.
هر کسی که در Terraform کد نویسی می کند یا ماژول های خود را ایجاد کرده است یا حداقل از ماژول های شخص دیگری استفاده می کند.
ماژول های Terraform
ماژول ها محفظه هایی برای چندین منبع هستند که با هم استفاده می شوند. یک ماژول شامل مجموعه ای از فایل های tf. و/یا .tf.json است که با هم در یک فهرست نگهداری می شوند.
ماژول ها راه اصلی برای بسته بندی و استفاده مجدد از تنظیمات منابع با Terraform هستند.
ماژول ها را می توان در رجیستری هایی مانند Terraform registry یا GitLab منتشر کرد. ماژول ها همچنین می توانند از مخازن Git با ارائه URL های HTTPS یا SSH ارائه شوند. اینها را نیز می توان نسخه کرد. به عنوان مثال،
module “consul” {
source = “github.com/hashicorp/example”
}
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
نسخه شده:
module “consul” {
source = “github.com/hashicorp/example?ref=1.2.6”
}
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
چالش
همانطور که مخازن شما رشد می کنند و ماژول های خود را در مخازن دیگر ارجاع می دهید، ماژول های خود را به طور منطقی نسخه می کنید تا مطمئن شوید که تغییرات بالادستی در منبع زیرساخت شما را خراب نمی کند. با این حال، پیگیری همه نسخههای جدید برای ماژولهای مورد استفاده دشوار است و حتی انجام منظم آن سختتر است. بدون پرداختن به این موضوع، اضافه کاری به عنوان بدهی فناوری ایجاد می کند، همانطور که یک روز متوجه می شوید که یک ماژول اصلی اکنون 3 نسخه اصلی در راه است.
راه حل
ارائه samwise-cli، ابزاری برای کمک به ردیابی وابستگی های Terraform/OpenTofu مخزن شما در بالادست. مخزن شما را برای استفاده از ماژولها جستجو میکند و گزارشی از ماژولهایی که بهروزرسانیهای موجود را دارند همراه با همه نسخههایی که پیشرفتهتر از نسخهای که در حال حاضر استفاده میشود، ایجاد میکند.
در حال حاضر، تنها یک دستور وجود دارد، اما امیدواریم که به زودی با توسعه ابزار، دستور بیشتری وجود داشته باشد.
فعلاً مخزن تصادفی
یک برنامه CLI برای همراهی در سفر ماژول زمینی شما و به اشتراک گذاشتن بار بهروزرسانیهای وابستگی ماژولها، درست همانطور که یک هابیت شجاع به فرودو کمک کرد تا او را حمل کند 🙂
یک برنامه CLI برای همراهی در سفر ماژول زمینی شما و به اشتراک گذاشتن بار بهروزرسانیهای وابستگی ماژولها، درست همانطور که یک هابیت شجاع به فرودو کمک کرد تا او را حمل کند 🙂
%,( “' /%% / Cccc' (چون نتوانستم هنر Samwise Gamgee ASCII به اندازه کافی خوب پیدا کنم) Frodo اثر 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-…
چک برای به روز رسانی
برای اجرا در جایی که ماژول ها از مخازن خصوصی GitHub استفاده می کنند، فایل پیکربندی .samwise.yaml باید به عنوان آرگومان ارسال شود یا باید در فهرست اصلی کاربر وجود داشته باشد.
فرمت .samwise.yaml:
github_key:
github_username:
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
در حال حاضر فقط احراز هویت HTTPS GitHub پشتیبانی می شود اما احراز هویت SSH به زودی پشتیبانی می شود.
نتیجه
فرمت CSV
فرمت JSON
محدودیت ها (یا بهتر است به عنوان ویژگی هایی که باید اضافه شوند توصیف شود)
احراز هویت SSH برای بازیابی منابع ماژول
ردیابی ماژول رجیستری Hashicorp (آنها یک API برای لیست کردن نسخه ها در اینجا دارند
زمینه برای نام
من عاشق ارباب حلقه ها هستم 🙂
Terraform
Terraform یک ابزار Infrastructure-as-Code (IaC) است که به زبان پیکربندی Hashicorp (HCL) نوشته شده است. این مقاله فرض می کند که خواننده با Terraform کار کرده است و نحوه کار ماژول ها را درک می کند.
هر کسی که در Terraform کد نویسی می کند یا ماژول های خود را ایجاد کرده است یا حداقل از ماژول های شخص دیگری استفاده می کند.
ماژول های Terraform
ماژول ها محفظه هایی برای چندین منبع هستند که با هم استفاده می شوند. یک ماژول شامل مجموعه ای از فایل های tf. و/یا .tf.json است که با هم در یک فهرست نگهداری می شوند.
ماژول ها راه اصلی برای بسته بندی و استفاده مجدد از تنظیمات منابع با Terraform هستند.
ماژول ها را می توان در رجیستری هایی مانند Terraform registry یا GitLab منتشر کرد. ماژول ها همچنین می توانند از مخازن Git با ارائه URL های HTTPS یا SSH ارائه شوند. اینها را نیز می توان نسخه کرد. به عنوان مثال،
module "consul" {
source = "github.com/hashicorp/example"
}
نسخه شده:
module "consul" {
source = "github.com/hashicorp/example?ref=1.2.6"
}
چالش
همانطور که مخازن شما رشد می کنند و ماژول های خود را در مخازن دیگر ارجاع می دهید، ماژول های خود را به طور منطقی نسخه می کنید تا مطمئن شوید که تغییرات بالادستی در منبع زیرساخت شما را خراب نمی کند. با این حال، پیگیری همه نسخههای جدید برای ماژولهای مورد استفاده دشوار است و حتی انجام منظم آن سختتر است. بدون پرداختن به این موضوع، اضافه کاری به عنوان بدهی فناوری ایجاد می کند، همانطور که یک روز متوجه می شوید که یک ماژول اصلی اکنون 3 نسخه اصلی در راه است.
راه حل
ارائه samwise-cli
، ابزاری برای کمک به ردیابی وابستگی های Terraform/OpenTofu مخزن شما در بالادست. مخزن شما را برای استفاده از ماژولها جستجو میکند و گزارشی از ماژولهایی که بهروزرسانیهای موجود را دارند همراه با همه نسخههایی که پیشرفتهتر از نسخهای که در حال حاضر استفاده میشود، ایجاد میکند.
در حال حاضر، تنها یک دستور وجود دارد، اما امیدواریم که به زودی با توسعه ابزار، دستور بیشتری وجود داشته باشد.
فعلاً مخزن تصادفی
یک برنامه CLI برای همراهی در سفر ماژول زمینی شما و به اشتراک گذاشتن بار بهروزرسانیهای وابستگی ماژولها، درست همانطور که یک هابیت شجاع به فرودو کمک کرد تا او را حمل کند 🙂
یک برنامه 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:
در حال حاضر فقط احراز هویت HTTPS GitHub پشتیبانی می شود اما احراز هویت SSH به زودی پشتیبانی می شود.
نتیجه
فرمت CSV
فرمت JSON
محدودیت ها (یا بهتر است به عنوان ویژگی هایی که باید اضافه شوند توصیف شود)
- احراز هویت SSH برای بازیابی منابع ماژول
- ردیابی ماژول رجیستری Hashicorp (آنها یک API برای لیست کردن نسخه ها در اینجا دارند
زمینه برای نام
من عاشق ارباب حلقه ها هستم 🙂