Как я могу перенести наших существующих клиентов puppet, чтобы они указывали на новый сервер puppetmaster? Я бы предпочел не переходить вручную на каждый клиентский ящик и генерировать новый сертификат.
При попытке очевидного - rsync всех файлов из / etc / puppet и / var / lib / puppet на новый сервер - мы получили ошибку сертификата
/etc/init.d/puppetmaster start
* Starting puppet master
Could not run: Retrieved certificate does not match private key; please remove certificate from server and regenerate it with the current key
Я был в состоянии работать вокруг этого пути копирования /var/lib/ssl/certs
и /var/lib/ssl/private_key
файлов из old_hostname
к new_hostname
, который является в основном то , что предлагается в
переносе кукольных клиентов на новый кукловода (старый кукольный мастер - сервер нет, только с помощью резервной копии)
К сожалению, мои клиенты все еще знают, что что-то не так, и выдают мне следующую ошибку:
sudo puppetd --test --server newservername.example.net --noop
info: Retrieving plugin
err: /File[/var/lib/puppet/lib]: Failed to generate additional resources using 'eval_generate': hostname was not match with the server certificate
err: /File[/var/lib/puppet/lib]: Could not evaluate: hostname was not match with the server certificate Could not retrieve file metadata for puppet://newservername.example.net/plugins: hostname was not match with the server certificate
err: Could not retrieve catalog from remote server: hostname was not match with the server certificate
warning: Not using cache on failed catalog
err: Could not retrieve catalog; skipping run
Поэтому я предполагаю, что клиентские сертификаты все еще знают имя хоста, с которым они связаны, и не рады переключению.
Есть ли способ использовать puppet (указывающий на прежнего puppetmaster) для развертывания новых сертификатов или каким-то образом автоматизировать процесс подписания?
РЕЗЮМЕ: Были представлены два решения: 1) включить autosign
мастер, таким образом полностью пропустив сертификацию, или 2) установить старое CNAME так, чтобы оно указывало на новый мастер, поскольку сертификаты привязаны к имени хоста мастера. Я выбрал # 2, потому что autosign чувствовал, что это просто отключение безопасности (хотя и в течение ограниченного времени).
источник
puppetca --sign --all
подойдет для клиентских сертификатов; серверный - тот, который дает вам проблемы с ошибками несоответствия.Вы можете просто использовать
$ssldir
старого мастера кукол и использовать его в новом мастере кукол.Помимо этого должна быть возможность развернуть скрипт, который будет:
Ужасно, но пока модуль do миграции находится только на старом сервере, а убедиться, что модуля миграции нет, находится только на новом сервере, это одноразовая вещь, и она должна просто творить чудеса ...
источник
autosign
Трюк хороший, но кажется рискованным. Без этого это решение фактически решает проблему несоответствия сертификата клиента?