---
title: "Infrastruktur"
description: "Ingen hemmeligheter i konfigurasjon. Ingen hemmeligheter i logger. Docker, Kubernetes, Terraform, Ansible, CI/CD, og alt annet."
lang: no
url: https://clavitor.ai/no/developers/infrastructure
markdown: https://clavitor.ai/no/developers/infrastructure.md
translation_of: https://clavitor.ai/en/developers/infrastructure.md
authoritative: false
publisher: Clavitor LLC
---

> This is the Norwegian translation of [Infrastructure](https://clavitor.ai/en/developers/infrastructure.md). The original English text is authoritative; where the two differ, the English version prevails.

# Infrastruktur: Ingen hemmeligheter i konfigurasjon. Ingen hemmeligheter i logger.

Alle plattformer, alle orkestratorer, alle CI-kjørere. Proxyen fungerer med alt som gjør HTTP-kall. CLI-en fungerer med alt som kan kjøre kommandoer. Hvis systemet ditt er eldre enn karrieren din, fungerer det fortsatt.

## Proxyen er den universelle integrasjonen.

Hvis arbeidsmengden din gjør HTTPS-kall, injiserer Clavitor-proxyen påloggingsinformasjon på nettverksnivå. Ingen kodeendringer. Ingen SDK-er. Ingen hemmeligheter i miljøvariabler, konfigurasjonsfiler eller logger. Sett `HTTPS_PROXY` og eksisterende kode fungerer uendret — proxyen løser `clavitor://`-referanser i forespørselsheadere før forespørselen forlater maskinen.

```
$ export HTTPS_PROXY=http://localhost:1983
$ curl -H "Authorization: Bearer clavitor://Stripe API/key" \
  https://api.stripe.com/v1/charges
# The agent never sees sk_live_... — only clavitor:// appears in logs

```

## Containere: Docker og Kubernetes

### Docker Compose

Kjør Clavitor-proxyen på verten og pek containerne dine mot den. Påloggingsinformasjon injiseres transparent i utgående forespørsler — ingen hemmeligheter i miljøvariabler, ingen hemmeligheter bakt inn i bilder.

```
# On the Docker host

$ clavitor-proxy serve &
```

```
# docker-compose.yml — containers route through the host-mode proxy

services:
  app:
    environment:
      - HTTPS_PROXY=http://host.docker.internal:1983
    extra_hosts:
      - "host.docker.internal:host-gateway"
```

Eller bruk `render` for å løse en konfigurasjonmal ved oppstart:

```
$ clavitor-cli render app.config.template.yml | docker compose -f - up
```

### Kubernetes

Opprett hemmeligheter fra hvelvet uten å hardkode verdier i manifestfiler:

```
$ kubectl create secret generic app-secrets \
  --from-literal=db-pass="$(clavitor-cli get 'Production DB' --field password)" \
  --from-literal=api-key="$(clavitor-cli get 'Stripe API' --field key)"
```

For kjøretidsinjeksjon av påloggingsinformasjon, distribuer proxyen som en sidecar-container i podden din. Applikasjonscontainere setter `HTTPS_PROXY` til sidecar-en. Påloggingsinformasjon løses per forespørsel, lagres aldri i etcd.

## IaC: Terraform, Ansible, Pulumi

### Terraform

Løs påloggingsinformasjon inn i leverandørmiljøet før `terraform apply`. AWS-leverandøren leser sin påloggingsinformasjon fra standard miljøvariabler — Clavitor fyller dem inn inline, .tf-filen nevner ingen hemmelighet.

```
$ export AWS_ACCESS_KEY_ID=$(clavitor-cli get "AWS Root" --field access_key_id)
$ export AWS_SECRET_ACCESS_KEY=$(clavitor-cli get "AWS Root" --field secret_key)
$ terraform apply
```

`provider "aws" {}`-blokken forblir tom i koden din. Samme mønster fungerer for enhver Terraform-leverandør som støtter env-var påloggingsinformasjon (som de fleste gjør).

### Ansible

```
- name: Get database password
  command: clavitor-cli get "Production DB" --field password
  register: db_pass
  no_log: true

- name: Configure app
  template:
    src: app.conf.j2
  vars:
    db_password: "{{ db_pass.stdout }}"
```

### Pulumi

```
import { execSync } from 'child_process';
const dbPass = execSync('clavitor-cli get "Production DB" --field password').toString().trim();
new aws.rds.Instance("db", { masterPassword: new pulumi.secret(dbPass) });
```

## CI/CD: GitHub Actions, GitLab CI, Jenkins

Tokenet sendes på stdin i alle eksempler nedenfor — holder det ute av `argv` slik at det ikke vises i `/proc/<pid>/cmdline` eller byggelogger.

### GitHub Actions

```
- name: Deploy
  env:
    CLAVITOR_TOKEN: ${{ secrets.CLAVITOR_TOKEN }}
  run: |
    echo "$CLAVITOR_TOKEN" | clavitor-cli init
    kubectl create secret generic app-secrets \
      --from-literal=api-key="$(clavitor-cli get 'Deploy Token' --field key)" \
      --dry-run=client -o yaml | kubectl apply -f -
```

### GitLab CI

```
deploy:
  script:
    - echo "$CLAVITOR_TOKEN" | clavitor-cli init
    - clavitor-cli get "Deploy Key" --field private_key | ssh-add -
    - ssh deploy@production "systemctl restart app"
```

### Jenkins

```
pipeline {
  stages {
    stage('Deploy') {
      steps {
        sh 'echo "$CLAVITOR_TOKEN" | clavitor-cli init'
        sh 'clavitor-cli get "Deploy Key" --field private_key | ssh-add -'
        sh 'ssh deploy@production "systemctl restart app"'
      }
    }
  }
}
```

## SSH: Hvelvlagrede nøkler

```
$ clavitor-cli get "Deploy Key" --field private_key | ssh-add -
$ ssh deploy@production
```

Den private nøkkelen sendes direkte inn i `ssh-add`. Den berører aldri disk, vises aldri i skallhistorikk, og fjernes fra agenten når økten avsluttes.

## Eldre systemer: Hvis den gjør et HTTP-kall, fungerer den.

Proxyen bryr seg ikke om hvilket språk som laget forespørselen. COBOL, FORTRAN, Perl, Visual Basic, en 30 år gammel batchjobb — hvis prosessen gjør en HTTPS-forespørsel, avskjærer proxyen den, løser `clavitor://`-referansen, og injiserer den ekte påloggingsinformasjonen. Ingen kodeendringer kreves.

For systemer som ikke kan gjøre HTTP-kall, bruk `clavitor-cli render` for å løse en konfigurasjonmal før prosessen starter. Malen er trygg å lagre hvor som helst. Det løste resultatet går til stdin eller en midlertidig fil med begrenset tilgang.

```
# Resolve credentials before the batch job starts

$ clavitor-cli render db-connect.template.cfg > /tmp/db-connect.cfg
$ chmod 600 /tmp/db-connect.cfg
$ /opt/legacy/batch-job --config /tmp/db-connect.cfg
$ rm /tmp/db-connect.cfg
```

## Mønsteret er alltid det samme.

CLI for skript og pipelines. Proxy for HTTP-arbeidsmengder. Render for konfigurasjonsfiler. Alle hemmeligheter løst ved kjøretid, aldri lagret.
[Start gratis](https://clavitor.ai/no/checkout)
[Utvikleroversikt →](https://clavitor.ai/no/developers)
