راهاندازی خودمیزبان
ارائهدهنده با Status200 خودتان همانطور کار میکند که با Status200 Cloud: همان منابع، همان ویژگیها و همان کلیدهای API پروژه. آنچه تنظیمش با شماست: نشانی Status200 شما، نسخهٔ ارائهدهندهای که با آن جور است، و هر جا لازم دارید، یک آینه برای ماشینهای بدون دسترسی به اینترنت و اعتماد به یک مرجع صدور گواهی خصوصی.
Terraform و Status200 خودتان
ارائهدهنده را به Status200 خود نشانه بگیرید
status200_url را به نشانیای تنظیم کنید که داشبورد را با آن باز میکنید: scheme و میزبان، بدون مسیر. اگر نشانی scheme نداشته باشد ارائهدهنده https:// را میافزاید، و در انتها /api را، پس https://status200.example.com هر درخواست را به https://status200.example.com/api میفرستد.
terraform {
required_providers {
oneuptime = {
source = "oneuptime/status200"
version = ">= 14.0, <= 14.0.88"
}
}
}
provider "oneuptime" {
status200_url = "https://status200.example.com"
# The API key comes from the STATUS200_API_KEY environment variable.
}نشانی میتواند بهجای آن از متغیر محیطی STATUS200_URL بیاید، تا یک پیکربندی بتواند به چند نصب اشاره کند:
export STATUS200_URL="https://status200.example.com"
export STATUS200_API_KEY="<your-api-key>"نشانی همان میزبانی است که نصب شما روی آن سرو میشود: HOST و HTTP_PROTOCOL در config.env با Docker Compose، و host و httpProtocol در مقدارهای چارت Helm.
کلید، یک کلید API از پروژهای است که مدیریت میکنید، ساختهشده در داشبورد Status200 شما در تنظیمات پروژه > پیشرفته > کلیدهای API، مانند Status200 Cloud. کلید API اصلی یک Status200 خودمیزبان به هیچ پروژهای تعلق ندارد، پس ساختنی که با آن انجام شود با ProjectId required شکست میخورد.
Status200 شما این بلوک را برایتان مینویسد. هر منبع یا فهرستی را در داشبورد باز کنید، سپس توسعهدهنده و Terraform را در منوی کناری آن: بلوک ارائهدهندهای که نشان میدهد نشانی Status200 شما را دارد، و بازهٔ نسخهای که با آن جور است.
نسخهٔ ارائهدهنده را برگزینید
از تازهترین ارائهدهندهٔ منتشرشدهای استفاده کنید که از Status200 شما جدیدتر نیست. نسخههای ارائهدهنده از نسخههای Status200 پیروی میکنند: انتشاری از Status200 که ارائهدهنده را تغییر میدهد، آن را با شمارهٔ نسخهٔ خود همان انتشار منتشر میکند، و ارائهدهندهای که از Status200 شما جدیدتر است ممکن است تنظیماتی بفرستد که Status200 شما هنوز ندارد.
پس بازهای بنویسید که به نسخهٔ Status200 شما ختم شود، همان کاری که داشبورد میکند. بلوک بالا >= 14.0, <= 14.0.88 را میگیرد، بازه برای Status200ای که این مستندات از آن میآید: وقتی آنها را روی Status200 خودتان میخوانید، آن بازه از آنِ شماست. وگرنه، نسخهٔ خودتان را بنویسید:
نسخهٔ Status200 خود را پیدا کنید
آن را از Status200 خود بپرسید:
curl https://status200.example.com/versionپاسخ JSON است، مانند
{"version":"14.0.40","commit":"..."}. بهعنوان مدیر اصلی، میتوانید برچسب نسخه را در سرصفحهٔ داشبورد مدیریت هم باز کنید: نسخهٔ فعلی خود را پیدا کنید را ببینید.آن را در بازه بنویسید
بازه از نسخهٔ اصلی شروع میشود و به نسخهٔ شما ختم میشود. برای یک Status200 14.0.40:
terraform { required_providers { oneuptime = { source = "oneuptime/status200" version = ">= 14.0, <= 14.0.40" } } }Terraform تازهترین ارائهدهندهٔ درون بازه را برمیدارد. انتشاری از Status200 که ارائهدهنده را تغییر نداده است هیچ منتشر نمیکند، و بازه از روی نسخههایی که وجود ندارند میگذرد.
ارائهدهنده را بارگیری کنید
terraform initرا اجرا کنید. نسخهای را که نصب کرده است چاپ میکند و آن را در.terraform.lock.hclثبت میکند.
هنگام ارتقا، نخست Status200 را ارتقا دهید. سپس انتهای بازه را به نسخهٔ تازهٔ آن برسانید، و terraform init -upgrade را اجرا کنید.
بدون دسترسی به اینترنت
وقتی ماشینهایی که Terraform را اجرا میکنند به رجیستری دسترسی ندارند، ارائهدهنده را یک بار در شبکهٔ خود کپی کنید، و Terraform را به آن نسخه نشانه بگیرید.
ارائهدهنده را آینه کنید
روی ماشینی با دسترسی به اینترنت، در پوشهای که پیکربندی شما در آن است، ارائهدهنده را برای هر سکویی که ماشینهایتان اجرا میکنند بارگیری کنید. بدون
-platform، فرمان ارائهدهنده را فقط برای سکوی خودش بارگیری میکند:Terraform
terraform providers mirror -platform=linux_amd64 -platform=darwin_arm64 /srv/terraform-mirrorOpenTofu
tofu providers mirror -platform=linux_amd64 -platform=darwin_arm64 /srv/terraform-mirrorپوشه ارائهدهنده را زیر نشانی رجیستری نگه میدارد، مانند
registry.terraform.io/status200/status200/. آن را در شبکهٔ خود کپی کنید.Terraform را به آینه نشانه بگیرید
یک فایل پیکربندی CLI بنویسید که ارائهدهندهٔ Status200 را از پوشه نصب کند، و هر چیز دیگر را مانند همیشه:
Terraform
provider_installation { filesystem_mirror { path = "/srv/terraform-mirror" include = ["registry.terraform.io/status200/status200"] } direct { exclude = ["registry.terraform.io/status200/status200"] } }OpenTofu
provider_installation { filesystem_mirror { path = "/srv/terraform-mirror" include = ["registry.opentofu.org/status200/status200"] } direct { exclude = ["registry.opentofu.org/status200/status200"] } }نام آن را در
TF_CLI_CONFIG_FILEبگذارید، که هم Terraform و هم OpenTofu آن را میخوانند:export TF_CLI_CONFIG_FILE=/etc/terraform/mirror.tfrc.راهاندازی اولیه
terraform initرا اجرا کنید: ارائهدهنده را از آینه نصب میکند. هشدار میدهد که فایل قفل اکنون فقط برای این سکو checksum دارد. برای ثبت آنها برای هر سکو،terraform providers lockرا با همان گزینههای-platformروی ماشینی که به اینترنت دسترسی دارد اجرا کنید، و.terraform.lock.hclرا همراه پیکربندی خود commit کنید.
هر بار که بازهٔ نسخه را بالا میبرید، دوباره آینه کنید.
TLS و گواهیها
ارائهدهنده گواهی Status200 شما را با انبارهٔ اعتماد ماشینی که Terraform را اجرا میکند بررسی میکند، و هیچ تنظیمی برای رد شدن از این بررسی وجود ندارد. وقتی گواهی از یک مرجع صدور گواهی خصوصی میآید، آن مرجع را به انبارهٔ اعتماد هر ماشین و اجراکنندهٔ CI که Terraform را اجرا میکند بیفزایید:
Debian / Ubuntu
sudo cp my-ca.crt /usr/local/share/ca-certificates/
sudo update-ca-certificatesRHEL / Fedora
sudo cp my-ca.crt /etc/pki/ca-trust/source/anchors/
sudo update-ca-trustدر Linux، جایی که نمیتوانید انبارهٔ اعتماد را تغییر دهید، مانند یک کانتینر CI، SSL_CERT_FILE را به فایلی تنظیم کنید که مرجع شما و مرجعهای عمومی را دارد. در macOS و Windows، مرجع را به انبارهٔ گواهی سیستم بیفزایید.
- پراکسیها. ارائهدهنده درخواستهایش را از راه پراکسیای که در
HTTPS_PROXYاست میفرستد، جز به میزبانهایNO_PROXY. یک پراکسی معکوس جلوی Status200 باید هر مسیر/apiو سرآیندAPIKeyرا بدون تغییر عبور دهد. - HTTP ساده. یک نشانی
http://برای یک نصب آزمایشی کار میکند. کلید API با هر درخواستی سفر میکند، پس برای هر چیز دیگر از HTTPS استفاده کنید.
رفع اشکال
پیام «x509: certificate signed by unknown authority»
ماشینی که Terraform را اجرا میکند به گواهی Status200 شما اعتماد ندارد: مرجع صدور گواهی خود را همانطور که TLS و گواهیها نشان میدهد بیفزایید.
پیام «invalid character '<' looking for beginning of value»
یک صفحهٔ وب بهجای API پاسخ داده است: status200_url مسیری دارد، یا یک پراکسی پاسخ داده است. آن را فقط به نشانی Status200 خود تنظیم کنید.
پیام «no available releases match the given constraints»
هیچ ارائهدهندهٔ منتشرشدهای با قید نسخه جور نیست، برای نمونه قیدی که تنها نسخهای را نام میبرد که Status200 هرگز منتشر نکرده است. یک بازه بنویسید، همانطور که نسخهٔ ارائهدهنده را برگزینید نشان میدهد.
پیام «ProjectId required»
کلید، کلید API اصلی است که به هیچ پروژهای تعلق ندارد. یک کلید API پروژه بسازید، در تنظیمات پروژه > پیشرفته > کلیدهای API.
رفع اشکال خطاهای دیگر را دارد، و اینکه هر کدام چه معنایی دارد.