0

我是 Chef 的新手,我遇到了一个问题。我使用AWS Chef Automate ServerEC2 ubuntu实例作为 Chef 节点。我的工作站是我在 windows 上安装 ChefDK的本地机器。我已经使用 ChefDK 成功配置了 Chef 服务器。

当我使用Knife Bootstrap命令引导节点时,它会引导 ubuntu 节点,但最后会显示此错误cannot create /etc/chef/trusted_certs/opsworks-cm-ca-2016-root.pem: Directory nonexistent

我在这里使用的命令是knife bootstrap myEC2PublicIPHere -N UmaidNode1 -x ubuntu --sudo --run-list "recipe[nginx]" -i .chef/my_key.pem.

之后,我在服务器中添加了一些其他食谱并从我的 Windows 工作站运行Knife ssh命令以在节点上运行Chef-client,但此命令不起作用。我尝试过使用不同的属性,但总是出现类似的问题FATAL: 1 node found, but does not have the required attribute to establish the connection. Try setting another attribute to open the connection using --attribute

我在这里尝试的命令是knife ssh 'name:*' --attribute myEC2PublicIpHere -x ubuntu -i .chef/my_key.pem 'sudo chef-client'. 运行此命令knife node show UmaidNode1后,它会显示有关 IP 为空白的节点的数据。我不知道为什么它没有在这里获得这个IP。显示输出Node Name: UmaidNode1 Environment: _default FQDN: IP: Run List: recipe[nginx], recipe[apache] Roles: Recipes: Platform: Tags: 在此处输入图像描述

4

1 回答 1

0

问题终于解决了。我不知道为什么,但问题出在ChefDK 版本上。我使用的是最新版本 4.8.23。它总是创建目录/etcchef,但厨师搜索目录中的所有文件/etc/chef。所以它无法获取诸如 client.rb 等文件。

注意:我什至自己制作了所需的 /etc/chef目录,但它不起作用。我安装了旧版本的 ChefDK,现在它工作正常。

于 2020-06-26T12:27:38.360 回答