我正在尝试使用主厨功能使用cloud-init创建用户数据脚本。我遇到了限制,我想知道是否有办法绕过它。我需要我的节点名称是唯一的,因为厨师服务器只接受具有唯一名称的客户端。我已经尝试了几个传递日期时间变量或实例ID的东西,但我似乎无法将变量传递给node_name部分。
node_name: "server-app-$INSTANCE_ID"
或
node_name: "server-app-$(date +%s)"
有没有办法逃避这一点,以便它不会被字面解释?
Chef encountered an error attempting to create the client "server-app-$INSTANCE_ID"
答案 0 :(得分:0)
在写出client.rb
:
echo "node_name '$(date +%s)' >> /etc/chef/client.rb"
如果两台机器在同一秒内启动,那么这仍然可能会发生冲突。我强烈建议使用EC2实例ID或IP地址。您可以从元数据服务器获取这些内容。有关示例,请参阅https://github.com/coderanger/brix/blob/master/packer/client-bootstrap.sh#L26-L37。