Linux 使用数据包在资源“newrelic_代理_基础结构[install]”上执行操作“install”时出错
我们正在尝试使用第三方食谱安装New Relic infrastructure agent。但我们有一个错误: 在资源“newrelic_代理_基础结构[install]”上执行操作安装时出错 我们的食谱:Linux 使用数据包在资源“newrelic_代理_基础结构[install]”上执行操作“install”时出错,linux,chef-infra,chef-recipe,databags,Linux,Chef Infra,Chef Recipe,Databags,我们正在尝试使用第三方食谱安装New Relic infrastructure agent。但我们有一个错误: 在资源“newrelic_代理_基础结构[install]”上执行操作安装时出错 我们的食谱: # # Cookbook:: third-party-newrelic # Recipe:: infraestructure-agent # # Copyright:: 2018, The Authors, All Rights Reserved. include_recipe 'base
#
# Cookbook:: third-party-newrelic
# Recipe:: infraestructure-agent
#
# Copyright:: 2018, The Authors, All Rights Reserved.
include_recipe 'base::databag'
include_recipe 'newrelic::infrastructure_agent'
# Default Variables
newrelic = decrypt_databag('newrelic')
node.normal['newrelic']['license'] = newrelic['license_key']
日志错误:
Recipe: newrelic::infrastructure_agent
* newrelic_agent_infrastructure[Install] action install
================================================================================
Error executing action `install` on resource 'newrelic_agent_infrastructure[Install]'
================================================================================
RuntimeError
------------
The NewRelic key is required.
Cookbook Trace:
---------------
/var/chef/cache/cookbooks/newrelic/libraries/helpers.rb:15:in `check_license'
/var/chef/cache/cookbooks/newrelic/providers/agent_infrastructure.rb:18:in `block in class_from_file'
Resource Declaration:
---------------------
# In /var/chef/cache/cookbooks/newrelic/recipes/infrastructure_agent.rb
8: newrelic_agent_infrastructure 'Install'
Compiled Resource:
------------------
# Declared in /var/chef/cache/cookbooks/newrelic/recipes/infrastructure_agent.rb:8:in `from_file'
newrelic_agent_infrastructure("Install") do
action [:install]
default_guard_interpreter :default
declared_type :newrelic_agent_infrastructure
cookbook_name "newrelic"
recipe_name "infrastructure_agent"
end
System Info:
------------
chef_version=13.8.5
platform=ubuntu
platform_version=16.04
ruby=ruby 2.4.3p205 (2017-12-14 revision 61247) [x86_64-linux]
program_name=chef-client worker: ppid=101819;start=19:52:27;
executable=/opt/chef/bin/chef-client
Running handlers:
[2018-05-10T19:52:34+00:00] ERROR: Running exception handlers
Running handlers complete
[2018-05-10T19:52:34+00:00] ERROR: Exception handlers complete
Chef Client failed. 0 resources updated in 07 seconds
[2018-05-10T19:52:34+00:00] FATAL: Stacktrace dumped to /var/chef/cache/chef-stacktrace.out
[2018-05-10T19:52:34+00:00] FATAL: Please provide the contents of the stacktrace.out file if you file a bug report
[2018-05-10T19:52:34+00:00] ERROR: newrelic_agent_infrastructure[Install] (newrelic::infrastructure_agent line 8) had an error: RuntimeError: The NewRelic key is required.
[2018-05-10T19:52:34+00:00] FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1)
即使使用以下行而不是数据包:
node.default_,除非['newrelic']['license']=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
我们已经尝试了许多其他方法来实现这个命令,但效果并不理想
提前感谢。是相关代码,因此应该可以使用,但您可以尝试:
node.override['newrelic']['application_monitoring']['license'] = 'asdf'
通过发行:
嗯。我们通过更改以下文件中的此行来解决此问题:
../resources/agent_infrastructure.rb
../resources/agent_php.rb
发件人:
属性:license,:kind\u of=>String,:default=>NewRelic.application\u monitoring\u licensenode
致:
属性:license,:kind\u of=>String,:default=>lazy{NewRelic.application\u monitoring\u licensenode}
食谱里面
node.default['newrelic']['license']=newrelic['license\u key']
使用此结构调用我们的数据包:
id:newrelic
许可证密钥:XXXXXXXXXXXXXXXXXX
感谢您的帮助。您确定要在使用属性之前将其设置在某个位置吗?哦,嘿,是的,菜谱中的bug没有惰性{}包装器,因此在文件编译时会对其进行评估。您必须通过角色、环境或其他静态设置attr。非常感谢@coderanger,我看到您为djoos打开了一个问题来更正包装器。您必须通过角色、环境或其他静态设置attr。我们考虑过,但是我们如何才能让经理在角色中插入数据包呢?提前感谢。很遗憾,您现在无法使用数据包。