Использовать Puppetdb для переменной ENC?

Я читаю Документацию Puppet о добавлении пользовательского факта . Большая часть информации, похоже, связана с созданием модуля, работающего на агенте.

В моем случае мне просто нужна простая переменная среды, которую я мог бы установить с мастера для каждого узла. Затем мой ENC сделает запрос PuppetDb, чтобы узнать, какую среду он должен обслуживать.

Могу ли я сделать это, или все факты исходят от агента?

0
задан 2 May 2017 в 03:22
2 ответа

Могу я сделать это,

Да, это возможно. Можно создать собственный факт в марионеточном модуле, например запустите какой-нибудь код Ruby, чтобы получить версию установленного программного обеспечения:

имя_модуля / lib / facter / customfact.rb

Facter.add("customfact") do
  setcode do
    123
  end
end

Приведенный выше код находится на Puppetmaster и когда марионетка запущена, например десять различных агентов, результат, т.е. 123 , и имя хоста каждого узла будут зарегистрированы в PuppetDB и их можно будет просмотреть в Puppetboard.

или все факты исходят от агента?

Нет таможенные факты хранятся на Хозяине Марионеток

1
ответ дан 4 December 2019 в 13:33

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

Но у вас есть возможность настроить среду агента с марионеточными квитанциями (например, с помощью [puppet_config_providers] [1]).

puppet_config { 'agent/environment':
  value => $::puppet_environment,
}

Однако это изменение будет учтено только при следующем запуске марионетки.

[1] https://forge.puppet.com/camptocamp/puppet_config_providers

1
ответ дан 4 December 2019 в 13:33

Теги

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