Первый раз пытаюсь настроить марионетку.
Я обеспечил порт 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 cert list
ожидаю увидеть запрос от агента, который я указал на свой ноутбук, но я не вижу запросов.
Я не знаю, что делать дальше, чтобы выяснить, почему агент не подключается.
Редактировать:
Я побежал 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
Я убедился, что мой ноутбук находится в демилитаризованной зоне и может успешно пропинговать его с сервера агента.
Обновить:
@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 из марионеточного мастера:
sudo /opt/puppetlabs/bin/puppet cert clean <hostname>
После этого выполните еще один запуск марионетки на узле:
sudo /opt/puppetlabs/bin/puppet agent -tv
Это создаст новый CSR.
Если вы используете виртуальные машины Azure, а затем подключаетесь к PuTTY, вам необходимо открыть порт 8140 в Azure, поскольку все порты по умолчанию заблокированы. Перейдите к параметру сети виртуальной машины и добавьте разрешающие правила для порта 8140 (поскольку марионетка работает на порту 8140). Затем снова попробуйте подключиться с нового к PuTTY, это сработает.