首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NoMethodError

NoMethodError
EN

Stack Overflow用户
提问于 2020-07-25 08:10:33
回答 2查看 1.3K关注 0票数 1
代码语言:javascript
复制
cache_path = Chef::Config[:file_cache_path]

puts "=========================="
test1 = ::File.join("#{cache_path}\\#{node['ms_redistributable_2017_64']['windows_pkg']}")
puts test1

reboot 'restart_server' do
  action :nothing
  reason 'Reboot is necessary!'
end

remote_file ::File.join("#{cache_path}\\#{rd_exe}") do
  source ::File.join("#{node['test-citrix-agents']['windows_source']}/#{node['ms_redistributable_2017_64']['windows_pkg']}")
  headers ({"username"=>"artifactory_username", "password"=>"artifactory_api_key"})
  checksum "#{node['ms_redistributable_2017_64']['checksum']}"
  action :create_if_missing
  not_if { ::File.exists?(::File.join("#{cache_path}\\#{node['ms_redistributable_2017_64']['windows_pkg']}") }
end

已经编了几天了!不知道这有什么问题。请救救我

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-07-28 09:23:46

问题最终解决了

necessary

  • headers(

  • 使用块来标识nil类--在这种情况下,有依赖关系从不同的菜谱中接收秘密,并且看起来它正在生成一个空类,直到只添加那些名为“授权”、“=>”、“Basic #{ Base64.encode64("#{username}:#{password}").gsub("\n",”)的菜谱头(Header)来解决->的硬编码userID和用于测试
  • 的密码--厨房yml文件是主要的因素,命名空间的设置产生了很大差异。对于一行项中的一项,尽管进行了上述所有更正,

仍会造成额外的空间错误。

票数 0
EN

Stack Overflow用户

发布于 2020-07-26 07:00:47

不确定使用node.default为变量赋值将有效。当我们想要在菜谱中为节点变量设置一个值时,通常会用到这一点。

示例:

代码语言:javascript
复制
node.default['my_cookbook']['var'] = 'somevalue'

然而,当您希望将节点变量的值赋值给另一个变量时:

代码语言:javascript
复制
dload_checksum = node['ms_redistributable_2017_64']['checksum']
rd_path = "C:\\agents\\#{node['ms_redistributable_2017_64']['windows_pkg']}"
dload_source = "#{node['test-citrix-agents']['windows_source']}/#{node['ms_redistributable_2017_64']['windows_pkg']}"

此外,在您的remote_file资源中,您可以使用上面定义的变量:

代码语言:javascript
复制
    checksum dload_checksum
    not_if { ::File.exists?(rd_path) }

更新

除了堆栈跟踪之外,您能用运行期间显示的Cookbook TraceRelevant File Content:更新问题吗?

类似于:

代码语言:javascript
复制
Cookbook Trace: (most recent call first)
----------------------------------------
  C:/Chef/cache/cookbooks/cookbook1/recipes/default.rb:28:in `from_file'

Relevant File Content:
----------------------
C:/Chef/cache/cookbooks/cookbook1/recipes/default.rb:

 26:  end
 27:
 28>> node['cookbook1']['var'].each do |var|
 29:    file "c:/Users/Public/#{var}" do
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63085963

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档