Azure VM 启动时自动运行 bash 脚本

问题描述 投票:0回答:1

在 aws ec2 中,我会将脚本粘贴到用户数据文本框中, 这里我尝试了自定义数据来设置安装docker的脚本,但它不起作用, 我也尝试过这样编码:

certutil -encode installDockerBash.txt encoded.txt

在将其粘贴到文本框中之前,但是当我连接到它时,docker 仍然不存在,所以我认为脚本没有执行。

azure azure-virtual-machine
1个回答
0
投票

考虑到您提到的文本框,我很好奇您使用什么方法来部署此虚拟机。

使用 Azure CLI 时,自定义数据可以指定本地文件或用引号引起来的内联脚本。传递内联脚本时,应使用

\n
传递换行符。

在这两种情况下,您还必须传递

--extensions customScript
参数。

脚本文件示例

az vm create \
  --resource-group <resource_group_name> \
  --name <vm_name> \
  --image UbuntuLTS \
  --admin-username <username> \
  --admin-password <password> \
  --custom-data myscript.sh \
  --extensions customScript \
  --no-wait

内联脚本示例

az vm create \
  --resource-group <resource_group_name> \
  --name <vm_name> \
  --image UbuntuLTS \
  --admin-username <username> \
  --admin-password <password> \
  --custom-data "#!/bin/bash\nsudo apt-get update\nsudo apt-get install -y docker.io" \
  --extensions customScript \
  --no-wait

要对脚本进行故障排除,请尝试将每个命令的输出重定向到文件:

sudo apt-get install -y docker.io >> /tmp/customScript_stdout.txt
etc...

添加一条评论,说明您正在部署的内容(如果不是 Azure CLI),我会将其添加到我的答案中。

© www.soinside.com 2019 - 2024. All rights reserved.