ruby-on-rails - “ TypeError: no implicit conversion of nil into String ” 在刀引导期间
问题描述
当我使用刀引导命令将节点连接到厨师服务器时,我遇到了这个问题。
在...处使用验证密钥进行旧式注册删除您的验证密钥以改用您的用户凭据
连接到 xx.xx.xxx.xxx(某个 IP 地址)错误:TypeError:没有将 nil 隐式转换为字符串
当我在谷歌搜索时,我得到了一些关于“使用验证密钥在 ... 进行旧式注册”的答案,但我在该行上方的“...”中看到了一些位置。
我不知道我做错了什么。
厨师信息:
我将 GCP 用于工作站、节点和我使用的服务器"manage.chef.io"
(厨师服务器)
注意:请参阅下面的评论
当我执行此命令时:
knife bootstrap 35.XX.xx.x --ssh-user USER-NAME --sudo --identity-file SSH-FILE-LOCATION -N node1 -VV
我得到这个:
INFO: Using configuration from /home/sandeep.nayak/chef-repo/.chef/knife.rb
Doing old-style registration with the validation key at ...
Delete your validation key in order to use your user credentials instead
Connecting to 35.200.203.207
Traceback (most recent call last):
16: from /usr/bin/knife:75:in `<main>'
15: from /usr/bin/knife:75:in `load'
14: from /opt/chef/embedded/lib/ruby/gems/2.5.0/gems/chef-14.3.37/bin/knife:24:in `<top (required)>'
13: from /opt/chef/embedded/lib/ruby/gems/2.5.0/gems/chef-14.3.37/lib/chef/application/knife.rb:161:in `run'
12: from /opt/chef/embedded/lib/ruby/gems/2.5.0/gems/chef-14.3.37/lib/chef/knife.rb:220:in `run'
11: from /opt/chef/embedded/lib/ruby/gems/2.5.0/gems/chef-14.3.37/lib/chef/knife.rb:441:in `run_with_pretty_exceptions'
10: from /opt/chef/embedded/lib/ruby/gems/2.5.0/gems/chef-14.3.37/lib/chef/local_mode.rb:44:in `with_server_connectivity'
9: from /opt/chef/embedded/lib/ruby/gems/2.5.0/gems/chef-14.3.37/lib/chef/knife.rb:442:in `block in run_with_pretty_exceptions'
8: from /opt/chef/embedded/lib/ruby/gems/2.5.0/gems/chef-14.3.37/lib/chef/knife/bootstrap.rb:391:in `run'
7: from /opt/chef/embedded/lib/ruby/gems/2.5.0/gems/chef-14.3.37/lib/chef/knife/bootstrap.rb:426:in `knife_ssh'
6: from /opt/chef/embedded/lib/ruby/gems/2.5.0/gems/chef-14.3.37/lib/chef/knife/bootstrap.rb:448:in `ssh_command'
5: from /opt/chef/embedded/lib/ruby/gems/2.5.0/gems/chef-14.3.37/lib/chef/knife/bootstrap.rb:354:in `render_template'
4: from /opt/chef/embedded/lib/ruby/gems/2.5.0/gems/erubis-2.7.0/lib/erubis/evaluator.rb:74:in `evaluate'
3: from /opt/chef/embedded/lib/ruby/gems/2.5.0/gems/erubis-2.7.0/lib/erubis/evaluator.rb:74:in `instance_eval'
2: from (erubis):196:in `block in evaluate'
1: from /opt/chef/embedded/lib/ruby/gems/2.5.0/gems/chef-14.3.37/lib/chef/knife/core/bootstrap_context.rb:49:in `validation_key'
/opt/chef/embedded/lib/ruby/gems/2.5.0/gems/chef-14.3.37/lib/chef/knife/core/bootstrap_context.rb:49:in `expand_path': no implicit conversion of nil into String (TypeError)
我的刀.rb 文件:
# See http://docs.chef.io/config_rb_knife.html for more information on knife configuration options
current_dir = File.dirname(__FILE__)
log_level :info
log_location STDOUT
node_name "techrealm"
client_key "#{current_dir}/techrealm.pem"
chef_server_url "https://api.chef.io/organizations/techrealm"
cookbook_path ["#{current_dir}/../cookbooks"]
当我尝试解决这个问题时,我注意到的很少:
最初,我无法在工作站的 /etc/chef 中看到名为“validation.pem”的文件(我不知道validation.pem 文件在哪里(工作站或节点))。所以我尝试了
刀配置客户端 /etc/chef 它创建了两个文件1.client.pem 2.validation.pem但 validation.pem文件是空的。
我看到一些红宝石线
默认(:validation_key){ chef_zero.enabled ?零:平台特定路径(“/etc/chef/techrealm.pem”)}
在此位置“ opt/chef/embedded/lib/ruby/gems/2.5.0/gems/chef-config-14.3.37/lib/chef-config/config.rb”
希望对你有帮助
解决方案
推荐阅读
- vue.js - 删除图像时,最后一个删除的图像会保留(不重新渲染)
- javascript - 在 React Navigation 5.0 中导航嵌套导航器
- google-apps-script - 使用谷歌脚本计算迟到
- arrays - 更有效的方法来分割重叠的间隔,然后合并重复
- php - 将 ACF 管理列添加到自定义帖子类型
- php - 如何在遗留系统中测试 json-api 的排序
- oracle11g - PHP 5.2.0-8 上的 oci_connect 不适用于 Oracle 11g
- wagtail - 无法让联合查询在 Wagtail 中的不同模型中工作
- sql-server - 如何修复 SSIS 中缺少的 SQL 连接管理器
- r - 通过数据帧循环函数,区分,然后在原始数据帧中按列组合