У меня есть сервер Ubuntu 14.04, на котором запущены Foreman и Puppet (в качестве главного), а также некоторые другие машины Ubuntu 14.04, которые являются узлами Puppet. Я хочу использовать Foreman, чтобы убедиться, что на узлах Puppet установлены определенные пакеты. С обычным Puppet вы можете включить что-то вроде
package { "screen":
ensure => "installed"
}
который запускает команду apt и устанавливает экран. Но я не знаю, как это сделать с Форманом. Это вообще возможно? Я не нашел на него никаких ссылок, и все мои результаты поиска содержат информацию о том, как установить Foreman.
Во-первых, я не использую Foreman, я использую hiera. Примеры должны дать вам представление о том, для чего нужен ENC, а не предоставить полное руководство по использованию Foreman. Вот один это охватывает основы.
Во-вторых, Puppetlabs предоставляет сайт, аналогичный этому, для вопросов, связанных с марионетками, так что вы можете посмотреть там для помощи.
На ваш вопрос:
Форман, как и Хиера, классификатор внешнего узла (ENC). Это означает, что вы можете использовать его для присоединения загружаемых классов или переменных к узлу, который будет использоваться загруженными классами.
Что вам все же следует (и нужно) сделать, так это предоставить марионетке модули и манифесты для загрузки.
В качестве примера можно написать модуль с именем misc
, вставить /etc/puppet/environment/prod/modules/misc
.
class misc {
package { "screen":
ensure => "installed"
}
}
Вы можете использовать Foreman для присоединения класса misc
для выборки узлов node01.example.com
и node02.example.com
установить экран на обоих узлах.
Другой пример с использованием переменных:
class misc(
$packages = [ "screen" ],
) {
package { $packages:
ensure => "installed"
}
}
Вы можете использовать Foreman для присоединения класса misc
для выборки узлов node01.example.com
и node02.example.com
, и установите переменную misc::packages
к чему-то вроде [ "vim", "screen", "telnet" ]
чтобы он установил vim, screen и telnet на обоих узлах.