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

原创 2016年09月27日 20:58:02
有的时候,我们需要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.

那么为什么会出现这个错误?如何解决呢?且听笔者缓缓道来。
首先,请注意当前笔者进入的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个文件:

那么现在难道就把问题解决了吗? 让我们再次运行,

从上面的错误,我们看出,其报了一个其他的错误,根据提示,我需要用knife check ssl命令先确认一下
服务器的证书是否存在。要解决这个问题,请在当前的目录(c:\chefdemo)执行knife ssl fetch命令.

我们发现,其会创建一个新的目录,C:\chefdemo\trusted_certs,并会把https://chef-master-rodney.example.com/organizations/example这个网站上的公用证书下载到这个目录,chef-master-rodney_example_com.crt
这次我们再次执行,knife ssl check,就不会报错了。

然后再次执行,knife status --run-list和knife search ‘*:*’ -i, 恭喜你,执行成功了!!!!

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Windows Server使用python实现自动化运维——开启系统更新服务

在给别人做自动化运维时,有客户要求Windows系统中server pack是否符合安全要求,我的做法是设置系统可以自动更新,从而满足要求。 对应的python代码: import os re...

[13] DevOps 自动化运维工具Chef----用chef-apply命令单机运行Chef配方(Receipt)

前面的12篇文章唠唠叨叨了如何安装Chef,如何查看Chef的数据库的密码,就是没有分享如何跑一个简单的Chef的配方去完成一项任务。这篇文章的目的就是让大家见识一下如何用Chef执行一个简单的任务。...

[14] DevOps 自动化运维工具Chef----如何用Chef调用PowerShell DSC的Resource

上一个章节讲述了如何用Chef-apply运行本地的一个chef的菜谱,这节笔者主要与大家分享如何把Chef和PowerShell DSC集成起来;我们知道,PowerShell在管理WIndow的机...

[7]DevOps 自动化运维工具Chef---如何安装Chef的Report?

Chef Report是一个非常有用的功能,它能检测所有的chef节点的任务执行情况: 成功,失败,终止。 而且能记录客户端节点的执行情况。Chef report的最低执行版本如下: Chef ser...

微信公众平台开发利器-weixin-knife(Python版)

这两天将之前基于微信公众平台的代码重构了下,基础功能以库的方式提供,提供了demo使用的是django,看着之前为赶进度写的代码真的惨不忍睹,所以weixin-knife产生了,正如其名,提供的是必要...

[4] DevOps 自动化运维工具Chef----在Ubuntu上安装最新的Chef Client 12.13.37 并和Chef server关联起来

上一节分享了在Ubuntu上安装最新的Chef WorkStation 12.13.37,现在这一节给大家分享一下,Ubuntu上安装最新的Chef Client 12.13.37 并和Chef se...

[15] DevOps 自动化运维工具Chef----chef-apply, chef-client,chef-zero,chef-solo区别

在使用Chef的时候,经常会遇到下面这些比较容易混淆的概念和命令:chef-apply, chef-client,chef-zero,chef-solo; 那么这四个命令到底有什么区别呢?...

使用Chef管理windows集群 | 运维自动化工具

但凡服务器上了一定规模(百台以上),普通的ssh登录管理的模式就越来越举步维艰。试想Linux发布了一个高危漏洞的补丁,你要把手下成百上千台机器都更新该补丁,如果没有一种自动化方式,那么至少要耗上大半...

移除 Butter Knife 注释标签

  • 2016年05月16日 23:34
  • 3KB
  • 下载

Knife for File

  • 2014年07月26日 15:40
  • 128KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[9]DevOps 自动化运维工具Chef---如何解决在Window平台上执行一些knife子命令时所报的错误, knife search, knife status?
举报原因:
原因补充:

(最多只允许输入30个字)