or you can pipe it like this:

cat template.json | packer build -


On Tue, Jun 11, 2019 at 3:13 PM Nasir Amin <[email protected]> wrote:

> Hi Richard,
>
> Thanks. So that means I'll have to generate files at runtime and then
> delete them once the packer build has completed?
>
> Regards,
>
> On Tuesday, June 11, 2019 at 1:30:51 PM UTC+1, Rickard von Essen wrote:
>>
>> You can use jq to join several json files and thus keep snippets that you
>> join together. See
>> https://stackoverflow.com/questions/19529688/how-to-merge-2-json-file-using-jq
>>
>> On Tue, Jun 11, 2019 at 12:42 PM Nasir Amin <[email protected]> wrote:
>>
>>> Hi,
>>>
>>> I am using Packer version 1.4.1
>>> What is the best practice to manage generic templates.
>>> We have a few packer template files for different windows versions. The
>>> template's builders section is common and we use var files to pass in any
>>> user variables.
>>>
>>> The reason we are having to keep multiple json template files is due to
>>> the Provisioner sections being different for different types of templates.
>>>
>>> Question:
>>> Is there a way we can use the same template file with just the builders
>>> section.
>>> For provisioners, we can either put them in a separate file and then
>>> somehow inject it into the main tempalte OR
>>> if we can pass in the Provisioners in the form of a json array through a
>>> user variable from a variables file?
>>>
>>> Some of my provisioners are powershell scripts, ansible and windows
>>> restart. Is it possible to pass in provisioners from a variable file like
>>> this?
>>>
>>>
>>>   "host_provisioners": [
>>>     {
>>>       "type": "powershell",
>>>       "inline": [
>>>                 "cmd.exe /c powershell.exe Set-ExecutionPolicy Unrestricted 
>>> -force",
>>>                 "a:\\scripts\\Configure-MinorSettings.ps1",
>>>                 "a:\\scripts\\win2019-setup-ssh.ps1",
>>>                 "a:\\scripts\\Setup-Docker.ps1"
>>>                 ]
>>>     },
>>>     {
>>>       "type": "windows-restart",
>>>       "restart_check_command": "powershell -command \"& {Write-Output 
>>> 'Guest Restarted Successfully.'}\""
>>>     }
>>> ]
>>> }
>>>
>>>
>>> Then in the main template file where my builders are, I do this:
>>>
>>> "provisioners": "{{user host_provisioners }}"
>>>
>>> It seems like you have to put provisioners and builders in the same
>>> file. It would be good if we can do on one of the following and if it is
>>> already possible:
>>>
>>>
>>>    - Isolate builders and provisioners into separate files and then
>>>    combine them in the packer build command with a flag like
>>>    --provisioner-file=<path to file>
>>>    - OR Allow passing the provisioners from a variables file.
>>>
>>> The first approach will probably be more flexible.
>>>
>>> What is the best practice on structuring and managing multiple templates
>>> or making your templates generic? As things stand, it seems impossible to
>>> apply DRY principles to Packer.
>>>
>>> I'll really appreciate any guidance on this please as our packer scripts
>>> and templates are becoming a bit hard to scale and maintain.
>>> I see packer will eventually support HCL2 which should make some of the
>>> things easier e.g. conditional provisioners etc
>>> https://github.com/hashicorp/packer/issues/1768
>>>
>>>
>>> Regards,
>>>
>>> Nas
>>>
>>>
>>> --
>>> This mailing list is governed under the HashiCorp Community Guidelines -
>>> https://www.hashicorp.com/community-guidelines.html. Behavior in
>>> violation of those guidelines may result in your removal from this mailing
>>> list.
>>>
>>> GitHub Issues: https://github.com/mitchellh/packer/issues
>>> IRC: #packer-tool on Freenode
>>> ---
>>> You received this message because you are subscribed to the Google
>>> Groups "Packer" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>> To view this discussion on the web visit
>>> https://groups.google.com/d/msgid/packer-tool/ea90623a-2da1-453e-969c-0e7c39a04969%40googlegroups.com
>>> <https://groups.google.com/d/msgid/packer-tool/ea90623a-2da1-453e-969c-0e7c39a04969%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>> --
> This mailing list is governed under the HashiCorp Community Guidelines -
> https://www.hashicorp.com/community-guidelines.html. Behavior in
> violation of those guidelines may result in your removal from this mailing
> list.
>
> GitHub Issues: https://github.com/mitchellh/packer/issues
> IRC: #packer-tool on Freenode
> ---
> You received this message because you are subscribed to the Google Groups
> "Packer" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/packer-tool/317528bb-11d0-42f8-ad75-e6fcfa9411e0%40googlegroups.com
> <https://groups.google.com/d/msgid/packer-tool/317528bb-11d0-42f8-ad75-e6fcfa9411e0%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
This mailing list is governed under the HashiCorp Community Guidelines - 
https://www.hashicorp.com/community-guidelines.html. Behavior in violation of 
those guidelines may result in your removal from this mailing list.

GitHub Issues: https://github.com/mitchellh/packer/issues
IRC: #packer-tool on Freenode
--- 
You received this message because you are subscribed to the Google Groups 
"Packer" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/packer-tool/CALz9Rt8sZk%2BEQGpFqmaWk_4Tc97n%2BBwwY_EvZ9Yu4LdXBaGvnw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to