Я создал тестовую лабораторию для марионетки, но она не работает. я начинаю puppet agent
на узле и ждет сертификата.
root:~# puppet agent --server xxxx --waitforcert 60 --test
warning: peer certificate won't be verified in this SSL session
warning: peer certificate won't be verified in this SSL session
warning: peer certificate won't be verified in this SSL session
На Сервере теперь находятся ожидающие запросы сертификатов:
root:~# puppet cert --list
root:~#
В журнале masterhttpd:
root:~# tail /var/log/puppet/masterhttp.log
[2012-01-06 09:19:17] xxx - - [06/Jan/2012:09:19:17 CET] "GET /production/certificate/xx HTTP/1.1" 404 30
[2012-01-06 09:19:17] - -> /production/certificate/pgw
[2012-01-06 09:19:47] xxx - - [06/Jan/2012:09:19:47 CET] "GET /production/certificate/xx HTTP/1.1" 404 30
[2012-01-06 09:19:47] - -> /production/certificate/pgw
[2012-01-06 09:19:47] xxx - - [06/Jan/2012:09:19:47 CET] "GET /production/certificate/xx HTTP/1.1" 404 30
[2012-01-06 09:19:47] - -> /production/certificate/pgw
[2012-01-06 09:19:47] xxx - - [06/Jan/2012:09:19:47 CET] "GET /production/certificate/xx HTTP/1.1" 404 30
[2012-01-06 09:19:47] - -> /production/certificate/pgw
Файл сертификата не найден.
Похоже, вы подтвердили, что агент добирается до хозяина. Хороший первый шаг.
Затем, как предлагали другие, убедитесь, что сертификат не был подписан и вы просто не пропустили его:
sudo puppet cert --list --all
Если вы не видите его там, я бы вычистил все и начал заново.
Сначала убедитесь, что дата и время на обоих серверах синхронизированы. Вы можете принудительно синхронизировать NTP с чем-то вроде ntpd -q -g
, в зависимости от вашего дистрибутива и клиента NTP.
Затем запустите clean
на кукловода:
sudo puppet cert clean <agent hostname>
На агенте очистите все ваши файлы SSL:
sudo rm -rf /var/puppet/ssl /var/lib/puppet/ssl/ /var/puppet/ssl
Наконец, запустите тест:
sudo puppet agent --debug --test --server <master hostname>
Надеюсь, если это не решит проблему, это должно дать вам некоторые подсказки относительно того, где искать.
Я столкнулся с очень похожими проблемами, когда только начал работать с Puppet. Параметр --server не соблюдался.
Попробуйте добавить запись в файл HOSTS с именем «марионетка» и IP-адресом вашего главного ящика.
Если это сработает, следующий синтаксис работает хорошо (по крайней мере, для версии 2.7.5)
[main]
logdir = /var/log/puppet
rundir = /var/run/puppet
ssldir = $vardir/ssl
server = puppetmaster.yourdomain.org
pluginsync = true
[agent]
classfile = $vardir/classes.txt
localconfig = $vardir/localconfig
server = puppetmaster.yourdomain.org
listen = true
Я рекомендую вам запустить марионеточного агента как
$ puppet agent --server=xxxx --test --debug
эта команда даст вам более подробную информацию о том, почему она не работает. Кроме того, вам может потребоваться больше времени для его завершения.
Вы также можете попробовать удалить сертификат со сторон, если таковые имеются (на главном и на агенте соответственно)
puppet --cert --clean your_machine_name
rm -rf /etc/puppet/ssl