Puppet не сохраняется с помощью Packer в CentOS 7.1

Я пытаюсь создать коробку Vagrant с помощью Packer, и все работает нормально, пока я не пытаюсь установить Puppet в коробку Packer. Журналы Packer ясно говорят, что Puppet устанавливается правильно. Однако, когда я загружаю коробку в Vagrant и подключаюсь к ней по SSH, Puppet нигде не обнаруживается (проверено с помощью yum list | grep puppet). Когда я запускаю команды, которые Packer должен выполнять при создании блока непосредственно в блоке Vagrant, и снова запускаю свою тестовую команду, Puppet фактически попадает туда.

Я уже пробовал менять порядок скриптов в оболочке, но ничего из этого не помогло. Команды для Puppet, похоже, работают (видя, что я могу заставить их работать прямо в окне Vagrant).

Я создал суть со всеми моими файлами. Я устанавливаю его на CentOS 7.1.


person Community    schedule 10.01.2016    source источник


Ответы (1)


Первое, что я бы сказал:

  • не забудьте выполнить очистку в самом конце (запустите cleanup.sh после puppet.sh)
  • yum list <package> перечислит все доступные пакеты (и установленные пакеты), чтобы узнать, какие пакеты установлены, вы должны запустить yum list installed (у вас могут быть проблемы в ваших репозиториях или зеркалах, если вы вообще не получаете никакого вывода от своей команды)
  • поскольку вы устанавливали из rpm, вы также можете запустить rpm -qa | grep puppet, чтобы узнать, был ли установлен пакет, вы должны получить что-то вроде (в зависимости от версии)

    [vagrant@vagrant ~]$ rpm -qa | grep puppet
    puppetlabs-release-6-11.noarch
    

На первый взгляд скрипт выглядит хорошо - я устанавливаю из следующего скрипта

install_puppet()
{
    echo "==> Installing Puppet"
    REDHAT_MAJOR_VERSION=$(egrep -Eo 'release ([0-9][0-9.]*)' /etc/redhat-release | cut -f2 -d' ' | cut -f1 -d.)

    echo "==> Installing Puppet Labs repositories"
    rpm -ipv "http://yum.puppetlabs.com/puppetlabs-release-el-${REDHAT_MAJOR_VERSION}.noarch.rpm"

    if [[ ${CM_VERSION:-} == 'latest' ]]; then
        echo "==> Installing latest Puppet version"
        yum -y install puppet
    else
        echo "==> Installing Puppet version ${CM_VERSION}"
        yum -y install "puppet-${CM_VERSION}"
    fi
}

так что это в основном то же самое -

Обновить

Это очень странно, я создал коробку из вашей сути, и коробка была в порядке - марионетка была установлена.

Я только изменился с puppet.sh

#!/bin/sh
#rpm -ivh https://yum.puppetlabs.com/puppetlabs-release-pc1-el-7.noarch.rpm 
rpm -ivh https://yum.puppetlabs.com/puppetlabs-release-el-7.noarch.rpm 
yum -y install puppet

поэтому я смог установить puppet 3.x, а не puppet 4.x, и я использовал существующий Vagrantfile с простой подготовкой, и все было в порядке.

Когда я бродил по виртуальной машине, подготовка для puppet была запущена и установлена.

person Frederic Henri    schedule 12.01.2016
comment
Спасибо. Я поменял местами скрипт очистки и марионетки (который я сделал только для тестирования) и использовал ваш скрипт для установки Puppet. Он по-прежнему не сохраняется, хотя в логах Packer указано, что он был установлен правильно. Я даже выполнил команду rpm -qa | grep puppet в сценарии Puppet, где я получил правильный вывод (puppetlabs-release-7-11.noarch), но я не получаю никакого вывода, когда запускаю его с помощью Vagrant. - person ; 12.01.2016
comment
гм, я бы сказал, что марионетка правильно установлена ​​​​в вашем поле - что за ошибка, когда вы бродите с марионеткой? - person Frederic Henri; 12.01.2016
comment
Вот что я получаю, когда запускаю vagrant up: ==> по умолчанию: Running Provisioner: puppet... Похоже, что двоичный файл puppet не находится в PATH гостя. Это может быть связано с неправильной настройкой PATH или с тем, что на этом госте не установлен Puppet. Подготовка Puppet не может продолжаться без правильной установки Puppet. - person ; 12.01.2016
comment
странно, я сделал коробку из вашей сути, и похоже, что она установлена, только что внес изменение для установки puppet 3.x, чтобы я мог протестировать существующую подготовку, которую я имел - person Frederic Henri; 13.01.2016
comment
Я удалил папки .vagrant и .vagrant.d из своей системы, и теперь это работает! Спасибо! - person ; 13.01.2016
comment
Хорошо, но вы также можете добавить/удалить бродячий ящик и бродячий уничтожить виртуальную машину, если вам нужно сохранить каталог - person Frederic Henri; 13.01.2016