Установка Openstack в виде куклы: не удалось найти ресурс "Package[dnsmasq-base]Package[dnsmasq-utils]" для связи с "Package[neutron-dhcp-agent]'

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 позволило продолжить установку (но она зависла от отдельной проблемы, поэтому я не могу сказать вам, сработало бы, если бы она была завершена). Я также попробовал с v3.2 и 3.3 нейтрона, а остальные модули имеют версии, требуемые от openstack. Наконец, если я отключу нейтрон в openstack all.pp, я смогу получить работающую установку работающего Openstack (минус сеть).

Надеюсь, у кого-то есть подсказка или два для меня, спасибо за чтение.

редактировать

Хотел добавить, что с тех пор я вручную установил пакет neutron-dhcp-agent в надежде исправить эту проблему, но безуспешно.

Редактировать 2

   $dnsmasq_packages   = ['dnsmasq-base', 'dnsmasq-utils']

Строка 105 в /etc/puppet/modules/neutron/manifests/params.pp

Если я закомментирую пакеты (замените на []), то он продолжит дальше точки, в которой он ошибается.

Редактировать 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, и проблема исчезла. Итак, два возможных решения, если вы когда-нибудь столкнетесь с этим:)

Другие вопросы по тегам