`cloud-init` 不会阻止虚拟机配置

`cloud-init` 不会阻止虚拟机配置

我使用 Azure,并且我想cloud-init在创建 VM 时使用它来安装一些软件。

以下是 的内容cloud-init.yml

#cloud-config

package_update: true
package_upgrade: true

runcmd:
  - curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
  - add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
  - apt update
  - apt install -y docker-ce docker-ce-cli containerd.io
  - usermod -aG docker azureuser
  - curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
  - chmod +x /usr/local/bin/docker-compose

power_state:
  mode: reboot
  condition: True

下面是az我用来创建 VM 的命令:

az vm create \
    --resource-group $GR_NAME \
    --name $VM_NAME \
    --image UbuntuLTS \
    --admin-username azureuser \
    --custom-data cloud-init.yml \
    --generate-ssh-keys

当上述命令返回时,我可以ssh进入机器,但我的安装过程仍在运行cloud-init,实际上仅在约 3 分钟后完成,然后机器重新启动。

我期望虚拟机配置应该被阻止,cloud-init但事实并非如此。是否可以强制“阻止”行为?

答案1

Cloud-Init 所做的就是在虚拟机运行后运行您的命令,它不会阻止任何人在虚拟机运行时连接到机器,而且实际上没有办法做到这一点。

您可以查看编写脚本来禁用 NSG 上的 RDP 访问,直到 VM 完成配置为止。

相关内容