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

Агент Puppet (v3.0.1) зависает при подключении к мастеру (v3.1.1) на виртуальной машине за брандмауэром (с доступом на основе NAT)

Я использую марионеточный агент v3.0.1 (на FreeBSD), пытаюсь подключиться к марионеточному мастеру v3.1.1 (на Ubuntu), и марионеточный агент зависает со следующим выводом отладки:

puppet agent --debug --no-daemonize
...
Debug: /File[/var/puppet/ssl/private_keys]: Autorequiring File[/var/puppet/ssl]
Debug: /File[/var/puppet/ssl/private]: Autorequiring File[/var/puppet/ssl]
Debug: /File[/var/puppet/ssl/private_keys/zg-3.XXXX.ch.pem]: Autorequiring         File[/var/puppet/ssl/private_keys]
Debug: /File[/var/puppet/ssl/public_keys/zg-3.XXXX.ch.pem]: Autorequiring File[/var/puppet/ssl/public_keys]
Debug: Finishing transaction 17214983260
[hangs.. about two minutes..]
Error: Could not request certificate: execution expired
Error: Could not request certificate: execution expired

Мастер марионетки размещается на виртуальной машине и доступен через переадресацию портов на хост-машине виртуальной машины. Я протестировал доступ к мастеру с другого узла за брандмауэром, и он работает правильно.

Когда агент запускается, на мастере марионетки нет индикации о том, что соединение установлено (хотя неясно, должно ли оно быть).

  1. Я проверил с помощью netcat и telnet и подтвердил, что могу инициировать соединение от агента к серверу и обмениваться данными.

  2. Один и тот же хозяин марионеток правильно работал с другим агентом FreeBSD, работающим под управлением Puppet v3.0.2.

  3. Запуск tcpdump во время работы агента показывает, что некоторые пакеты передаются между агентом и сервером.

  4. Я бежал ферма в команде марионеточного агента (FreeBSD) и увидел, что агент получает следующую ошибку (дважды):

    read (6,0x80711c3c6,1854) ERR # 35 'Ресурс временно недоступен'

    Дескриптор файла 6 получен из системного вызова «connect» на правильный IP-адрес и номер порта (8140) главной системы.

В настоящее время я подозреваю, что проблема может быть вызвана одной из следующих причин:

  1. Проблема совместимости программного обеспечения агента / главной марионетки

  2. Проблема совместимости библиотеки SSL

  3. Какая-то странная проблема с брандмауэром или NAT, которая разрешает связь netcat / telnet, но не связь Puppet. Связь является создается, поскольку я получаю другую ошибку, когда запускаю агент, но не запускаю мастер

  4. Ошибка синхронизации или состояние гонки

Я не думаю, что проблема вызвана:

  1. Проблема с сертификатом SSL, так как нет ошибок, связанных с сертификатом. Я также попытался удалить содержимое ssl каталог как в агентской, так и в главной системе

  2. Проблема синхронизации времени, поскольку обе системы работают по протоколу NTP.

Любые подсказки о том, как это отладить?

Заранее спасибо,

Алан Ходжкинсон

P.S. Запросите любую дополнительную (конфигурационную) информацию, необходимую для диагностики проблемы.