ebug: Executing '/etc/puppet/etckeeper-commit-pre'
debug: catalog supports formats: b64_zlib_yaml dot pson raw yaml; using pson
err: Could not retrieve catalog from remote server: Error 400 on SERVER: Could not find resource 'Package[dnsmasq-base]Package[dnsmasq-utils]' for relationship on 'Package[neutron-dhcp-agent]' on node controller6.ec2.internal
warning: Not using cache on failed catalog
err: Could not retrieve catalog; skipping run
我肯定忽略了一些显而易见的东西,我的 Ubuntu 12.04 LTS 服务器上安装了软件包 dnsmasq、dnsmasq-base 和 dnsmasq-utils,但 puppet 无法找到它们。我正在运行 sudo puppet,所以我不认为这是一个权限问题。禁用 params.pp 中的要求可让安装继续进行(但它因另一个问题而挂起,所以我无法告诉您安装完成后是否会成功)。我也尝试过 neutron v3.2 和 3.3,其余模块都具有 openstack 所需的版本。最后,如果我在 openstack all.pp 中禁用 neutron,我可以获得 Openstack 正常运行的安装(减去网络)。
希望这里有人能给我一两个提示,谢谢你的阅读。
编辑
想补充一点,我已经手动安装了 neutron-dhcp-agent 包,希望能够解决这个问题,但没有成功。
编辑2
$dnsmasq_packages = ['dnsmasq-base', 'dnsmasq-utils']
/etc/puppet/modules/neutron/manifests/params.pp 中的第 105 行
如果我注释掉这些包(用 [] 替换)那么它将继续运行直到出错为止。
编辑3
我认为问题出在这里,/etc/puppet/modules/neutron/manifests/agents/dhcp.pp 关于如何修复此问题,您有什么建议吗?我将进行两次检查,而不是一次,然后看看结果如何。
include neutron::params
Neutron_config<||> ~> Service['neutron-dhcp-service']
Neutron_dhcp_agent_config<||> ~> Service['neutron-dhcp-service']
case $dhcp_driver {
/\.Dnsmasq/: {
Package[$::neutron::params::dnsmasq_packages] -> Package<| title == 'neutron-dhcp-agent' |>
ensure_packages($::neutron::params::dnsmasq_packages)
}
default: {
fail("Unsupported dhcp_driver ${dhcp_driver}")
}
}
答案1
为了解决这个问题,我按照评论中的建议进行了拆分
$dnsmasq_packages = ['dnsmasq-base', 'dnsmasq-utils']
分成两行,你可以看到变化这里。
为了将所有内容集中在一个地方,以下是更改内容:
清单/代理/dhcp.pp
从 85 行开始
case $dhcp_driver {
/\.Dnsmasq/: {
- Package[$::neutron::params::dnsmasq_packages] -> Package<| title == 'neutron-dhcp-agent' |>
- ensure_packages($::neutron::params::dnsmasq_packages)
+ Package[$::neutron::params::dnsmasq-base_package] -> Package<| title == 'neutron-dhcp-agent' |>
+ Package[$::neutron::params::dnsmasq-utils_package] -> Package<| title == 'neutron-dhcp-agent' |>
+ ensure_packages($::neutron::params::dnsmasq-base_package)
+ ensure_packages($::neutron::params::dnsmasq-utils_package)
}
default: {
fail("Unsupported dhcp_driver ${dhcp_driver}")
清单/params.pp
从第 93 行开始
$metadata_agent_package = 'neutron-metadata-agent'
$metadata_agent_service = 'neutron-metadata-agent'
- $dnsmasq_packages = ['dnsmasq-base', 'dnsmasq-utils']
+ $dnsmasq-base_package = ['dnsmasq-base']
+ $dnsmasq-utils_package = ['dnsmasq-utils']
$isc_dhcp_packages = ['isc-dhcp-server']
编辑
虽然上述方法解决了我在运行 Puppet 2.7.11 时遇到的问题,但我最近升级到 3.5.1 版本后问题就消失了。所以如果你遇到这种情况,有两种可能的解决方案 :)