[9]DevOps 自动化运维工具Chef---如何解决在Window平台上执行一些knife子命令时所报的错误, knife search, knife status?

有的时候,我们需要window平台上执行一些knife子命令,比如, knife status --run-list 查看运行的run list的状态, knife search '*:*' -i 搜索所有的子节点
这个时候如果运行的话,就会出现下面的错误提示, Cannot sign the request without a client name, check that :node_name is assigned.
[9]DevOps 自动化运维工具Chef---如何解决在Window平台上执行一些knife子命令时所报的错误, knife search, knife status?_第1张图片
那么为什么会出现这个错误?如何解决呢?且听笔者缓缓道来。
首先,请注意当前笔者进入的c:\chefdemo目录下面是一个空目录。而上面的命令需要和Chef服务器通信。那么问题来了,既然要和服务器通信,
就需要知道服务器的URL,已经服务器的证书,以及Chef服务器用户的私有证书(私有证书如何生成,请参考笔者的另一篇文章http://blog.csdn.net/chancein007/article/details/52551722),默认情况下,其会寻找当前的一个目录下是否有一个knife.rb的配置文件。如果没有则会报上面的Warning: No knife configuration file found. 解决的办法是在当前的目录下添加一个knife.rb的文件,其基本的配置如下:
# See https://docs.getchef.com/config_rb_knife.html for more information on knife configuration options
current_dir = File.dirname(__FILE__)
log_level                :debug
log_location             STDOUT
node_name                "rodney"
client_key               "#{current_dir}/rodney.pem"
chef_server_url          "https://chef-master-rodney.example.com/organizations/example"
#cookbook_path            ["#{current_dir}/../cookbooks"]
在上面的配置文件中我们指定了登陆到https://chef-master-rodney.example.com/organizations/ example网站的用户的私有证书和用户名,也就是node_name, "rodney". 当然还有chef_server_url. 现在当前的目录下面有2个文件:
[9]DevOps 自动化运维工具Chef---如何解决在Window平台上执行一些knife子命令时所报的错误, knife search, knife status?_第2张图片
那么现在难道就把问题解决了吗? 让我们再次运行,
[9]DevOps 自动化运维工具Chef---如何解决在Window平台上执行一些knife子命令时所报的错误, knife search, knife status?_第3张图片
从上面的错误,我们看出,其报了一个其他的错误,根据提示,我需要用knife check ssl命令先确认一下
服务器的证书是否存在。要解决这个问题,请在当前的目录(c:\chefdemo)执行knife ssl fetch命令.
[9]DevOps 自动化运维工具Chef---如何解决在Window平台上执行一些knife子命令时所报的错误, knife search, knife status?_第4张图片
我们发现,其会创建一个新的目录,C:\chefdemo\trusted_certs,并会把https://chef-master-rodney.example.com/organizations/example这个网站上的公用证书下载到这个目录,chef-master-rodney_example_com.crt
这次我们再次执行,knife ssl check,就不会报错了。
[9]DevOps 自动化运维工具Chef---如何解决在Window平台上执行一些knife子命令时所报的错误, knife search, knife status?_第5张图片
然后再次执行, knife status --run-list和knife search ‘*:*’ -i, 恭喜你,执行成功了!!!!
[9]DevOps 自动化运维工具Chef---如何解决在Window平台上执行一些knife子命令时所报的错误, knife search, knife status?_第6张图片

你可能感兴趣的:(Chef,大话Chef)