Ответ 1
D'ах! Нужно sudo
сделать это! Затем все работает.
Я новичок в марионетке, но быстро подбираю ее. Сегодня я столкнулся с проблемой при попытке запустить следующее:
$ 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 и редактируют марионетку. conf, что я сделал.
Так что мне не хватает? Любая помощь очень ценится!
D'ах! Нужно sudo
сделать это! Затем все работает.
Мне пришлось использовать флаг --server
:
sudo puppet agent --noop --server=puppet.example.org
На самом деле у меня была такая же ошибка, но я использовал две обучающие марионетки vm и пытался запустить команду "puppet agent -test".
Я решил проблему, открыв файл /etc/hosts как для ведущего, так и для агента vm и для строки
***.***.***.*** learn.localdomain learn puppet.localdomain puppet
IP-адрес (звездочки) был первоначально случайным числом. Мне пришлось изменить это число на обоих vm, так что это был IP-адрес мастера node.
Поэтому я думаю, что для опытных пользователей мой совет - проверить файл /etc/hosts, чтобы убедиться, что IP-адреса здесь для хозяина и агента не только совпадают, но и совпадают с IP-адресом мастера.
для других нубов, подобных мне, мой совет - более четко прочитать документацию. Это был шаг в процессе создания агента vm, который я полностью пропустил xD
В моем случае я получал такую же ошибку, но это было связано с сертификатом, который должен был быть подписан на node на сервере puppetmaster.
для проверки ожидающих запуска сертификатов:
"node.domain.com" (SHA256) 8D: E5: 8A: 2 ******* "
Подпишите сертификат к node:
Если бы такая же проблема была сегодня на puppet 2.6
на CentOS 6.4
Все, что я сделал для решения проблемы, - проверить обычные вещи, такие как хосты и resolv.conf, чтобы они были как ожидалось (по сравнению с рабочим сервером), а затем;
rm -rf /var/lib/puppet
puppetca --clean
servername
service network restart
Несмотря на то, что resolv.conf был идентичен рабочему серверу, марионетка обновила resolv.conf и сразу же повторно подписала сертификат и заменила все кукольные файлы lib.
После этого все было хорошо.