当我引导在Google Cloud和Rackspace上创建的VM时,运行Chef的knife bootstrap
命令可通过Ohai成功填充cloud_v2
属性,但在Azure VM上通过刀引导进行引导时,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
选项或如上所述手动进行。