Sync puppet module changes from upstream ansible

We keep a local copy of this file for operational purposes, but the
upstream one has grown a few things. Sync to make it easier to submit
our local changes upstream.

Change-Id: I84927750fce1a7c6101e8d5c131c0b13020bb6aa
This commit is contained in:
Monty Taylor 2016-09-17 01:26:54 +02:00
parent e8632f41a4
commit 1c69c305e7
No known key found for this signature in database
GPG Key ID: 7BAE94BC7141A594
1 changed files with 41 additions and 5 deletions

View File

@ -73,18 +73,37 @@ options:
required: false
default: stdout
version_added: "2.1"
certname:
description:
- The name to use when handling certificates.
required: false
default: None
version_added: "2.1"
tags:
description:
- A comma-separated list of puppet tags to be used.
required: false
default: None
version_added: "2.1"
execute:
description:
- Execute a specific piece of Puppet code. It has no effect with
a puppetmaster.
required: false
default: None
version_added: "2.1"
noop:
description:
- Whether puppet should be run in noop mode
required: false
default: false
version_added: "2.1"
version_added: "2.2"
debug:
description:
- Whether puppet should be run in debug mode
required: false
default: false
version_added: "2.1"
version_added: "2.2"
requirements: [ puppet ]
author: "Monty Taylor (@emonty)"
@ -99,6 +118,15 @@ EXAMPLES = '''
# Run puppet using a different environment
- puppet: environment=testing
# Run puppet using a specific certname
- puppet: certname=agent01.example.com
# Run puppet using a specific piece of Puppet code. Has no effect with a
# puppetmaster.
- puppet: execute='include ::mymodule'
# Run puppet using a specific tags
- puppet: tags=update,nginx
'''
@ -138,18 +166,22 @@ def main():
facts=dict(default=None),
facter_basename=dict(default='ansible'),
environment=dict(required=False, default=None),
certname=dict(required=False, default=None),
tags=dict(required=False, default=None, type='list'),
execute=dict(required=False, default=None),
noop=dict(required=False, default=False, type='bool'),
debug=dict(required=False, default=False, type='bool'),
),
supports_check_mode=True,
mutually_exclusive=[
('puppetmaster', 'manifest'),
('puppetmaster', 'manifest', 'execute'),
],
)
p = module.params
global PUPPET_CMD
PUPPET_CMD = module.get_bin_path("puppet", False)
PUPPET_CMD = module.get_bin_path("puppet", False, ['/opt/puppetlabs/bin'])
if not PUPPET_CMD:
module.fail_json(
@ -193,7 +225,7 @@ def main():
if not p['manifest']:
cmd = ("%(base_cmd)s agent --onetime"
" --ignorecache --no-daemonize --no-usecacheonfailure"
" --no-splay --verbose") % dict(
" --no-splay --verbose --color 0") % dict(
base_cmd=base_cmd,
)
if p['puppetmaster']:
@ -207,6 +239,10 @@ def main():
cmd += " --show_diff"
if p['environment']:
cmd += " --environment '%s'" % p['environment']
if p['tags']:
cmd += " --tags '%s'" % ','.join(p['tags'])
if p['certname']:
cmd += " --certname='%s'" % p['certname']
if module.check_mode or p['noop']:
# Noop causes detailed-exitcodes to sometimes erroneously
# return failures, so we only set detailed-exitcodes when
@ -220,7 +256,7 @@ def main():
if rc == 0:
# success
module.exit_json(rc=rc, changed=False, stdout=stdout)
module.exit_json(rc=rc, changed=False, stdout=stdout, stderr=stderr)
elif rc == 1:
# rc==1 could be because it's disabled
# rc==1 could also mean there was a compilation failure