Я учусь использовать Puppet и успешно настроил и подключил главный сервер с 2 узлами.
Я создал файлы по умолчанию production
среда, которая работает. Еще у меня есть второй набор конфигов под названием beta
в папке моей среды.
Я хочу назначить 1 из 2 моих узлов бета-группе через главный сервер. Как бы я это сделал?
Кукольный вариант 4
Среда может быть установлена агентом puppet.conf
config, агент --environment
параметр командной строки или мастер, использующий классификатор внешних узлов (ENC), в порядке возрастания приоритета.
Бегать puppet agent -t --environment beta
для запуска агента в среде, отличной от среды по умолчанию.
Устанавливать environment = beta
под [agent]
в /etc/puppetlabs/puppet/puppet.conf
чтобы установить среду по умолчанию.
Или настроить ENC для определения среды на главном устройстве:
Создайте сценарий, например /etc/puppetlabs/puppet/node.sh
на любом языке, который вам нравится, например
#!/bin/bash
if [ "$1" = beta.example.com ]; then
echo "environment: beta"
else
echo "environment: production"
fi
Убедитесь, что сценарий исполняемый (chmod +x /etc/puppetlabs/puppet/node.sh
)
в магистр /etc/puppetlabs/puppet/puppet.conf
под [master]
, устанавливать:
node_terminus = exec
external_nodes = /etc/puppetlabs/puppet/node.sh
Когда агент запускается, он получает информацию об узле от мастера, который запускает сценарий узла. Сценарий возвращает документ YAML (в данном случае одну строку) с именем среды. Если указано имя среды, агент будет вынужден использовать эту среду.
Сценарий может быть реализован так, как вы считаете нужным - он может выполнять какой-то запрос (например, к базе данных), выполнять некоторую логику в отношении имени хоста (первый аргумент, $1
) или просто жестко запрограммировать.