Кукольный - определить, доступен ли другой хост?
Есть ли какой-нибудь готовый способ / пользовательский факт / и т.д., чтобы Puppet мог по-разному реагировать, если данный хост и порт недоступны из управляемой системы?
Например, у меня есть некоторые продукты, которые используют несколько каталогов для чтения пользовательской информации.
Как правило, я бы хотел, чтобы самый быстрый и ближайший сервер был указан первым. Если он недоступен, я бы хотел, чтобы мой модуль мог переписать файл конфигурации, чтобы перейти к нижним записям в списке.
2 ответа
Так это для обмена что-то через переменную конфигурации в шаблоне?
Я думаю, что лучший способ сделать это - написать пользовательский факт в Ruby, который выполняет тестирование скорости и достижимости, а затем использовать этот пользовательский факт для установки строки в шаблоне. Это кажется разумным для вашего варианта использования?
Посмотрите на stdlib кукол. Это позволяет помещать пользовательские данные или сценарии в /etc/facter/facts.d
( описание).
Таким образом, вы можете, например, иметь небольшой сценарий /etc/facter/facts.d/neighbour.sh
добавить новую переменную в facter -p
:
#! /bin/sh
if ping -nc 1 dirserver.fnqd > /dev/null; then
echo 'dirserver_available=true'
else
echo 'dirserver_available=false'
fi
С помощью небольшого сценария вы можете добавить пользовательские факты, такие как dirserver_1
, dirserver_2
и т. д. в порядке латентности.