Назад | Перейти на главную страницу

Как иметь марионеточного хозяина на имени хоста без изменения / etc / hosts на клиенте?

Я создал рекорд для своего кукловода. В случае, если puppetmaster на этом IP-адресе не работает, и мне нужно создать новый с нового IP-адреса, я могу просто изменить IP-адрес, связанный с именем хоста в записи A, на IP-адрес нового поля.

Я хочу, чтобы все мои puppetclients могли подключаться к новому puppetmaster только по его имени хоста в записи A.

$ dig puppetmaster.mywebsite.com

;; ANSWER SECTION:
puppetmaster.mywebsite.com.  300     IN      A       1.2.3.4

У моего клиента есть имя хоста puppetclient-01 и у моего хозяина есть имя хоста puppetmaster

На моем марионеточном клиенте у меня нет записей, разрешающих имя хоста puppetmaster к определенному IP в /etc/hosts потому что, если puppetmaster падает, и мне нужно запустить нового мастера марионеток с нового IP-адреса, я хочу избежать изменения всех /etc/hosts файлы в моих клиентах.

В /etc/puppet/puppet.conf из puppetclient-01 единственное изменение, которое я внес в настройки по умолчанию, - это добавление этого

[agent]
server = puppetmaster.mywebsite.com

На puppetclient-01 Я управляю этим

root@puppetclient-01:~# puppet agent --test
info: Creating a new SSL key for puppetclient-01
info: Caching certificate for ca
info: Creating a new SSL certificate request for puppetclient-01
info: Certificate Request fingerprint (md5): 12:34:56:78:CB:81:62:2E:5F:AB:40:54:D0:A1:37:95
Exiting; no certificate found and waitforcert is disabled

Затем на puppetmaster Я управляю этим

oot@puppetmaster:~# puppetca --sign puppetclient-01
notice: Signed certificate request for puppetclient-01
notice: Removing file Puppet::SSL::CertificateRequest puppetclient-01 at '/var/lib/puppet/ssl/ca/requests/puppetclient-01.pem'

Затем на puppetclient-01 когда я пытаюсь запустить марионетку

root@puppetclient-01:~# puppet agent --test
info: Caching certificate for puppetclient-01
err: Could not retrieve catalog from remote server: Server hostname 'puppetmaster.mywebsite.com' did not match server certificate; expected puppetmaster
warning: Not using cache on failed catalog
err: Could not retrieve catalog; skipping run
err: Could not send report: Server hostname 'puppetmaster.mywebsite.com' did not match server certificate; expected puppetmaster

Почему я получаю ошибку Server hostname 'puppetmaster.mywebsite.com' did not match server certificate; expected puppetmaster?

Есть ли какие-то директивы, которые мне нужно изменить? etc/puppet/puppet.conf на клиенте или мастере, чтобы заставить это работать правильно?

Похоже, вы не использовали полное доменное имя при создании главного сертификата. Следующий http://docs.puppetlabs.com/guides/troubleshooting.html: Если sudo puppet master --configprint certname на мастере производит puppetmaster скорее, чем puppetmaster.mywebsite.com вам необходимо:

Повторно сгенерируйте сертификат мастера марионеток:

Остановите кукловода. Удалите сертификат, закрытый ключ и открытый ключ хозяина марионетки:

$ sudo find $ (puppet master --configprint ssldir) -name "$ (puppet master --configprint certname) .pem" -delete

Измените параметр certname в файле /etc/puppet/puppet.conf мастера марионетки, чтобы он соответствовал фактическому имени хоста мастера марионетки, а параметр dns_alt_names в этом файле, чтобы он соответствовал любым другим именам DNS, на которые, по вашему мнению, мастер должен будет отвечать. Запустите недемонизированный главный экземпляр марионетки WEBrick и дождитесь, пока он сгенерирует и подпишет новый сертификат:

$ sudo puppet master --no-daemonize --verbose

Вы должны остановить временного хозяина марионетки с помощью ctrl-C после того, как увидите сообщение «примечание: запуск главной марионетки версии 2.6.9». Перезапустите кукловод.