2016-07-20 17 views
0

Ich baue eine VirtualBox VM mit Packer und ich würde einige VM-Metadaten (z. B. Beschreibung, Version) mit dem export_opts-Parameter festlegen. Die docs sagenWie Packer export_opts verwenden?

export_opts (Array von Zeichenfolgen) - Zusätzliche Optionen zum VBoxManage-Export übergeben. Dies kann nützlich sein, um Produktinformationen an die resultierende Appliance-Datei zu übergeben.

Ich versuche, dies in einem Bash-Skript aufrufen Packer zu tun:

desc=' ... some ...' 
desc+=' ... multiline ...' 
desc+=' ... description ...' 
# this is actually done using printf, shortened for clarity 
export_opts='[ "version", "0.2.0", "description", "${desc}" ]' 

# the assembled string looks OK 
echo "export_opts: ${export_opts}" 

packer build \ 
     ... (more options) ... 
    -var "export_opts=${export_opts}"    \ 
     ... (more options) ... 
    <packer configuration file> 

Ich habe auch versucht --version statt version und version und den Wert in die gleiche Zeichenfolge setzen, aber nichts davon funktioniert; Sobald sie exportiert und erneut importiert wurde, ist die VM-Beschreibung leer.

Hat jemand einen funktionierenden Beispielcode oder kann mir helfen, was ich falsch mache?

Vielen Dank.

Update:

Anthony Staunton's approach Folgen, habe ich herausgefunden, dass das Hinzufügen

"export_opts": [ "--vsys", "0", "--version", "0.2.0", "--description", "some test description" ], 

zum Packer JSON-Datei funktioniert; Übergabe der gleichen Zeichenfolge wie --var an Packer funktioniert nicht.

Antwort

0

Das Problem wurde behoben endlich angeben müssen, um den Packer Dokumentation mit dem folgenden Beispiel aktualisiert, pullrequests anhängig:

Packer JSON-Konfigurationsdatei Beispiel:

{ 
    "type": "virtualbox-ovf", 
    "export_opts": 
    [ 
    "--manifest", 
    "--vsys", "0", 
    "--description", "{{user `vm_description`}}", 
    "--version", "{{user `vm_version`}}" 
    ], 
    "format": "ova", 
} 

Eine VirtualBox VM description kann beliebige Zeichenfolgen enthalten; Die GUI interpretiert die HTML-Formatierung. Das JSON-Format erlaubt jedoch keine willkürlichen Zeilenumbrüche innerhalb eines Wertes. Fügen Sie eine mehrzeilige Beschreibung durch die Zeichenfolge in der Shell-Vorbereitung vor dem Packer Aufruf wie folgt (Shell > Fortsetzungszeichen für einfache Kopie & Paste snipped):

vm_description='some 
multiline 
description' 

vm_version='0.2.0' 

packer build \ 
    -var "vm_description=${vm_description}" \ 
    -var "vm_version=${vm_version}"   \ 
    "packer_conf.json" 
0

Sie können die Daten als

in Ihrem Packer JSON-Datei

"export_opts": [ "--vsys 0 --version \"0.2.0\"", "{{.Name}} --description \"${desc}\" " ], 
+0

, das funktioniert, wenn die Syntax festgelegt ist, funktioniert nicht mit ein Packer '--var' obwohl; Siehe mein Update – ssc