Commit Graph

27 Commits (94c5e16fe3228093ebe7f5b73695bc9b352d00d7)

Author SHA1 Message Date
Jonathan Mainguy 4b948af706 Enable stdout and stderr on sucessful runs, making show_diff useable
omit color symbols as ansible makes them illegible
2016-12-08 11:34:04 -05:00
Vlad Gusev 317fe95be0 system/puppet: add --tags parameter (#1916)
* system/puppet: add --tags parameter

--tags [1] is used to apply a part of the node’s catalog.

In puppet:
puppet agent --tags update,monitoring

In ansible:
puppet: tags=update,monitoring

[1] https://docs.puppetlabs.com/puppet/latest/reference/lang_tags.html#restricting-catalog-runs

* Add example of tag usage.

* system/puppet: add list type for a tags dict.
2016-12-08 11:34:03 -05:00
Emilien Macchi 1c94395a96 system/puppet: allow to run puppet -e
-e or --execute [1] allows to execute a specific piece of Puppet code
such a class.

For example, in puppet you would run:
puppet apply -e 'include ::mymodule'

Will be in ansible:
puppet: execute='include ::mymodule'

[1] http://docs.puppetlabs.com/puppet/latest/reference/man/apply.html#OPTIONS
2016-12-08 11:33:58 -05:00
Emilien Macchi f0f1d1edc4 system/puppet: add --certname parameter
certname [1] can be a useful parameter when we need to specify a
certificate name different from the default value [2] in Puppet.

Ex: the hosts have different names, in advanced network isolation
setups.

Also, it can be used when we want to run Puppet with a specific node
definition and not using hostname or fqdn to match the nodes where we want to
run Puppet [3] (not recommended by Puppetlabs though).

[1] https://docs.puppetlabs.com/puppet/latest/reference/configuration.html#certname
[2] Defaults to the node’s fully qualified domain name
[3] http://docs.puppetlabs.com/puppet/latest/reference/lang_node_definitions.html#naming
2016-12-08 11:33:56 -05:00
Brian Coca 864bf4e19e added new puppet path to bin search
fixes #1835
2016-12-08 11:33:54 -05:00
Jonathan Mainguy ac8b171da4 fixes bug where puppet fails if logdest is not specified 2016-12-08 11:33:53 -05:00
James Cammarata f1e50f7616 Adding version_added field to logdest field for puppet module 2016-12-08 11:33:49 -05:00
Monty Taylor d8f35dfb18 Add option to send puppet apply logs to syslog
While returning puppet logs as ansible stdout is useful in some cases,
there are also cases where it's more destructive than helpful. For
those, local logging to syslog so that the ansible logging makes sense
is very useful.

This defaults to stdout so that behavior does not change for people.
2016-12-08 11:33:49 -05:00
Dale Smith 7404418cbd Fix regression of #821 in puppet of show_diff
Issue #821 fix: 1382576100ee3b17f4eb28c7186d92376f370676
Regressed since: 6912ca0acaed0d738d8dd9867721d2ff0094084a

Issue: #821
2016-12-08 11:33:46 -05:00
Toshio Kuratomi ad0d2c1747 Update for modules which import json.
Some do not use the json module directly so don't need import json.
Some needed to fallback to simplejson with no traceback if neither was installed

Fixes #1298
2016-12-08 11:33:44 -05:00
Jonathan Mainguy badef2912b Remove advertising show_diff feature
--diff will be added to more modules soon, and we want puppet module to utilize this instead of show_diff
2016-12-08 11:33:41 -05:00
Casey Lang 1c8ad72b7b Fix puppet module formatting issue
The `->` in the `show_diff` option doc seemed to be causing the docs
page to break. Not sure why, since it was still valid YAML.
2016-12-08 11:33:41 -05:00
Monty Taylor 40a4247611 Sync minor fixes from OpenStack Infra
Infra has been keeping a local copy of this waiting for ansible 2 to
release. In getting ready for ansible 2 (and our ability to delete our
local copy of the file, I noticed we had a couple of minor cleanups.

Also, the timeout command is there to improve life and workaround puppet
deficiencies. However, it's not working around deficiencies on systems
that do not have the timeout command if we blindly use it.

The puppet specific timeout options are more complex and out of scope of
this.

Issue: #1273
2016-12-08 11:33:39 -05:00
Xav Paice f30dbc9b20 Added stdout and stderr to puppet output for rc=2 2016-12-08 11:33:36 -05:00
Brian Coca 4ddb181d71 removed json import 2016-12-08 11:33:36 -05:00
Monty Taylor 9b9464ab89 Revert "Change show_diff to default to yes"
This was originally to match what puppet agent --test is, since the
rest of the options defaulted to on are grabbed from --test. However,
some security concerns have since been raised - namely that since this
is not the same invocation as --test but instead a remote orchestration
of puppet, the fact that passwords leak into the diff is a dangerous
default.

This reverts commit b86762c1806aa7f021a4780d06db2d3937910a62.
2016-12-08 11:33:31 -05:00
Jonathan Mainguy 451a05c1a2 Change show_diff to default to yes, to match what puppet agent --test is, since the rest of the options defaulted to on are grabbed from --test 2016-12-08 11:33:30 -05:00
Brian Coca bd0eeae6ff fixed a few typos fixes #821 2016-12-08 11:33:08 -05:00
Rene Moser 45c370dbb8 puppet: update author to new format 2016-12-08 11:32:49 -05:00
Rene Moser e97399b173 puppet: add --environment support 2016-12-08 11:32:49 -05:00
Rene Moser 4238950a58 puppet: make arg puppetmaster optional
puppetmaster was used to determine if `agent` or `apply` should be used. But puppetmaster is not required by puppet per default. Puppet may have a config or could find out by itself (...) where the puppet master is.

It changed the code so we only use `apply` if a manifest was passed, otherwise we use `agent`.

This also fixes the example, which did not work the way without this change.

~~~
# Run puppet agent and fail if anything goes wrong
- puppet
~~~
2016-12-08 11:32:49 -05:00
Rene Moser 8f9c3efb1d puppet: ensure puppet is in live mode per default
puppet may be configured to operate in `--noop` mode per default.

That is why we must pass a `--no-noop` to make sure, changes are going to be applied.
2016-12-08 11:32:49 -05:00
Rene Moser f91b75db2f puppet: fix missing space between command and arg
Fixes:
~~~
{
    "cmd": "/usr/bin/puppetconfig print agent_disabled_lockfile",
    "failed": true,
    "msg": "[Errno 2] No such file or directory",
    "rc": 2
}
~~~
2016-12-08 11:32:49 -05:00
Monty Taylor b61d270648 Fix octal values for python 2.4 2016-12-08 11:32:48 -05:00
Monty Taylor 15fccb1ea1 Add support for check mode 2016-12-08 11:32:48 -05:00
Monty Taylor 32c5c00cde Fix some errors pointed out by travis 2016-12-08 11:32:48 -05:00
Monty Taylor 9e2c4efa53 Add module to run puppet
There is a growing pattern for using ansible to orchestrate runs of
existing puppet code. For instance, the OpenStack Infrastructure team
started using ansible for this very reason. It also turns out that
successfully running puppet and interpreting success or failure is
harder than you'd expect, thus warranting a module and not just a shell
command.

This is ported in from
http://git.openstack.org/cgit/openstack-infra/ansible-puppet
2016-12-08 11:32:48 -05:00