Я пробегал по всему Интернету и пробовал различные исправления, но ни один из них не помог.
Проблема: при настройке нового агента для подключения к Puppet Master я запускаю:
sudo /opt/puppetlabs/bin/puppet agent --test
Вывод этой команды (с удаленным или измененным определенным текстом):
Info: csr_attributes file loading from /etc/puppetlabs/puppet/csr_attributes.yaml
Info: Creating a new SSL certificate request for puppetmaster.example.com
Info: Certificate Request fingerprint (SHA256): <<intentionally removed>>
Error: Could not request certificate: Error 500 on SERVER: Internal Server Error: java.io.FileNotFoundException: /etc/puppetlabs/puppet/ssl/ca/requests/puppetagent.example.com.pem (Permission denied)
Exiting; failed to retrieve certificate and waitforcert is disabled
Несколько вещей, которые я пробовал / проверял, что не сработали:
- Я могу успешно подключиться к мастеру через telnet через DNS-имя на порт 8140
- Просто чтобы убедиться, что это не агент-сервер, который я пробовал с другим сервером, и у меня там такая же проблема.
- Когда я использую waitforcert, одна и та же ошибка возникает снова и снова.
- Когда я делаю:
sudo /opt/puppetlabs/bin/puppet cert list
Я ничего не получаю в списке.
Я читал статьи о разрешениях на хозяин. Вот ls -lh каталога SSL
root@puppetmaster:/home/ubuntu# ls -lh /etc/puppetlabs/puppet/ssl/
total 28K
drwxr-xr-x 5 root 999 4.0K Jan 2 10:14 ca
drwxr-xr-x 2 root 999 4.0K Jan 2 10:10 certificate_requests
drwxr-xr-x 2 root 999 4.0K Jan 4 08:58 certs
-rw-r--r-- 1 root 999 1.1K Jan 4 08:58 crl.pem
drwxr-x--- 2 root 999 4.0K Jan 2 10:10 private
drwxr-x--- 2 root 999 4.0K Jan 2 10:10 private_keys
drwxr-xr-x 2 root 999 4.0K Jan 2 10:10 public_keys
Очевидно, что не так ... агент не может передать сертификат мастеру, поэтому я не могу подписать сертификат на мастере. Проблема в том, что я совершенно не знаю, на что смотреть дальше. Любой совет будет очень признателен.
Спасибо!
Неправильный владелец (пользователь и группа) для вашего каталога / etc / puppetlabs / puppet / ssl
. Каталог ssl
и его дочерние элементы должны принадлежать пользователю и группе puppet
:
chown -R puppet:puppet /etc/puppetlabs/puppet/ssl
После исправления права владения вам может потребоваться перезапустить puppetserver:
service puppetserver restart
Теперь ваш puppetserver должен иметь возможность выдавать сертификаты агентам Puppet.