From ebed9e53fb9336f2c7dfe5fcb6d42d4f3a12fb55 Mon Sep 17 00:00:00 2001 From: Trevor Suarez Date: Tue, 3 Nov 2015 12:30:55 -0500 Subject: [PATCH] Adding new "Options" configuration parameter for the puppet-masterless provisioner, to allow for specifying additional options to pass to the execute command --- provisioner/puppet-masterless/provisioner.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/provisioner/puppet-masterless/provisioner.go b/provisioner/puppet-masterless/provisioner.go index 546224a54..b3dc5117f 100644 --- a/provisioner/puppet-masterless/provisioner.go +++ b/provisioner/puppet-masterless/provisioner.go @@ -22,6 +22,9 @@ type Config struct { // The command used to execute Puppet. ExecuteCommand string `mapstructure:"execute_command"` + // Additional options to pass when executing Puppet + Options []string + // Additional facts to set when executing Puppet Facter map[string]string @@ -62,6 +65,7 @@ type ExecuteTemplate struct { ManifestFile string ManifestDir string Sudo bool + Options string } func (p *Provisioner) Prepare(raws ...interface{}) error { @@ -86,6 +90,7 @@ func (p *Provisioner) Prepare(raws ...interface{}) error { "{{if ne .HieraConfigPath \"\"}}--hiera_config='{{.HieraConfigPath}}' {{end}}" + "{{if ne .ManifestDir \"\"}}--manifestdir='{{.ManifestDir}}' {{end}}" + "--detailed-exitcodes " + + "{{.Options}} " + "{{.ManifestFile}}" } @@ -218,6 +223,7 @@ func (p *Provisioner) Provision(ui packer.Ui, comm packer.Communicator) error { ModulePath: strings.Join(modulePaths, ":"), Sudo: !p.config.PreventSudo, WorkingDir: p.config.WorkingDir, + Options: strings.Join(p.config.Options, " "), } command, err := interpolate.Render(p.config.ExecuteCommand, &p.config.ctx) if err != nil {