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] 
> <javascript:>> 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] <javascript:>.
>> 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.
For more options, visit https://groups.google.com/d/optout.

Reply via email to