2017-01-25 12 views
2

Я хотел бы передать ISO_URL в качестве параметра командной строки. Я пытался следовать примеру на https://www.packer.io/docs/templates/user-variables.htmlКак передать Packer.io ISO_URL в качестве параметра командной строки

Где моя переменная секция выглядит

"variables": { 
    "build_version": "1.0.0", 
    "iso_checksum_type":"md5", 
    "iso_checksum":"453312bf56fc45669fec5ebc0f025ac7", 
    "iso_url":"c:\fake.iso" 
} 

переменной ссылки

... 
    "iso_checksum": "{{user `iso_checksum`}}", 
    "iso_checksum_type":"{{user `iso_checksum_type`}}", 
    "iso_url": "{{user `iso_url`}}", 
    ... 

и команда сборки

packer build -var 'iso_url=c:\debian.iso' packerio.json 

Однако, iso_url не перезаписывается, и упаковщик пытается загрузить fake.iso

Почему?

Точный результат

virtualbox-iso output will be in this color. 

==> virtualbox-iso: Downloading or copying Guest additions 
virtualbox-iso: Downloading or copying: file:///C:/Program%20Files/Oracle/VirtualBox/VBoxGuestAdditions.iso 
==> virtualbox-iso: Downloading or copying ISO 
virtualbox-iso: Downloading or copying: file:///c:/fake.iso 
virtualbox-iso: Error downloading: GetFileAttributesEx c:/fake.iso: The system cannot find the file specified. 
==> virtualbox-iso: ISO download failed. 
Build 'virtualbox-iso' errored: ISO download failed. 

==> Some builds didn't complete successfully and had errors: 
--> virtualbox-iso: ISO download failed. 

==> Builds finished but no artifacts were created. 
+0

Не могли бы вы добавить часть своего шаблона, где вы ссылаетесь на _user variable_ 'iso_url'? –

+0

@RickardvonEssen Я отредактировал вопрос в этом разделе –

+0

Это выглядит правильно. Единственное, о чем я мог подумать, это то, как вы приводите аргументы командной строки с одинарными кавычками в Windows. Я ничего не знаю о Windows, но, вероятно, стоит изучить, есть ли проблема. Что произойдет, если вы удалите кавычки? –

ответ

4

Решение заменить одиночные кавычки с двойной или оставить кавычки из.

packer build -var "iso_url=c:\debian.iso" packerio.json 

или

packer build -var iso_url=c:\debian.iso packerio.json 

Кроме того, относительный путь тоже работает

packer build -var iso_url=\subfolder_name\debian.iso packerio.json 

Спасибо @RickardvonEssen указал мне в правильном направлении.

+0

Вы должны принять это. –