2016-01-10 8 views
1

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

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

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

ответ

1

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

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

    [[email protected] ~]$ 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 
} 

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

Update

Его очень странно, я CR ящик с коробкой был в порядке - марионетка была установлена.

я только изменился с 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 

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

Когда я vagrant вверх по VM, подготовка к марионетке была запущена и упакована.

+0

Спасибо. Я включил сценарий очистки и кукол (который я сделал для тестирования) и использовал ваш скрипт для установки Puppet. Он по-прежнему не сохраняется, даже если журналы Packer указывают, что он был правильно установлен. Я даже запускал rpm -qa | grep puppet' в сценарии Puppet, где я получил правильный результат ('puppetlabs-release-7-11.noarch'), но этого я не получаю, когда запускаю его с помощью Vagrant. –

+0

гул, я бы сказал, что кукла правильно установлена ​​в вашем ящике - какая ошибка, когда вы бродяжничаете с марионеточной подготовкой? –

+0

Это то, что я получаю, когда я запускаю 'vagrant up': ==> default: Запуск Provender: puppet ... Бинар' puppet', похоже, не находится в PATH гостя.Это может быть связано с неправильной настройкой PATH или, возможно, на этом гостю установлен Puppet . Предоставление кукол не может продолжаться без Кукольный дом правильно установлен. –