Кукольный сертификат чистый не работает

Итак, я стою новый сервер, чтобы заменить существующий. Должно быть легко, правда? Отмените старый сертификат, создайте новый и начинайте. Вот цикл, в котором я застрял:

Я отредактировал имена серверов, отпечаток пальца и домен. Серверы, показанные ниже:

  • Slave1 - машина, которая будет партнером той, которая имеет проблемы. Это только упомянуто ниже, чтобы доказать одну из деталей.
  • Slave2 - машина, которая дает мне проблемы.
  • Master1 - Хозяин кукол (очевидно)

На новой сборке

[root@slave2 ~]# puppet agent -t
Error: Could not request certificate: The certificate retrieved from the master does not match the agent's private key.
Certificate fingerprint: XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:2F:F1
To fix this, remove the certificate from both the master and the agent and then start a puppet run, which will automatically regenerate a certficate.
On the master:
puppet cert clean slave2.example.com
On the agent:
  rm -f /var/lib/puppet/ssl/certs/slave2.example.com.pem
  puppet agent -t

Exiting; failed to retrieve certificate and waitforcert is disabled

Хорошо, это предсказуемо и вполне ожидаемо, потому что это новый сервер, использующий старое имя. Теперь о мастере:

[root@master1 ~]# puppet cert clean slave2.example.com
Notice: Revoked certificate with serial 154

Обратите внимание, что в удалении ключевых файлов нет ничего. Это потому, что их там нет. Доказательство:

[root@master1 ~]# ls /var/lib/puppet/ssl/ca/signed/slave1.example.com.pem
/var/lib/puppet/ssl/ca/signed/slave1.example.com.pem
[root@master1 ~]# ls /var/lib/puppet/ssl/ca/signed/slave2.example.com.pem
ls: cannot access /var/lib/puppet/ssl/ca/signed/slave2.example.com.pem: No such file or directory

Ладно, хорошо. Теперь вернитесь к ведомому устройству, чтобы завершить процедуру, удалив файл.pem и снова запустив агент puppet:

[root@slave2 ~]# rm -f /var/lib/puppet/ssl/certs/slave2.example.com.pem
[root@slave2 ~]# puppet agent -t
Info: Caching certificate for slave2.example.com
Error: Could not request certificate: The certificate retrieved from the master does not match the agent's private key.
Certificate fingerprint: XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:2F:F1
To fix this, remove the certificate from both the master and the agent and then start a puppet run, which will automatically regenerate a certficate.
On the master:
  puppet cert clean slave2.example.com
On the agent:
  rm -f /var/lib/puppet/ssl/certs/slave2.example.com.pem
  puppet agent -t

Exiting; failed to retrieve certificate and waitforcert is disabled

... и мы вернулись туда, где мы начали без изменений в результате.

Последняя проверка работоспособности:

[root@master1 ~]# puppet cert list -a | grep -i slave2

... и нет совпадений.

Что я делаю не так?

Приложение:

Я склонен полагать, что это на мастере, но не уверен, как именно. Вот почему:

[root@master1 ~]# puppet cert clean slave2.example.com
Notice: Revoked certificate with serial 154
[root@master1 ~]# puppet cert clean slave2.example.com
Notice: Revoked certificate with serial 154
[root@master1 ~]# puppet cert clean slave2.example.com
Notice: Revoked certificate with serial 154
[root@master1 ~]# puppet cert clean slave2.example.com
Notice: Revoked certificate with serial 154
[root@master1 ~]# puppet cert clean slave2.example.com
Notice: Revoked certificate with serial 154

Разве это не должно сработать после первого раза, потому что сертификат больше не существует?

2 ответа

Redditor предоставил подробные пошаговые инструкции, которые, похоже, решили проблему. Три ключевые вещи были:

  • Убедитесь, что часы синхронизированы (они были)
  • Убедитесь, что служба кукол остановлена ​​(это не так)
  • Вызвать кукольный агент с явно определенной целью для мастера, например
puppet agent -t --server master1.example.com

Эта комбинация вещей позволила нам преодолеть проблему сертификата.

puppet ca устарела и может не работать, но, пожалуйста, попробуйте:

puppet ca destroy slave2.example.com

Также проверьте /var/lib/puppet/ssl/ca/requests каталог для любых ожидающих запросов сертификатов вручную, хотя puppet cert list -a ничего не показывает Infact, сделать ls -lRa /var/lib/puppet/ssl/ на мастер и искать сертификат slave2, просто чтобы быть уверенным.

Другие вопросы по тегам