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

У меня есть Диспетчер выполнения сервера Ubuntu 14.04 и Марионетка (как ведущее устройство), и некоторые другие машины Ubuntu 14.04, которые являются Марионеточными узлами. Я хочу использовать Диспетчера, чтобы удостовериться, что Марионеточным узлам установили определенные пакеты. С постоянной Марионеткой можно включать что-то как

package { "screen":
    ensure => "installed"
}

который инициировал способную команду и устанавливает экран. Но я не уверен, как сделать это с Диспетчером. Это даже возможно? Я не нашел ссылок на него, и все мои результаты поиска имеют некоторых с тем, как установить Диспетчера сами.

1
задан 10 February 2015 в 23:20
1 ответ

Во-первых, я не использую Foreman, я использую hiera. Примеры должны дать вам представление о том, для чего нужен ENC, а не предоставить полное руководство по использованию Foreman. Вот один , который охватывает основы.

Во-вторых, Puppetlabs предоставляет сайт, аналогичный этому, для конкретных вопросов марионеток, так что вы можете поискать там для помощи .

Что касается вашего вопроса:

Foreman, как и hiera, является классификатором внешних узлов (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 на обоих узлах.

2
ответ дан 3 December 2019 в 21:00

Теги

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