Point de départ
Copier toutes les commandes
Générer PDF
Commandes et flux de travail complets HashiCorp Waypoint pour le déploiement des applications et la gestion des versions sur les plateformes.
Installation et configuration
Command |
Description |
waypoint version |
Show Waypoint version |
waypoint server install -platform=docker |
Install server on Docker |
waypoint server install -platform=kubernetes |
Install server on Kubernetes |
waypoint context create -server-addr=localhost:9701 |
Create context |
waypoint login |
Login to Waypoint server |
Gestion de projet
Opérations de projets
Command |
Description |
waypoint init |
Initialize project |
waypoint project list |
List projects |
waypoint project inspect myapp |
Inspect project |
waypoint project destroy myapp |
Destroy project |
Cycle de vie de l'application
Construire, déployer, libérer
Command |
Description |
waypoint build |
Build application |
waypoint deploy |
Deploy application |
waypoint release |
Release application |
waypoint up |
Build, deploy, and release |
Gestion des demandes
Command |
Description |
waypoint status |
Show application status |
waypoint logs |
Show application logs |
waypoint logs -follow |
Follow application logs |
waypoint exec /bin/bash |
Execute command in deployment |
Gestion des espaces de travail
Command |
Description |
waypoint workspace list |
List workspaces |
waypoint workspace create dev |
Create workspace |
waypoint workspace use dev |
Switch workspace |
Exemples de configuration
Point de départ basique.hcl
project = "myapp"
app "web" \\\\{
labels = \\\\{
"service" = "web"
"env" = "dev"
\\\\}
build \\\\{
use "docker" \\\\{
dockerfile = "./Dockerfile"
\\\\}
registry \\\\{
use "docker" \\\\{
image = "myapp"
tag = "latest"
\\\\}
\\\\}
\\\\}
deploy \\\\{
use "docker" \\\\{
service_port = 3000
\\\\}
\\\\}
release \\\\{
use "docker" \\\\{\\\\}
\\\\}
\\\\}
Déploiement de Kubernetes
project = "myapp"
app "web" \\\\{
build \\\\{
use "docker" \\\\{
dockerfile = "./Dockerfile"
\\\\}
registry \\\\{
use "docker" \\\\{
image = "registry.example.com/myapp"
tag = gitrefpretty()
\\\\}
\\\\}
\\\\}
deploy \\\\{
use "kubernetes" \\\\{
probe_path = "/health"
replicas = 3
resources \\\\{
requests \\\\{
memory = "256Mi"
cpu = "250m"
\\\\}
limits \\\\{
memory = "512Mi"
cpu = "500m"
\\\\}
\\\\}
\\\\}
\\\\}
release \\\\{
use "kubernetes" \\\\{
load_balancer = true
port = 80
\\\\}
\\\\}
\\\\}
```_
### Déploiement du SSFE
```hcl
project = "myapp"
app "web" \\\\{
build \\\\{
use "docker" \\\\{
dockerfile = "./Dockerfile"
\\\\}
registry \\\\{
use "aws-ecr" \\\\{
region = "us-west-2"
repository = "myapp"
tag = gitrefpretty()
\\\\}
\\\\}
\\\\}
deploy \\\\{
use "aws-ecs" \\\\{
region = "us-west-2"
cluster = "production"
memory = 512
cpu = 256
count = 3
subnets = [
"subnet-12345",
"subnet-67890"
]
security_groups = [
"sg-abcdef"
]
\\\\}
\\\\}
release \\\\{
use "aws-alb" \\\\{
listener_arn = "arn:aws:elasticloadbalancing:..."
health_check \\\\{
enabled = true
healthy_threshold = 2
interval = 30
matcher = "200"
path = "/health"
port = "traffic-port"
protocol = "HTTP"
timeout = 5
unhealthy_threshold = 2
\\\\}
\\\\}
\\\\}
\\\\}
```_
### Projet à applications multiples
```hcl
project = "microservices"
app "api" \\\\{
labels = \\\\{
"service" = "api"
"tier" = "backend"
\\\\}
build \\\\{
use "docker" \\\\{
dockerfile = "./api/Dockerfile"
\\\\}
registry \\\\{
use "docker" \\\\{
image = "mycompany/api"
tag = gitrefpretty()
\\\\}
\\\\}
\\\\}
deploy \\\\{
use "kubernetes" \\\\{
probe_path = "/health"
replicas = 2
env = \\\\{
"DATABASE_URL" = var.database_url
"REDIS_URL" = var.redis_url
\\\\}
\\\\}
\\\\}
release \\\\{
use "kubernetes" \\\\{
port = 8080
\\\\}
\\\\}
\\\\}
app "frontend" \\\\{
labels = \\\\{
"service" = "frontend"
"tier" = "frontend"
\\\\}
build \\\\{
use "docker" \\\\{
dockerfile = "./frontend/Dockerfile"
\\\\}
registry \\\\{
use "docker" \\\\{
image = "mycompany/frontend"
tag = gitrefpretty()
\\\\}
\\\\}
\\\\}
deploy \\\\{
use "kubernetes" \\\\{
probe_path = "/"
replicas = 3
\\\\}
\\\\}
release \\\\{
use "kubernetes" \\\\{
load_balancer = true
port = 80
\\\\}
\\\\}
\\\\}
Variables et configuration
Définitions variables
variable "database_url" \\\\{
description = "Database connection URL"
type = string
sensitive = true
\\\\}
variable "replicas" \\\\{
description = "Number of replicas"
type = number
default = 2
\\\\}
variable "environment" \\\\{
description = "Environment name"
type = string
default = "dev"
\\\\}
Utilisation de variables
app "web" \\\\{
deploy \\\\{
use "kubernetes" \\\\{
replicas = var.replicas
env = \\\\{
"DATABASE_URL" = var.database_url
"ENVIRONMENT" = var.environment
\\\\}
\\\\}
\\\\}
\\\\}
Fonctions et expressions
Fonctions intégrées
app "web" \\\\{
build \\\\{
registry \\\\{
use "docker" \\\\{
image = "myapp"
tag = gitrefpretty() # Git reference
\\\\}
\\\\}
\\\\}
deploy \\\\{
use "kubernetes" \\\\{
env = \\\\{
"BUILD_TIME" = timestamp()
"GIT_SHA" = gitsha()
"VERSION" = gitrefpretty()
\\\\}
\\\\}
\\\\}
\\\\}
Plugins et Constructeurs
Module de construction personnalisé
app "web" \\\\{
build \\\\{
use "pack" \\\\{
builder = "heroku/buildpacks:20"
\\\\}
\\\\}
\\\\}
Plugin de déploiement personnalisé
app "web" \\\\{
deploy \\\\{
use "nomad" \\\\{
datacenter = "dc1"
region = "global"
resources \\\\{
cpu = 500
memory = 256
\\\\}
\\\\}
\\\\}
\\\\}
Meilleures pratiques
Structure du projet
project/
├── waypoint.hcl
├── .waypointignore
├── apps/
│ ├── api/
│ │ ├── Dockerfile
│ │ └── src/
│ └── frontend/
│ ├── Dockerfile
│ └── src/
├── infrastructure/
│ └── terraform/
└── scripts/
└── deploy.sh
Sécurité
- ** Gestion des actifs** : Utiliser des magasins secrets externes
- RBAC: Mettre en place un contrôle d'accès fondé sur le rôle
- Sécurité du réseau: Utiliser des réseaux et des pare-feu sécurisés
- Scannage d'images: Images de conteneur de numérisation
- Audit Logging: Activer l'enregistrement d'audit
Rendement
- ** Limites de ressources** : Fixer des limites de ressources appropriées
- ** Contrôles de santé**: Mettre en œuvre des contrôles de santé appropriés
- Échelle: Configurer l'échelle automatique
- Surveillance: Surveiller les performances des applications
- Caching: Mettre en œuvre des stratégies de cache
Opérations
- ICI/CD Intégration: Intégration avec les pipelines CI/CD
- Stratégie de rappel: Procédures de renversement du plan
- Déploiements bleu-vert: Utiliser des déploiements bleu-vert
- Communiqués canari: Mettre en œuvre les rejets canari
- Surveillance: Mettre en place un suivi complet