Vai al contenuto

Avvio rapido#

Provare la demo#

Per vedere manent all'opera prima di installare qualcosa, l'immagine demo esegue in un solo container il server, l'interfaccia web, un worker e cinque host raggiunti via SSH, con qualche minuto di storico dei rilasci:

git clone https://github.com/manent-deployer/manent.git && cd manent
docker build -f demo/Dockerfile -t manent-demo .
docker run --rm -p 8080:8080 -p 9000:9000 --name manent-demo manent-demo

Apri http://localhost:8080 (la porta 9000 è l'identity provider della demo, che ti fa entrare come John Doe senza password), poi rilascia shop in produzione a ondate (un host canary, poi una region alla volta, ciascuna dietro un health gate) e prova una versione difettosa, che manent riporta indietro da solo:

docker exec -it manent-demo manent deploy -f /demo/deploys/shop-1.3.0.yml
docker exec -it manent-demo manent deploy -f /demo/deploys/shop-1.4.0.yml
docker exec -it manent-demo manent logs <id> --level warn
docker exec -it manent-demo manent inventory

Demo di manent

La demo non ha login e tiene i dati dentro il container: non è una configurazione per ambienti reali. I passi seguenti compilano manent e lo eseguono sulla tua macchina.

Requisiti#

  • Go 1.27 o successivo. Il go.mod fissa la toolchain 1.27.x: con una versione di Go più vecchia viene scaricata automaticamente (GOTOOLCHAIN=auto).
  • Nessun database da installare per provare manent: di default DBOS usa un file SQLite (manent.db). In produzione serve Postgres.

Compilare#

make build      # bin/manent (client) e bin/manent-server
make plugins    # facoltativo: plugin esterni in bin/ (manent-plugin-remote-copy)

Primo deploy#

  1. Controlla il descrittore. validate calcola il piano degli step e mostra il deploy effettivo, senza avviare nulla:

    bin/manent-server -c configs/manent.yml validate -f examples/descriptor.yml --offline
    

    --offline evita di leggere la configurazione di ambiente (ad esempio da Consul).

  2. Avvia un worker. I deploy vengono eseguiti solo da un worker. serve avvia l'API HTTP su :8080 e un worker nello stesso processo:

    bin/manent-server -c configs/manent.yml serve
    
  3. Accoda il deploy da un altro terminale con il client manent, che di default parla con il server locale (http://127.0.0.1:8080). Il comando attende la fine del deploy e ne stampa il risultato:

    bin/manent deploy -f examples/descriptor.yml
    

    Il descrittore d'esempio copia l'artefatto via SSH su 192.168.1.10: adatta artifact.source, deploy.targets e i segreti al tuo ambiente, oppure usa --dry-run per vedere cosa succederebbe senza modificare i target.

  4. Controlla lo stato in qualsiasi momento:

    bin/manent list
    bin/manent status <id>
    

Lo stesso deploy si può accodare via API, con il descrittore in JSON:

curl -X POST localhost:8080/api/v1/deployments \
  -H 'Content-Type: application/json' \
  -d @examples/descriptor.json

Passi successivi#