Commit Graph

17805 Commits (fb797a9e7786a3fde70e7de34ccf9ac3946501b3)
 

Author SHA1 Message Date
Matt Martz 384b2e0234 Get v2_playbook_on_start working
* Move self._tqm.load_callbacks() earlier to ensure that v2_on_playbook_start can fire
* Pass the playbook instance to v2_on_playbook_start
* Add a _file_name instance attribute to the playbook
9 years ago
Brian Coca 7708661270 Merge pull request #13402 from amenonsen/expandpath
Use CLI.expand_tilde also for the vault --output file
9 years ago
Sandra Wills e54bf43cfc Merge pull request #13404 from jlmitch5/docs_ads
fixed docsite rail ad
9 years ago
John Mitchell 76098823cd fixed docsite rail ad 9 years ago
Brian Coca d3d8487729 added remote environment var setting to changelog 9 years ago
Brian Coca 94d2958e1f Merge pull request #13403 from amenonsen/module-lang
Make module_lang default to whatever LANG is set to on the control node
9 years ago
Brian Coca ffb97e2202 Merge pull request #13400 from sivel/role-assertion-error
Catch additional assertion errors for load_list_of_blocks
9 years ago
Abhijit Menon-Sen 0d16d16ab8 Make module_lang default to whatever LANG is set to on the control node 9 years ago
Abhijit Menon-Sen fac7626230 Use CLI.expand_tilde also for the vault --output file 9 years ago
Matt Martz ce54a59cdc Catch additional assertion errors for load_list_of_blocks 9 years ago
Brian Coca 53cd802251 better error on invalid task lists 9 years ago
Brian Coca df16d26b33 Merge pull request #13393 from eest/openbsd_find_delete
Replace -delete with portable -exec rm {} \;
9 years ago
James Cammarata f7dc5a9515 Minor tweak and comment addition to 974a0ce3 9 years ago
James Cammarata f1d53a87e5 Merge pull request #13394 from Christoph-D/issue-13370
Fix #13370
9 years ago
Abhijit Menon-Sen 8cf1815867 Add an 'extract' filter
At its most basic, this is nothing more than an array or hash lookup,
but when used in conjunction with map, it is very useful. For example,
while constructing an "ssh-keyscan …" command to update known_hosts on
all hosts in a group, one can get a list of IP addresses with:

    groups['x']|map('extract', hostvars, 'ec2_ip_address')|list

This returns hostvars[a].ec2_ip_address, hostvars[b].ec2_ip_address, and
so on. You can even specify an array of keys for a recursive lookup, and
mix string and integer keys depending on what you're looking up:

    ['localhost']|map('extract', hostvars, ['vars','group_names',0])|first
        == hostvars['localhost']['vars']['group_names'][0]
            == 'ungrouped'

Includes documentation and tests.
9 years ago
Matt Martz 5be98ca91e Merge pull request #13395 from amenonsen/bump-version
Bump version in devel now that stable-2.0 has been branched
9 years ago
Abhijit Menon-Sen 22381be253 Bump version in devel now that stable-2.0 has been branched 9 years ago
Christoph Dittmann 267199fdd5 Update debug messages and comments
The comment was taken literally from lib/plugins/strategy/linear.py and
makes no sense in free.py where we have no noop tasks.

