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, я могу получить рабочую установку функционирования Openstack (без сети).
Надеюсь, у кого-то здесь есть пара подсказок для меня, спасибо за чтение.
редактировать
Хотел добавить, что с тех пор я вручную установил пакет нейтрон-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}")
}
}
Чтобы решить проблему, я последовал предложениям в комментариях и разделил
$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, и проблема исчезла. Итак, два возможных решения, если вы когда-нибудь столкнетесь с этим :)