Кукольный - определить, доступен ли другой хост?

Есть ли какой-нибудь готовый способ / пользовательский факт / и т.д., чтобы 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 и т. д. в порядке латентности.

Другие вопросы по тегам