无法使用AZ CLI az create vm命令添加自定义数据

时间:2020-04-28 15:11:37

标签: azure azure-cli

我正在运行以下命令在资源组上创建VM,但是登录时却看不到文件/root/hello.txt

az vm create --name "my_vm" --resource-group "my_rg" --image "centos" --admin-username "centos" --os-disk-size-gb "100" --vnet-name "my_vnet" --subnet "public-4" --ssh-key-values "ssh-rsa ..." --size "Standard_DS1_v2" --nsg "my_nsg" --custom-data '#!/bin/bash
        touch /root/hello.txt
        ' --data-disk-sizes-gb "10"

当然,有些换行符粘贴得不好,但这没关系。 另外,我也不想传递文件路径。我需要传递文本,就像我使用AWS一样。

最终目标是在bash脚本下运行以增加OS磁盘的分区,该分区太小了。

#!/bin/sh
fdisk /dev/sda <<EOF
u
p
d
2
n
p
2


w
EOF
touch fdisk.log
reboot
xfs_growfs -d /dev/sda2
touch xfs.log

1 个答案:

答案 0 :(得分:0)

首先,自定义数据是脚本或其他元数据,可以在提供时间 注入到Microsoft Azure虚拟机中。当前,Azure中有cloud-init preinstalled and configured images。它可以使用cloud-init配置文件或简单地使用Shell脚本处理在供应期间发送的自定义数据(只要它以#!开头,然后cloud-init将执行它)。

在Linux上,此数据通过ovf-env.xml文件传递到VM, 在配置过程中将其复制到/var/lib/waagent目录中。 较新版本的Microsoft Azure Linux代理也将复制 还可以将base64编码的数据存储到/var/lib/waagent/CustomData 方便。

阅读Custom Data and Cloud-Init on Microsoft Azure了解更多详细信息。

通常,自定义数据会与其他配置配置信息(例如新的主机名,用户名,密码,证书和密钥等)一起发送到VM。在这种情况下,我不会认为您可以在设置时使用自定义数据来调整OS磁盘分区的大小。似乎不可能在自定义数据中进行重新启动和交互式处理脚本。

有关更多参考,您可以阅读

Resizing a Linux VM system disk in Microsoft Azure

Expand virtual hard disks on a Linux VM with the Azure CLI