Merge pull request #3349 from keyan/master

provisioner/puppet-masterless: Add ignore exit codes option
This commit is contained in:
Rickard von Essen 2016-03-14 08:08:55 +01:00
commit 9d1a6b08d6
2 changed files with 7 additions and 1 deletions

View File

@ -54,6 +54,9 @@ type Config struct {
// The directory from which the command will be executed.
// Packer requires the directory to exist when running puppet.
WorkingDir string `mapstructure:"working_directory"`
// If true, packer will ignore all exit-codes from a puppet run
IgnoreExitCodes bool `mapstructure:"ignore_exit_codes"`
}
type Provisioner struct {
@ -242,7 +245,7 @@ func (p *Provisioner) Provision(ui packer.Ui, comm packer.Communicator) error {
return err
}
if cmd.ExitStatus != 0 && cmd.ExitStatus != 2 {
if cmd.ExitStatus != 0 && cmd.ExitStatus != 2 && !p.config.IgnoreExitCodes {
return fmt.Errorf("Puppet exited with a non-zero exit status: %d", cmd.ExitStatus)
}

View File

@ -73,6 +73,9 @@ Optional parameters:
configuration to be uploaded to the remote machine. Hiera data directories
must be uploaded using the file provisioner separately.
- `ignore_exit_codes` (boolean) - If true, Packer will never consider the
provisioner a failure.
- `manifest_dir` (string) - The path to a local directory with manifests to be
uploaded to the remote machine. This is useful if your main manifest file
uses imports. This directory doesn't necessarily contain the