Selv-hostet opsætning
Provideren virker med din egen Status200, som den virker med Status200 Cloud: de samme ressourcer, de samme attributter og de samme API-nøgler til projektet. Det, du selv skal angive: adressen på din Status200, den providerversion, der passer til den, og, hvor du har brug for dem, et spejl til maskiner uden internetadgang og tillid til en privat certifikatudsteder.
Terraform og din egen Status200
Lad provideren pege på din Status200
Sæt status200_url til den adresse, du åbner dashboardet på: skemaet og værten, uden sti. Provideren tilføjer https://, når adressen ikke har et skema, og /api til sidst, så https://status200.example.com sender hver forespørgsel til 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.
}Adressen kan i stedet komme fra miljøvariablen STATUS200_URL, så én konfiguration kan pege på flere installationer:
export STATUS200_URL="https://status200.example.com"
export STATUS200_API_KEY="<your-api-key>"Adressen er den vært, din installation serveres på: HOST og HTTP_PROTOCOL i config.env med Docker Compose, og host og httpProtocol i Helm-chartets values.
Nøglen er en API-nøgle til det projekt, du styrer, oprettet i din Status200s dashboard under Projektindstillinger → Avanceret → API-nøgler, som på Status200 Cloud. Master-API-nøglen på en selv-hostet Status200 hører ikke til noget projekt, så en oprettelse med den fejler med ProjectId required.
Din Status200 skriver denne blok for dig. Åbn en vilkårlig ressource eller liste i dashboardet, og derefter Udvikler og Terraform i dens sidemenu: provider-blokken, den viser, har din Status200s adresse og et versionsinterval, der passer til den.
Vælg providerversionen
Brug den nyeste udgivne provider, der ikke er nyere end din Status200. Providerversioner følger Status200s: en Status200-release, der ændrer provideren, udgiver den under releasens eget versionsnummer, og en provider, der er nyere end din Status200, kan sende indstillinger, som din Status200 endnu ikke har.
Skriv derfor et interval, der slutter ved din Status200s version, som dashboardet gør. Blokken ovenfor tager >= 14.0, <= 14.0.88, intervallet for den Status200, denne dokumentation kommer fra: når du læser den på din egen Status200, er det interval dit. Ellers skal du skrive din egen version ind:
Find din Status200s version
Spørg din Status200 om den:
curl https://status200.example.com/versionSvaret er JSON, som
{"version":"14.0.40","commit":"..."}. Som masteradministrator kan du også åbne udgavemærket i headeren på Admin-dashboardet: se Find din nuværende version.Skriv den ind i intervallet
Intervallet starter ved hovedversionen og slutter ved din. For en Status200 14.0.40:
terraform { required_providers { oneuptime = { source = "oneuptime/status200" version = ">= 14.0, <= 14.0.40" } } }Terraform tager den nyeste provider i intervallet. En Status200-release, der ikke ændrede provideren, udgiver ingen, og intervallet springer de versioner over, der ikke findes.
Hent provideren
Kør
terraform init. Den viser den version, den installerede, og registrerer den i.terraform.lock.hcl.
Når du opgraderer, så opgradér Status200 først. Hæv derefter slutningen af intervallet til dens nye version, og kør terraform init -upgrade.
Uden internetadgang
Når de maskiner, der kører Terraform, ikke kan nå registret, skal du kopiere provideren ind i dit netværk én gang og lade Terraform pege på kopien.
Spejl provideren
Hent på en maskine med internetadgang, i en mappe med din konfiguration, provideren til hver platform, dine maskiner kører på. Uden
-platformhenter kommandoen kun provideren til sin egen 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-mirrorMappen indeholder provideren under registrets adresse, som
registry.terraform.io/status200/status200/. Kopiér den ind i dit netværk.Lad Terraform pege på spejlet
Skriv en CLI-konfigurationsfil, der installerer Status200-provideren fra mappen og alt andet som normalt:
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"] } }Angiv den i
TF_CLI_CONFIG_FILE, som både Terraform og OpenTofu læser:export TF_CLI_CONFIG_FILE=/etc/terraform/mirror.tfrc.Initialisér
Kør
terraform init: den installerer provideren fra spejlet. Den advarer om, at låsefilen nu kun har checksums for denne platform. For at registrere dem for alle platforme skal du køreterraform providers lockmed de samme-platform-indstillinger på maskinen med internetadgang og committe.terraform.lock.hclsammen med din konfiguration.
Spejl igen, hver gang du hæver versionsintervallet.
TLS og certifikater
Provideren kontrollerer din Status200s certifikat mod tillidslageret på den maskine, der kører Terraform, og der er ingen indstilling til at springe kontrollen over. Når certifikatet kommer fra en privat certifikatudsteder, skal du tilføje den udsteder til tillidslageret på hver maskine og CI-runner, der kører 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-trustPå Linux, hvor du ikke kan ændre tillidslageret, som i en CI-container, skal du sætte SSL_CERT_FILE til en fil, der indeholder din udsteder og de offentlige udstedere. På macOS og Windows skal du tilføje udstederen til systemets certifikatlager.
- Proxyer. Provideren sender sine forespørgsler gennem proxyen i
HTTPS_PROXY, undtagen til værterne iNO_PROXY. En reverse proxy foran Status200 skal sende hver/api-sti og headerenAPIKeyuændret igennem. - Almindelig HTTP. En
http://-adresse virker, til en testinstallation. API-nøglen sendes med hver forespørgsel, så brug HTTPS til alt andet.
Fejlfinding
Meddelelsen “x509: certificate signed by unknown authority”
Den maskine, der kører Terraform, stoler ikke på din Status200s certifikat: tilføj din certifikatudsteder, som TLS og certifikater viser.
Meddelelsen “invalid character '<' looking for beginning of value”
En webside svarede i stedet for API'et: status200_url indeholder en sti, eller en proxy svarede. Sæt den til kun din Status200s adresse.
Meddelelsen “no available releases match the given constraints”
Ingen udgivet provider passer til versionsbegrænsningen, for eksempel en begrænsning, der nævner én version, som Status200 aldrig har udgivet. Skriv et interval, som Vælg providerversionen viser.
Meddelelsen “ProjectId required”
Nøglen er master-API-nøglen, som ikke hører til noget projekt. Opret en API-nøgle til projektet under Projektindstillinger → Avanceret → API-nøgler.
Fejlfinding har de andre fejl, og hvad hver enkelt betyder.