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

Не удается подключить марионеточный агент к мастеру

Первый раз пытаюсь настроить марионетку.

Я обеспечил порт 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, это сработает.