Azure CLI 部署

使用现有 Azure SQL Database 在 Azure Container Instances 上部署 PKI Trust Manager 的快速指南。

🚀 快速部署指南#

使用现有 Azure SQL Database,在 Azure Container Instances 上部署 PKI Trust Manager。

前置条件清单

  • ✅ 具有 Contributor 权限的 Azure 订阅
  • ✅ 已配置的 Azure SQL Database
  • ✅ 已准备好的 SQL 连接字符串(服务器、数据库和凭据)
  • ✅ 已安装 Azure CLI(运行 az --version 检查)

📋 分步部署#

1. 登录 Azure#

az login

2. 创建资源组(如果需要)#

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

3. 部署 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. 获取应用 URL#

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

🔧 最低限度的必需配置#

替换上方命令中的这些值:

1. 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. 管理员凭据#

Authentication__DefaultSuperAdminUsername=superadmin
Authentication__DefaultSuperAdminPassword="YourSecurePasswordHere"

3. SMTP 配置(可选但建议配置)#

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

🎯 单行部署脚本#

将以下内容保存为 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

设置脚本为可执行并运行:

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

✅ 验证步骤#

1. 检查部署状态#

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

2. 查看容器日志#

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

3. 测试应用#

# 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

🐛 常见问题排查#

问题 1:"Image pull failed"#

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

问题 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

问题 3:容器不断重启#

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

📊 部署后设置#

1. 访问应用#

  1. 打开:http://YOUR_FQDN:5228
  2. 使用以下凭据登录:
    • Username: superadmin
    • Password: [Your set password]

2. 初始配置#

  1. 更改默认管理员密码。
  2. 配置组织设置。
  3. 设置证书颁发机构。
  4. 配置电子邮件通知。

3. 启用 HTTPS(可选,但建议启用)#

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

🗑️ 清理#

不再需要部署时,可将其删除:

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

📞 需要帮助?#

快速支持

  1. 查看日志:az container logs -g pki-trust-manager-rg -n pki-trust-manager
  2. 验证 SQL 连接:从 Azure Portal 测试连接。
  3. 检查容器状态:az container show -g pki-trust-manager-rg -n pki-trust-manager

联系 Securetron#


部署时间:5 分钟
估算成本:
$20-100/月(Container + SQL)
维护:由 Azure Container Instances 自动维护