Настройте кукольный и установите проблемы пакета apache - PullRequest
0 голосов
/ 05 сентября 2018

В целях тестирования я хотел настроить puppet и развернуть apache на Ubuntu 16.4 puppet master, используя puppet, не беспокоясь об использовании узлов, выполнив следующие шаги:

$ wget https://apt.puppetlabs.com/puppet5-release-xenial.deb

Установите пакет, запустив:

$ dpkg –i puppet5-release-xenial.deb

Обновление списка пакетов

$ apt-get update

Установить марионеточный сервер

$ sudo apt-get install puppetserver

На нашем сервере Puppet установите модуль puppetlabs-apache:

$ sudo puppet module install puppetlabs-apache

Из каталога манифестов необходимо создать класс init.pp /etc/puppet/modules/apache/manifests/init.pp

class apache2 {
    package {'apache2':
          ensure => 'present',
    }
}

Чтобы попытаться установить пакет apache, который я использовал:

$ sudo puppet apply init.pp

Затем я получил следующее:

Notice: Compiled catalog for osboxes.home in environment production in 0.03 seconds
Notice: Finished catalog run in 0.04 seconds

А когда я проверяю, установлен ли apache, это не так.

Куда я иду не так?

1 Ответ

0 голосов
/ 06 сентября 2018

Если у вас есть модуль Apache в правильном пути к модулю, проблема в том, что у вас нет кода для включения модуля.

Для простоты давайте забудем о структуре файла на мастере Puppet и т. Д. И просто создадим файл apache.pp (сохраните его в / tmp или где угодно) и передайте ему следующее содержимое:

class apache2 {
    package {'apache2':
        ensure => 'present',
    }
}

include apache2

Теперь попробуйте:

$ sudo puppet apply apache.pp

Вы должны увидеть, как Puppet установил пакет apache2.

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

Класс apache (код, который у вас уже был) должен находиться в файле ${modulepath}/apache2/manifests/init.pp.

Это должно удовлетворить автозагрузчик Puppet . Вы можете узнать больше об этом здесь .

Между тем, modulepath задокументирован здесь , и он может варьироваться в зависимости от версии Puppet и от того, как вы все настроили.

Чтобы узнать ваш путь к модулю, попробуйте:

$ sudo puppet config print modulepath

Теперь, если у вас есть все файлы на месте, вы сможете включить этот класс другим способом, например так:

$ sudo puppet apply -e "include apache2"

Как только вы начнете работать, самое время прочитать о шаблоне ролей и профилей .

...