Also update the debug messages.
9 years ago
Christoph Dittmann c6e400fbea Fix issue #13370
all_blocks is referenced after the loop over included_files, so it needs
to be initialized before this loop, not inside.
9 years ago
Christoph Dittmann 9a6ae1d62a Let PlayIterator.add_tasks accept empty task lists
PlayIterator.add_tasks raised an error when trying to add an empty task
list.  This was the root cause of ansible issue #13370.
9 years ago
Patrik Lundin 9f9944e355 Replace -delete with portable -exec rm {} \;
Needed on OpenBSD which does not support -delete.
9 years ago
Brian Coca f78e27b082 updated new module list
added missing modules and fixed alphabetical ordering
9 years ago
Brian Coca b92cb93539 unconditionally set vars on init to avoid issues with var precedence 9 years ago
Brian Coca c03afccc05 reformated test, changed big assert to with_items
much easier to see the individual condition that causes the failure
when using with_items and evaluating each part of the assert individually
9 years ago
Brian Coca a1e8050760 Merge pull request #13389 from privateip/feature_eapi_shared_module
fixes a syntax issue with module_utils/eapi.py
9 years ago
Peter Sprygada 2491afc8b6 fixes a syntax issue with module_utils/eapi.py
This patch fixes an issue with the common args dict in the eapi shared
module.  This patch is required for the eapi shared module to be properly
imported and is therefore should be applied to all instances.
9 years ago
Brian Coca 8c630406c9 Merge pull request #13357 from privateip/feature_ssh_shared_module
initial add of ssh shared module.
9 years ago
Brian Coca 923b5467e3 Merge pull request #13354 from privateip/feature_eapi
adds device common argument to shared module
9 years ago
Brian Coca 574d7be8d5 Merge pull request #13358 from privateip/feature_ios_shared_module
Feature ios shared module
9 years ago
Brian Coca afefaff1a7 Merge pull request #13382 from mscherer/doc_with_inventory
Add a documentation on how to loop over all inventory host
9 years ago
Brian Coca e13c3d4c72 Merge pull request #13383 from mscherer/bugfix_style
Remove empty line breaking the formatting of the title
9 years ago
Peter Sprygada 93cd7a2a5f adds module create function for eapi.py shared module
This commit changes the way modules create an instance of AnsibleModule to
now use a common function, eapi_module.  This function will now automatically
append the common argument spec to the module argument_spec.  Module
arguments can override common module arguments
9 years ago
Peter Sprygada 8638e0ccf8 initial add of the ios shared module
This adds shared module support for building modules that connect to Cisco
IOS devices.  It builds on the module_utils/ssh.py shared module.
9 years ago
Michael Scherer c8bac7f54b Remove empty line breaking the formatting of the title 9 years ago
Michael Scherer 517b533d46 Add a documentation on how to loop over all inventory host
Related to #13343
9 years ago
Brian Coca 3e01516783 fixed signature for init on callbacks
also removed passing display to base class which already handles this
9 years ago
Matt Davis e1bcb43e76 Merge pull request #13381 from nitzmahone/winrm_extension_fix
allow shell plugin to affect remote module filename
9 years ago
nitzmahone c94509f273 allow shell plugin to affect remote module filename
Fix for 13368, added get_remote_filename to shell plugins, powershell version appends .ps1 if necessary, base shell plugin no-ops
9 years ago
Toshio Kuratomi f873cc0fb5 Update docs and example config for requiretty + pipelining change 9 years ago
Toshio Kuratomi 1d8e178732 Note crab and mgedmin's work to make pipelining compatible with sudo+requiretty 9 years ago
Toshio Kuratomi bebd2c5f34 Merge pull request #13200 from amenonsen/pipelining
Make pipelining work with su/sudo+requiretty
9 years ago
Abhijit Menon-Sen f488de8599 Make sudo+requiretty and ANSIBLE_PIPELINING work together
Pipelining is a *significant* performance benefit, because each task can
be completed with a single SSH connection (vs. one ssh connection at the
start to mkdir, plus one sftp and one ssh per task).

Pipelining is disabled by default in Ansible because it conflicts with
the use of sudo if 'Defaults requiretty' is set in /etc/sudoers (as it
is on Red Hat) and su (which always requires a tty).

We can (and already do) make sudo/su happy by using "ssh -t" to allocate
a tty, but then the python interpreter goes into interactive mode and is
unhappy with module source being written to its stdin, per the following
comment from connections/ssh.py:

        # we can only use tty when we are not pipelining the modules.
        # piping data into /usr/bin/python inside a tty automatically
        # invokes the python interactive-mode but the modules are not
        # compatible with the interactive-mode ("unexpected indent"
        # mainly because of empty lines)

Instead of the (current) drastic solution of turning off pipelining when
we use a tty, we can instead use a tty but suppress the behaviour of the
Python interpreter to switch to interactive mode. The easiest way to do
this is to make its stdin *not* be a tty, e.g. with cat|python.

This works, but there's a problem: ssh will ignore -t if its input isn't
really a tty. So we could open a pseudo-tty and use that as ssh's stdin,
but if we then write Python source into it, it's all echoed back to us
(because we're a tty). So we have to use -tt to force tty allocation; in
that case, however, ssh puts the tty into "raw" mode (~ICANON), so there
is no good way for the process on the other end to detect EOF on stdin.
So if we do:

    echo -e "print('hello world')\n"|ssh -tt someho.st "cat|python"

…it hangs forever, because cat keeps on reading input even after we've
closed our pipe into ssh's stdin. We can get around this by writing a
special __EOF__ marker after writing in_data, and doing this:

    echo -e "print('hello world')\n__EOF__\n"|ssh -tt someho.st "sed -ne '/__EOF__/q' -e p|python"

This works fine, but in fact I use a clever python one-liner by mgedmin
to achieve the same effect without depending on sed (at the expense of a
much longer command line, alas; Python really isn't one-liner-friendly).

We also enable pipelining by default as a consequence.
9 years ago
Brian Coca 18a8c31cf4 added pull's code sig verification to changelog 9 years ago
Toshio Kuratomi 50553bc2ba _connect no longer takes a port argument 9 years ago
Brian Coca dbbf7c8406 updated changelog to show su now works with local 9 years ago
Brian Coca f1fcab4610 ignore password flags in become conflict check
since all the --ask pass options end up triggering the same code
and are functionally equivalent, ignore them when it comes to checking
privilege escalation conflicts. This allows using -K when --become-method=su
and so on.
9 years ago
Brian Coca a6f6a80caa avoid inheritance issues with default=dict declaration at class level
this should avoid the issue of subsequent plays not prompting for a var
prompted for in a previous play.
9 years ago
James Cammarata d1b5653b53 Merge pull request #13367 from leedm777/patch-1
Corrected group separator
9 years ago
James Cammarata 70e1095546 Merge pull request #13372 from sreekanthpulagam/patch-1
Added missing closing quote
9 years ago
Sandra Wills c9b543bd67 Merge pull request #13286 from jlmitch5/docsite_ads
use hubspot based ads instead of stored files
9 years ago