Я пытаюсь запустить мастер марионеток на виртуальной машине и подключиться с клиентской машины через перенаправление портов на хосте виртуальной машины.
Детали
У меня есть виртуальная машина под управлением Ubunto с Puppet 3.1.1 (называется MGT). Хост виртуальной машины (называемый локи) запускает rinetd, который перенаправляет входящие соединения через порт 8140 на виртуальную машину.
У меня есть клиентская машина (называется Тор) с Puppet 3.0.2.
Тестирование с помощью netcat и telnet подтверждает, что переадресация портов работает и что я могу подключиться со своей клиентской машины (Тор) на виртуальную машину-хозяин марионеток (MGT).
Когда я запускаю кукловода (на MGT) с помощью следующей команды он запускается правильно:
puppet master --no-daemonize --debug
Когда я запускаю агент (на Тор) с помощью следующей команды:
puppet agent --server loki --test --no-daemonize
Я получаю следующую ошибку:
Warning: Unable to fetch my node definition, but the agent run will continue:
Warning: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed: [self signed certificate in certificate chain for /CN=Puppet CA: localhost]
Info: Retrieving plugin
Error: /File[/var/puppet/lib]: Failed to generate additional resources using 'eval_generate: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed: [self signed certificate in certificate chain for /CN=Puppet CA: localhost]
Error: /File[/var/puppet/lib]: Could not evaluate: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed: [self signed certificate in certificate chain for /CN=Puppet CA: localhost] Could not retrieve file metadata for puppet://loki/plugins: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed: [self signed certificate in certificate chain for /CN=Puppet CA: localhost]
Error: Could not retrieve catalog from remote server: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed: [self signed certificate in certificate chain for /CN=Puppet CA: localhost]
Warning: Not using cache on failed catalog
Error: Could not retrieve catalog; skipping run
Error: Could not send report: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed: [self signed certificate in certificate chain for /CN=Puppet CA: localhost]
Но я не получаю дополнительных выходных данных на мастере марионетки, указывающих, что соединение было предпринято или отказано.
Насколько я понимаю, хозяин марионеток должен отказаться от подключения до тех пор, пока сертификат клиента не будет подписан. Используя команду список марионеток не содержит неподписанных сертификатов.
Есть предложения о том, как действовать?
Приношу свои извинения, я неверно истолковал вашу исходную ошибку, кажется, что мастер / агент запутались, см. эта ссылка для подробностей.
В частности:
Сертификат сервера, который имеет марионетка, и тот, который использует марионетка, различаются. На чисто марионеточном узле один простой способ - просто удалить текущую информацию SSL и начать заново:
найти / var / lib / puppet -type f -print0 | xargs -0r rm
Также убедитесь, что клиент и сервер согласны с текущим временем (в противном случае созданный сертификат может быть недействителен на другом компьютере).
Следующая ссылка дает очень хорошее объяснение того, как работают сертификаты Puppet: