Я пытаюсь настроить марионетку в первый раз.
Я обеспечил порт 8140
и 22
открыты с использованием ufw
.
И сервер, и агент работают. Перед запуском агента я отредактировал /etc/puppet/puppet.conf
, добавив:
[agent]
server=174.89.xyz.abc
Я также сделал то же самое для /etc/puppetlabs/puppet/puppet.conf
, Не уверен, что у меня должны быть оба, когда я запускаю puppet --version
, я возвращаюсь 4.10
.
IP-адрес сервера агента установлен на IP-адрес главного сервера.
Я запускаю список сертификатов марионеток
, ожидая увидеть запрос от агента, который я указал на свой ноутбук, но я не вижу никаких запросов.
Я не уверен, что делать дальше. выяснить, почему агент не подключается.
Изменить:
Я запустил puppet agent --test
, который вернул:
Info: Creating a new SSL key for ip-172-00-00-00.us-west-2.compute.internal
Error: Could not request certificate: Failed to open TCP connection to puppet:8140 (getaddrinfo: Name or service not known)
Exiting; failed to retrieve certificate and waitforcert is disabled
Я убедился, что мой ноутбук находится в DMZ и может успешно ping его с сервера агента.
Обновление:
@DylanKnoll указал, что значение по умолчанию для сервера марионеточный, поэтому он может не принимать IP-адреса. Я нашел дополнительную документацию о том, какая марионетка имеет псевдоним здесь . Затем я удалил указанную выше конфигурацию и добавил эту строку в / etc / hosts
:
174.89.000.000 puppet
После этого изменения полученная мной ошибка изменилась. Кажется, они налаживают связь. Я все еще использую IP-адрес, поэтому, возможно, мне понадобится доменное имя, чтобы получить правильное ssl-соединение (?)
Сообщение об ошибке:
Error: Could not request certificate: The CSR retrieved from the master does not match the agent's public key.
CSR fingerprint: BF:43:71:72:86:45:76:E9:34:20:24:71:B6:0C:88:25:3A:67:5E:C4:84:D5:E0:22:C9:1A:9E:FD:98:C1:0D:3C
CSR public key: Public-Key: (4096 bit)
Modulus:
00:b7:bd:de:db:24:50:01:95:ad:10:af:83:6e:c5:
# lines removed
35:e9:17:40:46:09:31:96:d6:68:ca:15:9e:be:41:
85:6c:eb
Exponent: 65537 (0x10001)
Agent public key: Public-Key: (4096 bit)
Modulus:
00:b0:21:80:23:d5:a5:26:37:ea:68:02:99:d5:85:
# lines removed
3d:92:e1
Exponent: 65537 (0x10001)
To fix this, remove the CSR from both the master and the agent and then start a puppet run, which will automatically regenerate a CSR.
On the master:
puppet cert clean ip-172-31-27-12.us-west-2.compute.internal
On the agent:
1a. On most platforms: find /home/ubuntu/.puppetlabs/etc/puppet/ssl -name ip-172-31-27-12.us-west-2.compute.internal.pem -delete
1b. On Windows: del "\home\ubuntu\.puppetlabs\etc\puppet\ssl\certs\ip-172-31-27-12.us-west-2.compute.internal.pem" /f
2. puppet agent -t
Вы запускали puppet agent --test
на агенте для генерации (и отправки) начального запроса сертификата? Это должно поместить агента в список запросов сертификатов вашего мастера.
Если агент просто жалуется на то, что не нашел сертификат, а затем завершает работу, он может подумать, что он уже отправил запрос - просто сбросьте его память, насколько SSL касается резервного копирования и удаления настроенного каталога SSL марионетки (по умолчанию / var / lib / puppet / ssl
или / etc / puppetlabs / puppet / ssl
), затем запускается puppet agent --test
(с - debug
и - verbose
, если вы действительно хотите убедиться) - этот прогон должен вывести, что он генерирует новый запрос сертификата , и его следует отправить настроенному мастеру.
Сообщение об ошибке сообщает вам, что именно делать. Очистите папку SSL узлов:
rm -rf /etc/puppetlabs/puppet/ssl
Примечание: При этом удаляются все марионеточные сертификаты SSL, CSR и т. Д. Так что делайте это только на узле, а не на сервере.
Затем удалите CSR из Puppetmaster:
sudo /opt/puppetlabs/bin/puppet cert clean <hostname>
Затем выполните еще один запуск марионетки на узле:
sudo /opt/puppetlabs/bin/puppet agent -tv
Это создаст новый CSR.
Если вы используете виртуальные машины Azure, а затем подключаетесь к PuTTY, вам необходимо открыть порт 8140 в Azure, поскольку по умолчанию все порты заблокированы. Перейдите к опции сети виртуальной машины и добавьте разрешающие правила для порта 8140 (поскольку марионетка работает на порту 8140). Затем снова попробуйте подключиться из нового к PuTTY, все будет работать.