You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Azure CLI使用Flexify.io镜像创建带SSL的虚拟机?

解决Azure CLI创建Flexify.io带SSL虚拟机的问题

错误原因

你直接使用Docker Hub的镜像标签flexifyio/ce:latest作为az vm create的--image参数,这不符合Azure的要求——Azure VM的镜像参数需要是Azure Marketplace镜像URN、自定义镜像名称/ID、VHD Blob URI,而非Docker Hub镜像。

正确操作步骤

1. 获取Flexify.io Azure Marketplace镜像的正确URN

首先需要找到Flexify.io在Azure Marketplace中的镜像标识(URN,格式为publisher:offer:sku:version):

  • 执行以下命令搜索Flexify.io的官方镜像:
    az vm image list --publisher FlexifyIO --all --output table
    
  • 从输出中找到对应版本的镜像信息,比如最新版的URN可能类似FlexifyIO:flexifyio-ce:flexifyio-ce:latest(具体以实际搜索结果为准)。

2. 接受Marketplace镜像使用条款(若需)

部分Marketplace镜像需要先接受条款才能通过命令行部署,执行:

az vm image terms accept --publisher FlexifyIO --offer flexifyio-ce --sku flexifyio-ce

3. 修改az vm create命令

将--image参数替换为获取到的Azure Marketplace镜像URN,同时保留SSL相关配置:

az vm create \
  --resource-group myresourcegroups \
  --name staging-images \
  --image FlexifyIO:flexifyio-ce:flexifyio-ce:latest \ # 替换为实际获取的URN
  --admin-username azureuser \
  --generate-ssh-keys \
  --custom-data ~/Documents/cloud-init-web-server.txt \
  --secrets "$vm_secret"

4. 配置SSL安全

你可以通过custom-data(cloud-init)完成SSL证书配置,比如在cloud-init-web-server.txt中添加以下内容(以Let's Encrypt为例):

#cloud-config
package_update: true
package_upgrade: true
packages:
  - certbot
  - nginx # 若用Nginx反向代理Flexify.io
runcmd:
  # 获取SSL证书(替换为你的域名)
  - certbot certonly --standalone -d your-domain.com --agree-tos -m your-email@example.com
  # 配置Nginx反向代理并启用SSL(根据Flexify.io的端口调整)
  - echo "server {
      listen 443 ssl;
      server_name your-domain.com;
      ssl_certificate /etc/letsencrypt/live/your-domain.com/fullchain.pem;
      ssl_certificate_key /etc/letsencrypt/live/your-domain.com/privkey.pem;
      location / {
          proxy_pass http://localhost:8080; # Flexify.io默认端口,需确认
          proxy_set_header Host $host;
          proxy_set_header X-Real-IP $remote_addr;
      }
    }" > /etc/nginx/sites-available/flexify
  - ln -s /etc/nginx/sites-available/flexify /etc/nginx/sites-enabled/
  - systemctl restart nginx
  # 设置证书自动续期
  - echo "0 0,12 * * * root /usr/bin/certbot renew --quiet" >> /etc/crontab

注意:需提前将域名解析到该VM的公网IP,确保80/443端口在NSG中开放。

内容的提问来源于stack exchange,提问作者Lutaaya Huzaifah Idris

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 06:35:51