我们目前正在 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
如果有必要,您可以使用正则表达式来修复空格。