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

Использование Foreman для установки пакетов

У меня есть сервер 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 на обоих узлах.