Агент Puppet не может найти сервер

Я новичок в кукольном деле, но быстро схватываю. Сегодня я столкнулся с проблемой при попытке запустить следующее:

$ puppet agent --no-daemonize --verbose --onetime

**err: Could not request certificate: getaddrinfo: Name or service not known
Exiting; failed to retrieve certificate and waitforcert is disabled**

Создается впечатление, что агент не знает, к какому серверу подключаться. Я мог бы просто указать --server в командной строке, но это будет бесполезно для меня, когда это работает как демон в производственной среде, поэтому вместо этого я указываю имя сервера в /etc/puppet/puppet.conf следующим образом:

[main]
    server = puppet.<my domain>

У меня есть запись DNS для puppet.<my domain>, и если я dig puppet.<my domain>, я вижу, что имя разрешается правильно.

Во всей документации по марионеткам, которую я прочитал, говорится, что агент пытается подключиться к мастеру марионеток в puppet по умолчанию, и ваши варианты — это обман с файлом хоста или поступать правильно, создать CNAME в DNS и соответствующим образом отредактировать puppet.conf, что я сделано.

Итак, что мне не хватает? Любая помощь приветствуется!


person Kent Rancourt    schedule 23.05.2012    source источник
comment
Играя с этим дальше, я начинаю задаваться вопросом, читается ли вообще puppet.conf при выполнении в этом поместье. Я поместил мусор в puppet.conf и даже попытался удалить его, и, похоже, это не влияет на результаты, когда агент запускается из командной строки. Однако он предотвращает чистый запуск и завершение работы при запуске в качестве службы. Может ли это быть так просто?   -  person Kent Rancourt    schedule 24.05.2012


Ответы (5)


О! Нужно sudo сделать это! Тогда все работает.

person Kent Rancourt    schedule 24.05.2012
comment
Ах, когда вы не используете sudo, Puppet будет читать только ~/.puppet/puppet.conf, а не /etc/puppet/puppet.conf. Puppet может работать без привилегий root, но, очевидно, не может устанавливать системные пакеты или управлять службами и т. д. - person Dominic Cleal; 24.05.2012
comment
Выловил и меня. Спасибо :) - person Igor Zevaka; 09.01.2013
comment
Небольшое примечание. Когда Puppet устанавливается под специальным пользователем, например puppet в CentOS, вам нужно запустить его под этим пользователем и предоставить параметр --server следующим образом: sudo -u puppet puppet agent --server=puppet.my-domain.com - person Anton Babenko; 03.06.2013
comment
потратил минут 30 и тут нашел золото! :П - person TeaCupApp; 08.08.2013
comment
у меня был этот вопрос, ответ, и первый комментарий, за который проголосовали, но я все равно вернулся сюда... - person castis; 16.06.2015

Мне пришлось использовать флаг --server:

sudo puppet agent --server=puppet.example.org
person bmaupin    schedule 15.10.2013
comment
я запускал без noop, но с опцией --server puppet agent -t --server=puppet-server - person tkjef; 19.04.2018

На самом деле у меня была такая же ошибка, но я использовал два обучения puppet vm и пытался запустить команду «puppet agent --test».

Я решил проблему, открыв файл /etc/hosts как на мастере, так и на агенте vm и строку

***.***.***.*** learn.localdomain learn puppet.localdomain puppet

IP-адрес (звездочки) изначально был каким-то случайным числом. Мне пришлось изменить этот номер на обеих виртуальных машинах, чтобы он был ip-адресом главного узла.

Поэтому я думаю, что опытным пользователям я советую проверить файл /etc/hosts, чтобы убедиться, что IP-адреса мастера и агента здесь не только совпадают, но и совпадают с IP-адресом мастера.

для других нубов, таких как я, мой совет — более внимательно читать документацию. Это был шаг в процессе «настройки агента vm», который я полностью пропустил xD

person scottysseus    schedule 02.07.2013

В моем случае я получал ту же ошибку, но это было связано с сертификатом, который должен быть подписан на узел на сервере puppetmaster.

чтобы проверить ожидающие сертификаты, выполните следующие действия:

кукольный список сертификатов

узел.домен.com (SHA256) 8D:E5:8A:2*******

подпишите сертификат на узел:

знак кукольного сертификата node.domain.com

person Vadim Sluzky    schedule 09.05.2016

Была такая же проблема сегодня puppet 2.6 на CentOS 6.4 Все, что я сделал для решения проблемы, это проверил обычные вещи, такие как hosts и resolv.conf, чтобы убедиться, что они соответствуют ожиданиям (по сравнению с работающим сервером), а затем;

  1. Удален каталог /var/lib/puppet rm -rf /var/lib/puppet
  2. Очистил сертификат мастера марионеток puppetca --clean servername
  3. Перезапустил сеть service network restart
  4. Кукла повторного запуска

Несмотря на то, что resolv.conf был идентичен рабочему серверу, puppet обновил resolv.conf и немедленно переподписал сертификат и заменил все файлы puppet lib.

После этого все было хорошо.

person Chris Gillatt    schedule 22.08.2016