Что представляет собой марионеточный способ отправки конфигураций вместе с запросом от агента марионеток
Я хочу сделать некоторые детали динамической конфигурации на стороне мастера Puppet, прежде чем он будет развернут на агенте Puppet. Поэтому я хочу отправить значительное количество деталей конфигурации вместе с запросом агента к мастеру. Есть ли правильный способ сделать это в марионетке?
С уважением, Малинта Адиакри
2 ответа
Да! Есть фейтер. Это то, как я использую это и что я считаю наиболее надежным, но есть и другие способы определения новых фактов.
Например, если вы хотите добавить роль сервера, то вы можете сделатьexport FACTER_ROLE=jenkins
Теперь вы можете увидеть эту команду facter role
будет печатать Дженкинс. Ура! После запуска агента Puppet все факты, известные системе, будут переданы затем администратору пакетов. Помните, что сервисная марионетка не будет знать факт, который вы только что определили, потому что он работает в другой области.
Я помещаю свои факты в файл.facts и получаю их перед применением.
Это мой скрипт, который запускается из cron:
#!/bin/bash
source /root/.facts
puppet agent -t --server puppetmaster.example.com --pluginsync
Хотя предыдущий ответ правильный, я открываю его как новый, потому что это важно. определяющий FACTER_factname
Переменные в среде агента - хороший и быстрый способ переопределить некоторые факты. Если вы хотите полагаться на собственные факты в производственных целях, вам следует обратить внимание на пользовательские факты.
В его базовой форме вы используете его, развертывая фрагменты кода Ruby на своем боксене. Для более легкого подхода обратите особое внимание на внешние факты. Это, вероятно, лучшее решение для вашей проблемы.
Также обратите внимание, что начиная с Facter 2 вы можете содержать сложные структуры данных в ваших фактах и вам не нужно сериализовать все в строки. Как вы подчеркиваете, если объем данных от агента велик, это может быть полезно.