Chef infra 使用自定义属性安装多个程序包时出现错误
我正在尝试使用自定义属性安装多个具有Chef's“package”资源的软件包。 当我尝试时:Chef infra 使用自定义属性安装多个程序包时出现错误,chef-infra,chef-recipe,chef-attributes,Chef Infra,Chef Recipe,Chef Attributes,我正在尝试使用自定义属性安装多个具有Chef's“package”资源的软件包。 当我尝试时: package %w(python3 python3-pip) do action :install end 上面的代码对我来说很好,但在尝试使用自定义属性时,相同的代码给出了错误 请看一看- 我的配方代码: package %w(node['python']['pkg_name'] node['python-pip']['pkg_name']) do action :install end
package %w(python3 python3-pip) do
action :install
end
上面的代码对我来说很好,但在尝试使用自定义属性时,相同的代码给出了错误
请看一看-
我的配方代码:
package %w(node['python']['pkg_name'] node['python-pip']['pkg_name']) do
action :install
end
属性代码:
default['python']['pkg_name'] = 'python3'
default['python-pip']['pkg_name'] = 'python3-pip'
错误日志:
Compiling Cookbooks...
Converging 3 resources
Recipe: odoo_setup::odoo_linux
* apt_update[update_ubuntu_pkg_lib] action update
* directory[/var/lib/apt/periodic] action create (up to date)
* directory[/etc/apt/apt.conf.d] action create (up to date)
* file[/etc/apt/apt.conf.d/15update-stamp] action create_if_missing (up to date)
* execute[apt-get -q update] action run
- execute ["apt-get", "-q", "update"]
- force update new lists of packages
* apt_package[node['python']['pkg_name'], node['python-pip']['pkg_name']] action install
* No candidate version available for node['python']['pkg_name'], node['python-pip']['pkg_name']
================================================================================
Error executing action `install` on resource 'apt_package[node['python']['pkg_name'], node['python-pip']['pkg_name']]'
================================================================================
Chef::Exceptions::Package
-------------------------
No candidate version available for node['python']['pkg_name'], node['python-pip']['pkg_name']
Resource Declaration:
---------------------
# In /tmp/kitchen/cache/cookbooks/odoo_setup/recipes/odoo_linux.rb
32: package %w(node['python']['pkg_name'] node['python-pip']['pkg_name']) do
33: # package node['python']['pkg_name'] do
34: action :install
35: end
36:
%w
是Ruby中的百分比文字,它从括号中的单独单词创建数组。你的第一个例子有效,因为
%w(python3-python3-pip)=['python3','python3-pip']
但此%w
不支持字符串插值。你的第二个例子实际上是:
%w(节点['python']['pkg_name']node['python-pip']['pkg_name'])==['node['python']['pkg_name']],'node['python-pip']['pkg_name']]
看看你的值实际上是字符串,而不是变量。如果需要使用变量,请使用普通数组初始化,而不是%w
文本
package[node['python']['pkg_name'],node['python-pip']['pkg_name']]
%w
是Ruby中的百分比文字,它从括号中的单独单词创建数组。你的第一个例子有效,因为
%w(python3-python3-pip)=['python3','python3-pip']
但此%w
不支持字符串插值。你的第二个例子实际上是:
%w(节点['python']['pkg_name']node['python-pip']['pkg_name'])==['node['python']['pkg_name']],'node['python-pip']['pkg_name']]
看看你的值实际上是字符串,而不是变量。如果需要使用变量,请使用普通数组初始化,而不是%w
文本
package[node['python']['pkg_name'],node['python-pip']['pkg_name']]
我们需要将实际代码和实际错误视为可以复制/粘贴的文本,而不是图像。对不起,我不知道如何在Stackoverflow上发布问题!我使用Git提出问题。我已编辑了我的问题,并添加了有关问题的更多详细信息。我们需要将实际代码和实际错误视为可以复制/粘贴的文本,而不是图像。抱歉,我不知道如何在Stackoverflow上发布问题!我使用Git来提出问题。我已经编辑了我的问题,并添加了关于我问题的更多细节。