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.
