Что такое хорошая проверка подсистемы балансировки нагрузки на марионеточное ведущее устройство

Мы выполняем несколько Марионеточных Основных версий 3.7 (Не PE) на экземплярах AWS EC2 позади Эластичной Подсистемы балансировки нагрузки (главным образом для высокой доступности).

В настоящее время проверка подсистемы балансировки нагрузки является просто подключением TCP на порте 8140. Но это не обнаружило, что один из экземпляров был подвешен (он все еще принимал начальное соединение TCP, но не делал что-либо с ним).

Я ищу способ на самом деле отправить, значимый запрос "нет" марионеточному ведущему устройству и иметь его передают результат обратно.

Более конкретные требования:

  1. Это не должно инициировать тяжелую обработку (проверки происходят каждые несколько секунд),
  2. Это должно успешно выполниться, если марионеточное ведущее устройство может на самом деле обработать "реальный запрос" и сбой иначе.
  3. Должно быть возможно выполниться от ELB (т.е. в основном это должно возвратиться "200 хорошо" на успешных запросах HTTPS на статическом пути.

Существует ли хороший статический путь, который я могу дать проверке состояния для использования? До сих пор я не нашел никого.

4
задан 23 May 2015 в 20:02
1 ответ

Что вы можете использовать в качестве проверки правильности работы мастера марионетки, так это настроить какой-то запрос API, например:

curl -k -H "Accept: pson" https://puppetmaster:8140/production/status/no_key

Вне курса, доступ к API не будет доступен по умолчанию , что означает, что вам придется использовать сертификаты SSL подписанного клиента, чтобы иметь доступ к REST API. Кроме того, у всех сертификатов не будет всех необходимых разрешений.

Это пример выполнения полной компиляции манифеста:

curl -k -H 'Accept: pson' \
--cert /var/lib/puppet/ssl/certs/node.example.com.pem \
--key /var/lib/puppet/ssl/private_keys/node.example.com.pem \
--cacert /var/lib/puppet/ssl/ca/ca_crt.pem \
https://puppetmaster:8140/production/status/no_key

Не знаю, можно ли интегрировать сертификаты в проверки ELB, но если это не так, возможно, вы можете поиграть с элементами управления доступом REST API и настроить что-то в этом роде в auth.conf:

# Allow ELB to access REST endpoint
path ~ ^/status/no_key$
auth off
allow_ip <ip_of_loadbalancer>

Перезапустите puppetmaster и попробуйте простую проверку:

curl -k -H "Accept: pson" https://puppetmaster:8140/production/status/no_key

Это должно сработать. Только будьте осторожны с auth.conf, чтобы не перетянуть себя!

Чтобы увидеть все доступные ключи API, взгляните на документацию REST API на сайте PuppetLabs.

4
ответ дан 3 December 2019 в 03:29

Теги

Похожие вопросы