Puppet назначает узлы средам от мастера?

Я учусь использовать Puppet и успешно настроил и подключил главный сервер с 2 узлами.

Я создал файлы для стандартного производства среда, которая работает. У меня также есть второй набор конфигураций под названием beta в моей папке сред.

Я хотел бы назначить 1 из моих 2 узлов бета-группе через главный сервер. Как мне это сделать?

Puppet version 4

2
задан 26 April 2017 в 16:35
1 ответ

Среда может быть установлена либо конфигурационным файлом агента puppet.conf, либо опцией командной строки агента -окружение , либо ведущим устройством, использующим внешний классификатор узлов (ENC), в порядке возрастания важности.

  1. Запустите марионеточный агент -t -окружение бета-версии , чтобы запустить агент с окружением, отличным от окружения по умолчанию.

  2. Установите окружение = beta под [агент] в /etc/puppetlabs/puppet/puppet.conf, чтобы установить окружение по умолчанию.

Или для настройки ENC для определения окружения на ведущем:

  1. Создайте скрипт типа /etc/puppetlabs/puppet/node.sh на любом удобном вам языке, например

    #!/bin/bash.
    если [ "$1" = beta.example.com ]; тогда...
     отголосок "окружающая среда: бета"
    другое
     отголосок "окружающая среда: производство"
    
    
  2. Убедитесь, что сценарий исполняемый (chmod +x /etc/puppetlabs/puppet/node.sh)

  3. В master's /etc/puppetlabs/puppet/puppet.conf под [master], установлено:

    node_terminus = exec
    external_nodes = /etc/puppetlabs/puppet/node.sh
    

Когда агент запущен, он получает информацию об узле от ведущего, который выполняет сценарий узла. Сценарий возвращает YAML документ (в данном случае одну строку) с именем окружения. Если имя окружения задано, то агент будет вынужден использовать это окружение.

Скрипт может быть реализован как угодно - он может выполнить какой-нибудь запрос (например, к БД), выполнить какую-нибудь логику с именем хоста (первый аргумент, $1), или просто быть жестко закодированным.

.
4
ответ дан 3 December 2019 в 09:58

Теги

Похожие вопросы