Déploiement Azure CLI

Guide rapide pour déployer PKI Trust Manager sur Azure Container Instances avec Azure SQL Database.

🚀 Guide de déploiement rapide#

Déployez PKI Trust Manager sur Azure Container Instances avec votre Azure SQL Database existante.

Liste des prérequis#

  • ✅ Abonnement Azure avec accès contributeur
  • ✅ Azure SQL Database déjà provisionnée
  • ✅ Chaîne de connexion SQL prête (serveur, base de données, identifiants)
  • ✅ Azure CLI installé (vérifiez avec az --version)

📋 Déploiement étape par étape#

1. Se connecter à Azure#

az login

2. Créer un groupe de ressources (si nécessaire)#

az group create \
  --name pki-trust-manager-rg \
  --location eastus

3. Déployer le conteneur PKI Trust Manager#

# Replace placeholders with your actual values
az container create \
  --resource-group pki-trust-manager-rg \
  --name pki-trust-manager \
  --image securetron.azurecr.io/pkimain:latest \
  --cpu 2 \
  --memory 4 \
  --ports 5228 \
  --dns-name-label pki-trust-manager-$(date +%s) \
  --environment-variables \
    ASPNETCORE_ENVIRONMENT=Production \
    ConnectionStrings__OurDBContext="Server=YOUR_SQL_SERVER.database.windows.net;Database=YOUR_DATABASE_NAME;User Id=YOUR_USERNAME;Password=YOUR_PASSWORD;MultipleActiveResultSets=true;TrustServerCertificate=True;" \
    Environment__Mode=Cloud \
    Authentication__DefaultSuperAdminUsername=superadmin \
    Authentication__DefaultSuperAdminPassword="ChangeThisPassword123!" \
    [email protected] \
    Smtp__Server="mail.smtp2go.com" \
    Smtp__Port=2525 \
    Smtp__Auth=true \
    Smtp__EnableSsl=true \
    Smtp__Username="your-smtp-username" \
    Smtp__Password="your-smtp-password" \
    Licensing__OfflineMode=true \
  --restart-policy Always

4. Obtenir l’URL de l’application#

az container show \
  --resource-group pki-trust-manager-rg \
  --name pki-trust-manager \
  --query "ipAddress.fqdn" \
  --output tsv

🔧 Configuration minimale requise#

Remplacez ces valeurs dans la commande ci-dessus :

1. Connexion à SQL Database#

# Your Azure SQL details:
Server=YOUR_SQL_SERVER.database.windows.net
Database=YOUR_DATABASE_NAME
User Id=YOUR_USERNAME
Password=YOUR_PASSWORD

2. Identifiants administrateur#

Authentication__DefaultSuperAdminUsername=superadmin
Authentication__DefaultSuperAdminPassword="YourSecurePasswordHere"

3. Configuration SMTP (facultative mais recommandée)#

Smtp__Server="your-smtp-server.com"
Smtp__Username="your-username"
Smtp__Password="your-password"

🎯 Script de déploiement en une ligne#

Enregistrez ce script sous deploy-pki.sh :

#!/bin/bash
 
# Set your variables here
RESOURCE_GROUP="pki-trust-manager-rg"
LOCATION="eastus"
SQL_SERVER="your-sql-server.database.windows.net"
SQL_DATABASE="PKIDBEE"
SQL_USER="your-sql-username"
SQL_PASSWORD="your-sql-password"
ADMIN_PASSWORD="YourAdminPassword123!"
 
# Run deployment
az container create \
  --resource-group $RESOURCE_GROUP \
  --name pki-trust-manager \
  --image securetron.azurecr.io/pkimain:latest \
  --cpu 2 --memory 4 --ports 5228 \
  --dns-name-label pki-trust-manager-$(date +%s) \
  --environment-variables \
    ConnectionStrings__OurDBContext="Server=$SQL_SERVER;Database=$SQL_DATABASE;User Id=$SQL_USER;Password=$SQL_PASSWORD;MultipleActiveResultSets=true;TrustServerCertificate=True;" \
    Authentication__DefaultSuperAdminUsername=superadmin \
    Authentication__DefaultSuperAdminPassword="$ADMIN_PASSWORD" \
    [email protected] \
    Licensing__OfflineMode=true \
  --restart-policy Always
 
# Get the URL
echo "Your PKI Trust Manager is deployed at:"
az container show \
  --resource-group $RESOURCE_GROUP \
  --name pki-trust-manager \
  --query "ipAddress.fqdn" \
  --output tsv

Rendez le script exécutable puis lancez-le :

chmod +x deploy-pki.sh
./deploy-pki.sh

✅ Étapes de vérification#

1. Vérifier l’état du déploiement#

az container show \
  --resource-group pki-trust-manager-rg \
  --name pki-trust-manager \
  --query "provisioningState"

2. Consulter les journaux du conteneur#

az container logs \
  --resource-group pki-trust-manager-rg \
  --name pki-trust-manager

3. Tester l’application#

# Get the FQDN
URL=$(az container show \
  --resource-group pki-trust-manager-rg \
  --name pki-trust-manager \
  --query "ipAddress.fqdn" \
  --output tsv)
 
# Test connection
curl http://$URL:5228/health

🐛 Résoudre les problèmes courants#

Problème 1 : "Image pull failed"#

# Check if you can pull the image
docker pull securetron.azurecr.io/pkimain:latest

Problème 2 : "Cannot connect to database"#

# Test SQL connectivity
az container exec \
  --resource-group pki-trust-manager-rg \
  --name pki-trust-manager \
  --exec-command "ping YOUR_SQL_SERVER.database.windows.net"
 
# Check SQL firewall allows Azure services
# In Azure Portal: SQL Server → Firewalls and virtual networks → Allow Azure services = ON

Problème 3 : redémarrages répétés du conteneur#

# Check detailed logs
az container logs \
  --resource-group pki-trust-manager-rg \
  --name pki-trust-manager \
  --follow

📊 Configuration après le déploiement#

1. Accéder à l’application#

  1. Accédez à : http://YOUR_FQDN:5228
  2. Connectez-vous avec :
    • Username: superadmin
    • Password: [Your set password]

2. Configuration initiale#

  1. Modifiez le mot de passe administrateur par défaut.
  2. Configurez les paramètres de l’organisation.
  3. Configurez les autorités de certification.
  4. Configurez les notifications par e-mail.

3. Activer HTTPS (facultatif mais recommandé)#

# Create an Application Gateway or use Azure Front Door
# This requires SSL certificates

🗑️ Nettoyage#

Supprimez le déploiement lorsqu’il n’est plus nécessaire :

az container delete \
  --resource-group pki-trust-manager-rg \
  --name pki-trust-manager \
  --yes

📞 Besoin d’aide ?#

Assistance rapide#

  1. Consulter les journaux : az container logs -g pki-trust-manager-rg -n pki-trust-manager
  2. Vérifier la connexion SQL : testez la connectivité depuis Azure Portal.
  3. Vérifier l’état du conteneur : az container show -g pki-trust-manager-rg -n pki-trust-manager

Contacter Securetron#


Durée de déploiement : ~5 minutes
Coût estimé : ~$20-100/mois (Container + SQL)
Maintenance : automatique avec Azure Container Instances