Självhostad konfiguration
Providern fungerar med ditt eget Status200 på samma sätt som med Status200 Cloud: samma resurser, samma attribut och samma API-nycklar för projektet. Det som är ditt att ange: adressen till ditt Status200, den providerversion som passar det, och, där du behöver dem, en spegel för maskiner utan internetåtkomst och förtroende för en privat certifikatutfärdare.
Terraform och ditt eget Status200
Peka providern mot ditt Status200
Sätt status200_url till adressen där du öppnar instrumentpanelen: schemat och värden, utan sökväg. Providern lägger till https:// när adressen saknar schema, och /api i slutet, så https://status200.example.com skickar varje begäran till 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 stället komma från miljövariabeln STATUS200_URL, så att en konfiguration kan peka mot flera installationer:
export STATUS200_URL="https://status200.example.com"
export STATUS200_API_KEY="<your-api-key>"Adressen är värden som din installation serveras på: HOST och HTTP_PROTOCOL i config.env med Docker Compose, och host och httpProtocol i Helm-diagrammets values.
Nyckeln är en API-nyckel för projektet som du hanterar, skapad i ditt Status200s instrumentpanel under Projektinställningar → Avancerad → API-nycklar, som på Status200 Cloud. Master-API-nyckeln i ett självhostat Status200 hör inte till något projekt, så ett skapande med den misslyckas med ProjectId required.
Ditt Status200 skriver det här blocket åt dig. Öppna valfri resurs eller lista i instrumentpanelen, och sedan Utvecklare och Terraform i dess sidomeny: provider-blocket som visas har ditt Status200s adress, och ett versionsintervall som passar det.
Välj providerversion
Använd den senaste publicerade providern som inte är nyare än ditt Status200. Providerversioner följer Status200s: en Status200-release som ändrar providern publicerar den under releasens eget versionsnummer, och en provider som är nyare än ditt Status200 kan skicka inställningar som ditt Status200 inte har än.
Skriv därför ett intervall som slutar vid ditt Status200s version, som instrumentpanelen gör. Blocket ovan tar >= 14.0, <= 14.0.88, intervallet för det Status200 som den här dokumentationen kommer från: när du läser den på ditt eget Status200 är det intervallet ditt. Annars skriver du in din egen version:
Ta reda på ditt Status200s version
Fråga ditt Status200:
curl https://status200.example.com/versionSvaret är JSON, som
{"version":"14.0.40","commit":"..."}. Som huvudadministratör kan du också öppna utgåvemärket i sidhuvudet i administratörspanelen: se Ta reda på din nuvarande version.Skriv in den i intervallet
Intervallet börjar vid huvudversionen och slutar vid din. För ett Status200 14.0.40:
terraform { required_providers { oneuptime = { source = "oneuptime/status200" version = ">= 14.0, <= 14.0.40" } } }Terraform tar den senaste providern i intervallet. En Status200-release som inte ändrade providern publicerar ingen, och intervallet hoppar över de versioner som inte finns.
Ladda ner providern
Kör
terraform init. Den visar versionen som den installerade och registrerar den i.terraform.lock.hcl.
När du uppgraderar, uppgradera Status200 först. Höj sedan slutet av intervallet till dess nya version, och kör terraform init -upgrade.
Utan internetåtkomst
När maskinerna som kör Terraform inte kan nå registret kopierar du providern till ditt nätverk en gång och låter Terraform peka mot kopian.
Spegla providern
Ladda ner providern för varje plattform som dina maskiner kör, på en maskin med internetåtkomst, i en mapp med din konfiguration. Utan
-platformladdar kommandot bara ner providern för sin egen plattform: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 innehåller providern under registrets adress, som
registry.terraform.io/status200/status200/. Kopiera den till ditt nätverk.Peka Terraform mot spegeln
Skriv en CLI-konfigurationsfil som installerar Status200-providern från mappen, och allt annat som vanligt:
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"] } }Ange den i
TF_CLI_CONFIG_FILE, som både Terraform och OpenTofu läser:export TF_CLI_CONFIG_FILE=/etc/terraform/mirror.tfrc.Initiera
Kör
terraform init: den installerar providern från spegeln. Den varnar för att låsfilen nu bara har kontrollsummor för den här plattformen. För att registrera dem för alla plattformar kör duterraform providers lockmed samma-platform-alternativ på maskinen med internetåtkomst, och checkar in.terraform.lock.hcltillsammans med din konfiguration.
Spegla igen varje gång du höjer versionsintervallet.
TLS och certifikat
Providern kontrollerar ditt Status200s certifikat mot förtroendearkivet på maskinen som kör Terraform, och det finns ingen inställning för att hoppa över kontrollen. När certifikatet kommer från en privat certifikatutfärdare lägger du till den utfärdaren i förtroendearkivet på varje maskin och CI-runner som kör 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, där du inte kan ändra förtroendearkivet, som i en CI-container, sätter du SSL_CERT_FILE till en fil som innehåller din utfärdare och de offentliga utfärdarna. På macOS och Windows lägger du till utfärdaren i systemets certifikatarkiv.
- Proxyservrar. Providern skickar sina begäranden via proxyn i
HTTPS_PROXY, utom till värdarna iNO_PROXY. En omvänd proxy framför Status200 måste släppa igenom varje/api-sökväg och huvudetAPIKeyoförändrade. - Vanlig HTTP. En
http://-adress fungerar, för en testinstallation. API-nyckeln följer med varje begäran, så använd HTTPS för allt annat.
Felsökning
Meddelandet ”x509: certificate signed by unknown authority”
Maskinen som kör Terraform litar inte på ditt Status200s certifikat: lägg till din certifikatutfärdare som TLS och certifikat visar.
Meddelandet ”invalid character '<' looking for beginning of value”
En webbsida svarade i stället för API:et: status200_url innehåller en sökväg, eller så svarade en proxy. Sätt den till bara ditt Status200s adress.
Meddelandet ”no available releases match the given constraints”
Ingen publicerad provider passar versionsbegränsningen, till exempel en begränsning som nämner en enda version som Status200 aldrig har publicerat. Skriv ett intervall, som Välj providerversion visar.
Meddelandet ”ProjectId required”
Nyckeln är master-API-nyckeln, som inte hör till något projekt. Skapa en API-nyckel för projektet under Projektinställningar → Avancerad → API-nycklar.
Felsökning har de andra felen, och vad vart och ett betyder.