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