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

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

Есть ли какой-либо готовый способ / настраиваемый факт / и т. Д., Чтобы Puppet мог реагировать по-другому, если данный хост и порт недоступны из управляемой системы?

Например, у меня есть продукты, которые используют несколько каталогов для чтения пользовательской информации.

Обычно я бы хотел, чтобы первым был указан самый быстрый и ближайший сервер. Если он недоступен, я бы хотел, чтобы мой модуль мог переписать файл конфигурации, чтобы перейти к нижним записям в списке.

Значит, это для замены чего-либо через переменную конфигурации в шаблоне?

Я думаю, что лучший способ сделать это - написать пользовательский факт в 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 и т. д. в порядке задержки.