Вопрос: Почему эффекты Puppet исчезают после Poster-процесса Packer?


Я решил изучить Packer, собрав флажок FreeBSD Vagrant. полная настройка на GitHub, Все работает хорошо до стадии последующей обработки. Фактически, этот этап также утверждает, что он завершается без ошибок, но когда я пытаюсь запустить коробку Vagrant, виртуальная машина не имеет каких-либо эффектов, которые должны были быть сделаны Puppet.

В частности, если я запускаю packer build freebsd.json в клоне репо Я получаю файлы ovf и vmdk, которые я могу импортировать в VirtualBox, и получить экземпляр с vagrant пользователя и настройки .ssh, описанные ниже.

Но я также получаю packer_virtualbox-iso_virtualbox.box файл, и если я это сделаю

vagrant init packer_virtualbox-iso_virtualbox.box
vagrant up

Я получаю экземпляр, который загружается и имеет pkg и марионетку, но не имеет vagrant пользователя или его домашнего каталога. Вот отрегулированная версия пакер json файл:

{
    "builders": [SNIP],
    "provisioners": [{
        "type": "shell",
        "script": "install-puppet",
        "execute_command": "chmod +x {{ .Path }}; env {{ .Vars }} {{ .Path }}"
    }, {
        "type": "puppet-masterless",
        "manifest_file": "site.pp",
        "execute_command": "cd {{.WorkingDir}} && env {{.FacterVars}} puppet apply --verbose --modulepath='{{.ModulePath}}' {{if ne .HieraConfigPath \"\"}}--hiera_config='{{.HieraConfigPath}}' {{end}} {{if ne .ManifestDir \"\"}}--manifestdir='{{.ManifestDir}}' {{end}} --detailed-exitcodes {{.ManifestFile}}"
    }],
    "post-processors": [{
        "type": "compress",
        "compression_level": 9,
        "keep_input_artifact": true,
        "output": "archive.tar.bz2"
    }, {
        "type": "vagrant",
        "compression_level": 9,
        "keep_input_artifact": true
    }]
}

Это как если бы бродячий ящик каким-то образом возвращался к точке, где выполнялся первый механизм обеспечения безопасности, а второй - нет. Что это может объяснить?

Обновить

Я попытался запустить упаковщик в режиме отладки, экспортируя PACKER_LOG=debug и заметил это в выводе, относящемся к кукольной части:

2015/12/16 20:48:12 packer-builder-virtualbox-iso: 2015/12/16 20:48:12 remote command exited with '2': cd /tmp/packer-puppet-masterless && env FACTER_packer_build_name='virtualbox-iso' FACTER_packer_builder_type='virtualbox-iso' puppet apply --verbose --modulepath=''   --detailed-exitcodes /tmp/packer-puppet-masterless/manifests/site.pp
2015/12/16 20:48:12 packer-builder-virtualbox-iso: 2015/12/16 20:48:12 [INFO] RPC endpoint: Communicator ended with: 2
2015/12/16 20:48:12 [INFO] 539 bytes written for 'stdout'
2015/12/16 20:48:12 [INFO] 0 bytes written for 'stderr'
2015/12/16 20:48:12 [INFO] RPC client: Communicator ended with: 2
2015/12/16 20:48:12 [INFO] RPC endpoint: Communicator ended with: 2
2015/12/16 20:48:12 packer-provisioner-puppet-masterless: 2015/12/16 20:48:12 [INFO] 0 bytes written for 'stderr'
2015/12/16 20:48:12 packer-provisioner-puppet-masterless: 2015/12/16 20:48:12 [INFO] 539 bytes written for 'stdout'
2015/12/16 20:48:12 packer-provisioner-puppet-masterless: 2015/12/16 20:48:12 [INFO] RPC client: Communicator ended with: 2

Я не знаю, является ли это основной причиной или нет, но я попробовал еще один запуск с execute_command заканчивающийся true, Он изменил выход журнала (не более «Коммуникатор закончил с: 2»), но не изменил результат.


5
2017-12-16 23:51


Источник




Ответы:


Привет, я нашел ответ. Это не имеет никакого отношения к Packer или Puppet. Оказывается, где-то бродячие кешируют кеши. После первой установки Vagrant всегда использовал один и тот же старый ящик и игнорировал любые обновления от новых сборок упаковщика. Чтобы исправить это (пока я не выясню, как создавать брандмауэры с пакетом с пакетом пакетов), я могу каждый раз уничтожать ящик с помощью

vagrant box remove packer_virtualbox-iso_virtualbox.box

1
2017-12-17 12:33