![在 Azure 中创建 Linux 服务器时,是否可以以某种方式声明 UUID?](https://linux22.com/image/785183/%E5%9C%A8%20Azure%20%E4%B8%AD%E5%88%9B%E5%BB%BA%20Linux%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%97%B6%EF%BC%8C%E6%98%AF%E5%90%A6%E5%8F%AF%E4%BB%A5%E4%BB%A5%E6%9F%90%E7%A7%8D%E6%96%B9%E5%BC%8F%E5%A3%B0%E6%98%8E%20UUID%EF%BC%9F.png)
我们目前正在 Microsoft Azure 中进行事实调查。对于我们的一个软件堆栈,拥有已知的 UUID 非常重要(定义为 的输出dmidecode|grep UUID
)。
在 virtualbox/vagrant 中,可以使用如下命令强制将特定的 UUID 施加到虚拟机上vagrantfile
:
config.vm.define :"box01" do |box01|
box01.vm.box = BOX
box01.vm.network :private_network, ip:"192.168.57.140"
box01.vm.hostname = "box01"
box01.vm.provider :virtualbox do |vb|
vb.customize ['setextradata', :id, 'VBoxInternal/Devices/pcbios/0/Config/DmiSystemUuid', '564DA11D-1112-7C62-2119-8E461180AE4A']
end
end
在 ovirt 内部,有类似的功能可以使用 RESTful API 强制使用 UUID,我们为所有 VM 进行了硬编码。
Azure 中是否存在这样的功能?
答案1
也许不是一个真正的答案,但这应该在系统运行后起作用。
# mv -f /bin/dmidecode /bin/dmidecode.real
# cat > /bin/dmidecode <<EOF
#!/bin/bash
/bin/dmidecode.real “$@“ | sed ‘s:/^\s*UUID.*/UUID: 564DA11D-1112-7C62-2119-8E461180AE4A/‘
EOF
# chmod 0755 /bin/dmidecode
如果有必要,您可以使用正则表达式来修复空格。