Openstack 的 Puppet 安装:无法找到与‘Package[neutron-dhcp-agent]’有关系的资源‘Package[dnsmasq-base]Package[dnsmasq-utils]’

Openstack 的 Puppet 安装:无法找到与‘Package[neutron-dhcp-agent]’有关系的资源‘Package[dnsmasq-base]Package[dnsmasq-utils]’
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 版本后问题就消失了。所以如果你遇到这种情况,有两种可能的解决方案 :)

相关内容