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

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

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

Я создал файлы по умолчанию production среда, которая работает. Еще у меня есть второй набор конфигов под названием beta в папке моей среды.

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

Кукольный вариант 4

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

  1. Бегать puppet agent -t --environment beta для запуска агента в среде, отличной от среды по умолчанию.

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

Или настроить ENC для определения среды на главном устройстве:

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

    #!/bin/bash
    if [ "$1" = beta.example.com ]; then
      echo "environment: beta"
    else
      echo "environment: production"
    fi
    
  2. Убедитесь, что сценарий исполняемый (chmod +x /etc/puppetlabs/puppet/node.sh)

  3. в магистр /etc/puppetlabs/puppet/puppet.conf под [master], устанавливать:

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

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

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