我对Chef很新,并且在Node1上安装了一个厨师服务器11,我已经在Node2上成功设置了工作站,当我获得用户列表时,我得到了所有用户列表
[root@Staging3 .chef]# knife user list
admin
root
但是当我发出刀具引导时,我得到了以下错误。
[root@Staging3 .chef]# knife bootstrap 10.4.6.214 -x root -N slave1 --sudo
Doing old-style registration with the validation key at /opt/chef/chef-repo/.chef/chef-validator.pem...
Delete your validation key in order to use your user credentials instead
Connecting to X.X.X.X
root@X.X.X.X's password:
X.X.X.X Starting first Chef Client run...
X.X.X.X Starting Chef Client, version 12.1.1
X.X.X.X Creating a new client identity for slave1 using the validator key.
X.X.X.X [2015-03-19T00:42:00+05:30] ERROR: SSL Validation failure connecting to host: staging4.akosha.com - SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed
X.X.X.X
X.X.X.X ================================================================================
X.X.X.X Chef encountered an error attempting to create the client "slave1"
X.X.X.X ================================================================================
X.X.X.X
X.X.X.X [2015-03-19T00:42:00+05:30] FATAL: Stacktrace dumped to /var/chef/cache/chef-stacktrace.out
X.X.X.X Chef Client failed. 0 resources updated in 6.045009421 seconds
X.X.X.X [2015-03-19T00:42:00+05:30] ERROR: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed
X.X.X.X [2015-03-19T00:42:00+05:30] FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1)
我已经阅读了所有关于进行客户端设置的博客,但是没有找到任何解决方案,任何帮助都会在此得到赞赏....
我认为我的厨师工作站可能存在一些问题,但它不是
[root@Staging3 chef-repo]# knife ssl check -s https://staging4.akosha.com
Connecting to host staging4.akosha.com:443
Successfully verified certificates from `staging4.akosha.com'
答案 0 :(得分:12)
您可以查看以下信息:
https://docs.chef.io/chef_client_security.html
使用Chef 12,您需要运行命令:
knife ssl fetch
或者,您可以使用以下设置在knife.rb文件中转换ssl验证:
ssl_verify_mode :verify_none
答案 1 :(得分:12)
您的目标节点不知道您的厨师服务器证书,并且无法验证它。
您必须将chef-server证书添加到客户端。
我认为关于刀子没有将trusted_certs目录推送到引导节点的问题仍然存在。
现在解决方法,使用--node-ssl-verify-mode none
引导程序,以便主厨客户端不会验证ssl(它会将ssl_verify_mode :verify_none
写入节点client.rb
IIRC)
之后,您将能够使用食谱推送厨师服务器证书并使用chef-client
食谱配置ssl参数。
答案 2 :(得分:3)
sudo knife ssl fetch
// adding
ssl_verify_mode :verify_none
到工作站的knife.rb文件为我工作。
使用AWS ubuntu的人,请确保您在knife.rb文件中使用chef-server的公共DNS
答案 3 :(得分:1)
安装chef-client
sudo knife client create chef-client -a -f "/etc/chef/client.pem" -e vi
knife bootstrap 192.168.yy.xxx -x vagrant -P vagrant --sudo
来自chef-server
scp /etc/chef/client.pem chef-server:/etc/chef/
在chef-server上
mkdir -p ~/.chef/trusted_certs
sudo cp /var/opt/opscode/nginx/ca/chef-server.crt ~/.chef/trusted_certs
在客户端上,将证书提取到同一位置
mkdir -p ~/.chef/trusted_certs
knife ssl fetch
如果失败,请从客户端运行
scp chef-server:/home/vagrant/.chef/trusted_certs/chef-server.crt /home/vagrant/.chef/trusted_certs/chef-server.crt
这不是必需的:
export SSL_CERT_FILE=/opt/chef/embedded/ssl/certs/cacert.pem
在客户端上,更新/etc/chef/client.rb。如果厨师客户仍然失败,此步骤将取消证书
ssl_verify_mode :verify_none
/etc/chef/client.rb
log_level :info
log_location STDOUT
chef_server_url "https://chef-server/organizations/admin"
validation_client_name "admin-validator"
ssl_verify_mode :verify_none
厨师 - 客户应该工作