Azure 上的 Chef 引导不会填充 cloud_v2 属性

Chef bootstrapping on Azure doesn't populate the cloud_v2 attribute

运行 Chef 的 knife bootstrap 命令通过 Ohai 成功填充 cloud_v2 属性,当我 bootstrap 在 Google Cloud 和 Rackspace 上创建的 VM,但在 Azure 上虚拟机 bootstrap 通过刀使 cloud_v2 散列非常空——它只填充了一个属性:provder: azure

相比之下,Ohai 成功地填充了 Google Cloud 和 Rackspace 节点,如下所示:

cloud_v2: public_ipv4_addrs 0: xxx.xxx.xxx.85 local_ipv4_addrs 0: 10.240.0.2 provider: gce local_hostname: myhostname.projectname.internal public_ipv4: xxx.xxx.xxx.85 local_ipv4: 10.240.0.2

这是 Azure 的 Ohai 插件中的错误吗?如何让 Knife bootstrap 命令包含更多默认的 Ohai 属性?最具体地说,我需要 public_ipv4 以便我可以将此属性用于 运行 knife ssh 命令。

Ohai 仅支持 limited auto-detection of Azure。如果您触摸提示文件 (mydir -p /etc/chef/ohai/hints && touch /etc/chef/ohai/hints/azure.json),它应该会看得更清楚。如果您使用相关的 knife-$cloud 插件,这通常会自动为您处理,但对于普通的 knife bootstrap,您需要通过 --hint 选项或如上所述手动完成。