Commit Graph

987 Commits (dc93b31d2212fca3b26fe16a25495b3da5c4ce0a)

Author SHA1 Message Date
Michael DeHaan 4987c73bb6 Proper check for raw as module options versus raw being in the string. 2013-10-06 09:54:28 -04:00
James Tanner 52aea868df Allow for updating host vars in add_host 2013-10-04 16:15:17 -04:00
James Cammarata d21714a37f Fix for network byte order issues in accelerate 2013-10-02 15:37:15 -05:00
James Cammarata 912e3a7b0b Merge branch 'accelerate_improvements' into devel
Conflicts:
	library/utilities/accelerate
2013-10-01 21:22:17 -05:00
James Cammarata fa80a17aa3 Make recv_data less greedy so it doesn't eat other packets 2013-10-01 16:50:32 -05:00
James Cammarata 12f6957596 Cleaning up some vvvv log messages in accelerate 2013-10-01 15:34:58 -05:00
James Cammarata 8c17711247 Removing accelerate_timeout as a playbook option
This will remain in ansible.cfg only.
2013-10-01 15:33:18 -05:00
James Cammarata d317103371 Added in an accelerate connection timeout setting 2013-10-01 15:28:59 -05:00
James Cammarata 59a5ce23d9 Adding an accelerate_timeout parameter for plays
This setting makes the timeout for each play configurable, rather than
hard-coding it at 300 seconds (now the default if left unspecified)

Fixes #4162
2013-10-01 15:26:50 -05:00
James Cammarata f9c87868ac Added keepalive packets to accelerate mode
Commands will now be started up in a separate task from the main
handler thread, so that it can be monitored for completeness while
sending a keepalive packet back to the controller to avoid a socket
receive timeout.
2013-10-01 15:19:21 -05:00
jctanner 32a1dd422c Merge pull request #4269 from jphalip/issue-4256
In the script action: Get around a Python bug.
2013-09-30 20:24:49 -07:00
James Cammarata 52a42bf607 Add more verbose debugging options for accelerate 2013-09-30 14:08:07 -05:00
Matt Martz 535ce97067 Add fileglob Jinja2 filter. Fixes #3563 2013-09-30 12:55:13 -05:00
Julien Phalip 44aeea7afc In the script action: Get around a bug in that's been fixed in Python 2.7 but not Python 2.6.
See: http://bugs.python.org/issue6988
Fixes #4256.
2013-09-27 08:57:07 -07:00
Preston Marshall 3ee7b177e8 Allow storing input from user in a pause prompt 2013-09-25 17:28:25 -05:00
James Cammarata 994dfb84fc Minor pep8 cleanup and CHANGELOG update for do-until 2013-09-25 15:51:49 -05:00
James Cammarata 202c4f5294 Merge branch 'do_until_14' of https://github.com/bennojoy/ansible into bennojoy-do_until_14 2013-09-25 15:49:14 -05:00
James Cammarata 478c400817 Minor pep8 cleanup in the new jail connection plugin 2013-09-25 14:48:30 -05:00
James Cammarata 0e0595bdb2 Merge branch 'jail' of https://github.com/mscherer/ansible into mscherer-jail 2013-09-25 14:47:24 -05:00
bennojoy 70a9a797fa Fix for accelerate when ansible_ssh_user is specified 2013-09-25 19:24:54 +05:30
nextus ca96d74572 #4227 in upstream repo 2013-09-25 16:15:49 +04:00
bennojoy 0e749611ac doc update and add attempts 2013-09-25 09:56:14 +05:30
bennojoy 21529de82e dountil feature commit 2 2013-09-24 15:23:01 +05:30
bennojoy 53e48b63a9 dountil feature commit 1 2013-09-24 13:59:38 +05:30
James Cammarata 2f39d37a97 Expand destination path in the fetch action
Fixes #4215
2013-09-23 20:23:48 -05:00
Michael DeHaan 319a0f9523 Merge pull request #4154 from mplonka/AIX_MD5
using AIX 'csum' command for generating MD5 checksums
2013-09-23 08:27:12 -07:00
Michael DeHaan 7f8126a6c9 Merge pull request #4168 from nigelm/md5_filter
Added md5 as a jinja filter - returns hex digest of input
2013-09-23 08:21:11 -07:00
Andrey Shorin cb4b964070 Allow for dynamic accelerate_port: and port: in plays 2013-09-23 13:33:36 +04:00
James Cammarata c840cbaad9 Merge branch 'fork_fixes' of https://github.com/akerl/ansible into akerl-fork_fixes 2013-09-19 10:37:45 -05:00
James Cammarata 69cfcf7ed0 Minor change to -vvvv mode to only show debugging info for ssh conns
Also added this feature to the CHANGELOG
2013-09-19 08:12:43 -05:00
James Cammarata d5b96abd80 Added support for -vvvv to enable ssh connection debugging
This patch also checks specifically for a return code of 255, which
indicates an unknown SSH error of some kind. When that happens, ansible
will now recommend running with -vvvv (if not enabled) or show the
output from 'ssh -vvv' (when it is enabled)
2013-09-19 05:58:54 -05:00
Nigel Metheringham f0cc2d6efe Added md5 as a jinja filter - returns hex digest of input 2013-09-19 09:38:22 +01:00
Timothy Appnel d8cd3d603e Straightened out the logic for delegate handling in synchronize action module 2013-09-19 03:17:44 -04:00
Timothy Appnel 61e726fe82 Fix to local delegate_to override and proper sudo handling from @smoothify 2013-09-19 03:17:44 -04:00
Timothy Appnel 32ae6fdd43 Return of sychronize module code for take 3 2013-09-19 03:17:43 -04:00
Marcin Płonka d0c78bdc83 using AIX 'csum' command for generating MD5 checksums 2013-09-18 21:07:25 +02:00
Brian Harring 5b1b831cc7 Make ssh's ControlPath configurable via ansible.cfg
This shouldn't generally be needed unless you're working in an environment
that uses rediculously long FQDNs; if the name is too long, you wind up
hitting unix domain socket filepath limits enforced by ssh.
2013-09-18 15:07:07 -04:00
Les Aker 98bf473cb2 fixes for PTY handling 2013-09-16 17:44:32 -04:00
James Cammarata 3b801dec72 Merge branch 'failed_when' of https://github.com/hnakamur/ansible into hnakamur-failed_when 2013-09-16 07:35:34 -05:00
James Cammarata fcc18fa105 Merge branch 'subelements' of https://github.com/sergevanginderachter/ansible into sergevanginderachter-subelements 2013-09-16 06:14:42 -05:00
James Cammarata 3848e02959 Merge branch 'issue4022' of https://github.com/sfromm/ansible into sfromm-issue4022
Conflicts:
	lib/ansible/runner/connection_plugins/accelerate.py
2013-09-16 05:50:35 -05:00
James Cammarata d9cf1dfefb Merge branch 'fetch' of https://github.com/bpennypacker/ansible into bpennypacker-fetch 2013-09-16 05:39:48 -05:00
James Cammarata f4b3defcbf Set sudo in accelerate commands correctly
Fixes #4111
2013-09-15 20:20:22 -05:00
Michael Scherer 5e1828a524 add jail module, based on lxc and chroot connexion plugin 2013-09-15 17:26:48 +02:00
Marcin Kałuża 6786773797 filter out qoutes since they cause random errors 2013-09-10 15:00:29 +02:00
Marcin Kałuża aab445a28f add 'chars' parameter to password plugin to allow custom character set
It accepts comma separated list of names that are
either string module attributes (ascii_letters,digits, etc)
or are used literally

To enter comma use two commas ',,' somewhere - preferably at the end
Qoutes and double qoutes are not supported
2013-09-10 11:59:16 +02:00
Hiroaki Nakamura 2357194b39 Add failed_when module variable.
Implementation note: Ternery operator trick for python prior to 2.5 is used.
(test and [when_true_value] or [when_false_value])[0]
http://stackoverflow.com/questions/394809/ternary-conditional-operator-in-python#comment1466794_394887
2013-09-10 08:34:01 +09:00
Serge van Ginderachter 4f9af7efad subelements lookup plugin 2013-09-09 23:45:55 +02:00
Michael Scherer dfb9d8c2fb Add a plugin that permit to use ansible for lxc system, using libvirt
Using -c lxc and the domain name as hostname, this permit to manage a whole
range of container, provided they are managed and created by libvirtd.
2013-09-08 18:47:09 +01:00
James Cammarata 6e9fa5019f Reverting HostVars change from a mapping back to a dictionary 2013-09-06 20:24:16 -05:00
James Cammarata 2a47f72139 Merge pull request #4049 from mscherer/fix_no_kerberos
Fix no kerberos
2013-09-06 07:10:10 -07:00
Michael Scherer f489702973 Also add back gssapi-keyex
While this is not currently implemented in openssh as far as I know,
there is patch floating around on the web and this may land one day
upstream.
2013-09-06 10:40:34 +02:00
Keiichi Mori 17c39b94a3 support GSSAPIAuth back
GSSAPIAuthentication has not been supported
due to PreferredAuthentications trick ( 2bdba17a85 )
2013-09-06 10:40:25 +02:00
James Cammarata ae9e38daf8 Change hostvars to a mutable mapping to more closely resemble a dict
Fixes #4030
2013-09-05 23:04:16 -05:00
James Cammarata 2cbf28385a Move check for accelerate mode deeper to account for ansible_connection
Fixes #4045
2013-09-05 20:20:25 -05:00
James Cammarata 20b0dc4abd Check for an empty executable passed into the accelerate plugin
This was breaking at least the script module, so it would seem best
to check for it and set it to the default executable value
2013-09-05 15:11:26 -05:00
James Cammarata 4bf506f683 Always run the accelerate module as the user specified in the play
Currently, the accelerate daemon will be run as the sudo_user if
specified, which is incorrect.
2013-09-05 12:04:48 -05:00
Scott Sturdivant 68bffb1233 Don't force accelerate connection for local actions. 2013-09-05 09:37:47 -06:00
James Cammarata f6e1bdabea Ensure ports are set correctly in accelerate module 2013-09-05 09:52:10 -05:00
guersam 64db327411 Fix: raise correct error in accelerate mode 2013-09-05 15:10:45 +09:00
Stephen Fromm d704b55860 Support using paramiko to set up accelerate connection
Adds original_transport attribute to Runner to track what the original
transport was before it is changed to 'accelerate'.
If using paramiko in original_transport, uses ParamikoConnection.  If
not, falls back to SSHConnection like before.
2013-09-04 13:57:03 -07:00
James Cammarata fff497a1ae Make sure the accelerated port is set to a sane value 2013-09-04 15:52:39 -05:00
James Cammarata cc21e5c90c Adding hostvars to injected variables in accelerate ssh runner
Also some minor cleanup of some fb* variables and functions, which
were remnants of the old fireball2 name

Fixes #4021
2013-09-04 15:29:46 -05:00
James Cammarata c0fecf87d1 Increase default socket timeout to 5 minutes 2013-09-04 09:47:40 -05:00
James Cammarata 2696135b3b Display error during launch of accelerated daemon
* also minor tweak to the # of retries in the connection attempt

Fixes #4012
2013-09-03 12:28:32 -05:00
James Cammarata 53c2f4c1bb Fix race condition on creating the temp directory for ControlPersist
Fixes #3943
2013-09-03 11:00:33 -05:00
James Cammarata d05c61d1f0 Merge branch 'devel' into fireball2
Conflicts:
	lib/ansible/playbook/__init__.py
	lib/ansible/playbook/play.py
2013-09-02 21:54:02 -05:00
James Cammarata d69d5c294f Renaming fireball2 as 'accelerate' and removing old references 2013-08-30 13:26:27 -05:00
James Cammarata 6f6efa268b Merge branch 'smoothify-defaults' into devel 2013-08-30 08:40:47 -05:00
James Cammarata 637d3070dc Allow default variables to be overridden by inventory variables 2013-08-29 17:21:28 -05:00
James Cammarata 9806f89a04 Revert "Construct the multiprocessing manager only once."
This reverts commit 1d13ec2da3.
2013-08-29 11:00:25 -05:00
James Cammarata 7d3ae9fc75 Fixing a few bugs related to fireball2
* ssh port not being picked up, always uses default of 22
* forgot to 'import time' in the fireball2 connection plugin
2013-08-28 19:27:18 -05:00
James Cammarata faf82bf841 Fix bug with fetch when using sudo: true
Fixes #3111
2013-08-28 13:24:16 -05:00
James Cammarata af1dd7075f Adding chunked file transfers to fireball2 2013-08-28 11:14:58 -05:00
James Cammarata 959138d00d Added accelerate_port to plays, and made it configurable 2013-08-28 11:14:58 -05:00
James Cammarata 167f185092 Initial support for running gather_facts through fireball2 2013-08-28 11:14:58 -05:00
James Cammarata b45342923c Initial support for sudoable commands over fireball2
Caveats:
* requiretty must be disabled in the sudoers config
* asking for a password doesn't work yet, so any sudoers users must
  be configured with NOPASSWD
* if not starting the daemon as root, the user running the daemon
  must have sudoers entries to allow them to run the command as the
  target sudo_user
2013-08-28 11:14:58 -05:00
James Cammarata 4b552457e7 Bail out correctly if socket.recv gets nothing (indicating a closed socket) 2013-08-28 11:14:58 -05:00
James Cammarata 86f01965cd Fireball2 module will now launch in a proper tmp path 2013-08-28 11:14:58 -05:00
James Cammarata 521e14a3ad Fireball2 mode working! 2013-08-28 11:14:58 -05:00
James Cammarata acc5d09351 Initial commit for the "fireball2" connection plugin
Still needs:
* chunked file transfer/receive
* should probably move all send/recv operations to separate
  functions to reduce code duplication
* initial connection setup over ssh? or do we handle that in runner?
2013-08-28 11:14:58 -05:00
Bruce Pennypacker cf6a76c814 changed ignore_md5_mismatch to validate_md5 2013-08-28 14:41:00 +00:00
Bruce Pennypacker 41c474d129 added optional ignore_md5_mismatch parameter 2013-08-28 14:16:57 +00:00
James Cammarata 8262f7bfac Merge branch 'with_items_and_complex_args' of https://github.com/lberruti/ansible into lberruti-with_items_and_complex_args 2013-08-22 23:01:11 -05:00
James Cammarata 462cd4f728 Merge branch 'pulls/fix-hostvars-inconsistancy' of https://github.com/ferringb/ansible into ferringb-pulls/fix-hostvars-inconsistancy 2013-08-22 13:56:34 -05:00
James Cammarata e6ad3b7792 Merge pull request #3895 from mscherer/fix_option_new_ssh
make sure ssh do not ask password
2013-08-22 10:26:54 -07:00
James Cammarata 157b697a83 Merge branch 'always_run-6' of https://github.com/stoned/ansible into stoned-always_run-6 2013-08-22 12:10:28 -05:00
James Cammarata af4f0bd008 Fix for "argument must be an int, or have a fileno() method" error
The issue was that, when forks == 1, the _executor() function was
being called with None for the value of new_stdin.

Fixes #3841, #3902
2013-08-21 22:45:34 -05:00
James Cammarata 978af89175 Disallow running async tasks with lookup plugins
Fixes #2897
2013-08-21 16:44:10 -05:00
James Cammarata 6bf5d19506 SSH connection plugin creates ControlPersist socket files in a secure directory
Files were being created in /tmp, but will now be created in $HOME/.ansible/cp/
Addresses CVE-2013-4259: ansible uses a socket with predictable filename in /tmp
2013-08-21 11:40:46 -05:00
Stoned Elipot f0743fc32a Introduce the 'always_run' task clause.
The 'always_run' task clause allows one to execute a task even in
check mode.

While here implement Runner.noop_on_check() to check if a runner
really should execute its task, with respect to check mode option
and 'always_run' clause.

Also add the optional 'jinja2' argument to check_conditional() :
it allows to give this function a jinja2 expression without exposing
the 'jinja2_compare' implementation mechanism.
2013-08-20 23:09:44 +02:00
Michael Scherer 2bdba17a85 make sure ssh do not ask password
For some reason, ssh seems to ask for password even when
PasswordAuthentication is set to no, adding PreferredAuthentications
with the 2 options removed do the trick.
2013-08-20 22:02:37 +02:00
Brian Harring 31061213fa Fix inconsistency in hostvars access.
Previously, hostvars would only expose a keys() list of hosts that had
been seen yet- however you could explicitly access the host if you knew
the name, and get the content that way.  This precludes template code
from being able to safely access information about other hosts if any
limiters/tags were in use.

Additionally, the object was inconsistent for hostvars['myhost'] access
and [x[1] for x in hostvars.items() if x[0] == 'myhost'] access; this is
due to the original derivation from the dict object.  .items() would be
handled by dict.items(), using the passed in setup_cache values without
using the actual lookup content.

This patch rebases the class implementation to a py2.6 dictmixin, fixing
those issues and restoring behaviour to match what the docs claim.
2013-08-19 23:57:08 -04:00
Michael Scherer 3aac187387 fix ssh connection plugin to work with ipv6 address
Due to various inconsistencies of ssh and sftp regarding ipv6 and
ipv4 handling, some special arguments must be passed, and the
ipv6 must be passed in a specific format.
2013-08-19 15:27:20 -05:00
Michael DeHaan dacd311474 Removing synchronize momentarily as it looks like this won't make 1.3 dates 2013-08-16 15:22:39 -04:00
Luca Berruti eee278e02b fix 2013-08-14 13:26:14 +02:00
Luca Berruti 5048218ab5 Fix: with_items and complex_args 2013-08-14 11:49:46 +02:00
Michael DeHaan bc02e20503 Merge branch 'rsynctake2' into devel
Conflicts:
	CHANGELOG.md
2013-08-11 16:22:36 -04:00
Abhijit Menon-Sen 1a90d01ba9 Fix some typos discovered during casual reading 2013-08-11 18:41:23 +05:30
Michael DeHaan f8c97d6e79 Style/docs cleanup, and also improve an error message. 2013-08-10 18:58:45 -04:00
Michael DeHaan aeb8649da5 Merge branch 'ansible-rsync-take2' of git://github.com/tima/ansible into rsynctake2 2013-08-10 18:31:45 -04:00
Michael DeHaan 4d1f447908 Merge pull request #3650 from bcoca/forking_optimizations
forking least possible
2013-08-10 15:29:19 -07:00
Michael Vogt 89bc43cab0 support i18n on sudo failure 2013-08-10 17:56:39 -04:00
Serge van Ginderachter 9991a530ab fix an encoding bug in copy content = lookup plugin
closes #3518
2013-08-10 17:37:04 -04:00
Michael DeHaan 66b29b6813 Merge branch 'feature/gh-3789-inventory-file' of https://github.com/resmo/ansible into devel 2013-08-10 17:11:48 -04:00
Michael DeHaan 1d13ec2da3 Construct the multiprocessing manager only once. 2013-08-10 09:32:46 -04:00
René Moser e8272e365d
implemented 'inventory_file' variable. Closes GH-3789. 2013-08-10 13:04:56 +02:00
Timothy Appnel 2288a11b6a Implemented setup method in rsync action module. 2013-08-09 21:24:50 -04:00
Timothy Appnel 4a9635e04e Straighten out local-remote-delegate logic in rsync action module. Force set delegate to local if one is not defined. 2013-08-09 21:24:49 -04:00
Timothy Appnel adbca9d251 Fixed identity key logic. 2013-08-09 21:24:47 -04:00
Timothy Appnel 9f170f579a Introduced ansible-rsync to core. 2013-08-09 21:24:46 -04:00
Chris Church 6ba4331161 Correctly check for failed status from an async task. Use runner_on_async_failed callback (instead of runner_on_failed) when an async task times out. Add runner_on_async_ok callback when a task is started in fire and forget mode. 2013-08-06 12:42:44 -04:00
Michael DeHaan 1c6b81233c Merge pull request #3692 from tima/action-init
Added support of an optional init method for action modules like rsync that need to alter the connection and other inject data before it's established.
2013-08-03 12:00:04 -07:00
Michael DeHaan 76fd769704 Merge pull request #3685 from mspaulding06/indexed_items
Indexed items lookup plugin
2013-08-03 11:36:51 -07:00
Michael DeHaan c0ab417ef9 Don't iterate across strings in with_nested. 2013-08-03 14:22:18 -04:00
James Cammarata ba38d6bc16 Adding support for hashed known_hosts entries
Fixes Issue #3716 - SSH known host checking needs to understand
hashed known hosts
2013-08-02 11:08:02 -05:00
Timothy Appnel 11beb38c66 Added support of an optional setup method for action modules like rsync that need to alter the connection and other inject data before it's established. 2013-07-29 19:10:43 -04:00
Matt Spaulding 5d15515bbf Add indexed_items lookup plugin 2013-07-28 13:54:17 -07:00
Vincent Hardion 09ef7751e1 Fix nested loop for more than 3 elements
- combine flatten list for each nested level instead once at the end
2013-07-24 14:19:13 +02:00
Brian Coca 576962d335 now if you set fork to 0 or a number higher than the number of hosts, it
will be readjusted to the number of hosts runner is going to deal with.
Signed-off-by: Brian Coca <briancoca+dev@gmail.com>
2013-07-23 20:44:06 -04:00
Michael DeHaan f0eafff1b4 Merge pull request #3621 from sergevanginderachter/rename2flattened
also rename plugin name in error message
2013-07-22 10:32:38 -07:00
Serge van Ginderachter b40295910d also rename plugin name in error message 2013-07-22 16:47:36 +02:00
Michael DeHaan 2fe25f19dc Fix to group_by module as a result of previous conditional upgrades. 2013-07-22 10:11:19 -04:00
Michael DeHaan e3f213e030 Fixup error reporting. 2013-07-22 08:35:31 -04:00
Michael DeHaan c07dd07767 Add raw copy support (raw=yes), tweak tempfile error message string. 2013-07-22 08:25:55 -04:00
Michael DeHaan 0cf5e5cec3 Merge branch 'devel' of git://github.com/bradleyy/ansible into together 2013-07-21 11:47:05 -04:00
Michael DeHaan 7f462a346a Work in progress on merging changed_when. 2013-07-21 10:34:47 -04:00
Michael DeHaan 88720516a1 Merge branch 'changed_when' of git://github.com/stoned/ansible into changed_when 2013-07-21 10:14:03 -04:00
Michael DeHaan 62b39d3de5 Fix for saving conditionals in variable expressions. 2013-07-21 08:52:00 -04:00
Michael DeHaan 419661542b Added some pipes.quote ops to make sure paths with spaces in them are ok. 2013-07-20 18:28:11 -04:00
Stoned Elipot 667ad2480e Use AnsibleFilterError exception 2013-07-20 23:39:25 +02:00
Michael DeHaan e1167d6977 tweak indentation for 'make pep8' 2013-07-20 12:48:11 -04:00
Michael DeHaan 0f4229f6c4 Merge pull request #3462 from stoned/filtererror
Introduce exception AnsibleFilterError and use it in Jinja filters.  Ign...
2013-07-20 09:12:26 -07:00
Michael DeHaan f7dec4f8f4 Rename plugin. 2013-07-20 11:02:16 -04:00
Michael DeHaan 9dec701728 Merge pull request #3559 from sergevanginderachter/flat_list
Introduce flat_list lookup plugin
2013-07-20 07:59:44 -07:00
Michael Vogt 9caef884e1 fail early on the wrong sudo password instead of waiting until the timeout happens 2013-07-19 10:23:00 -04:00
Michael DeHaan c98b20b2cf Slight style preferences. 2013-07-19 09:22:17 -04:00
Sharif Olorin 5fcbfa984d More informative error message on failure to resolve tmpdir 2013-07-19 09:19:40 -04:00
Sharif Olorin 1a7a779e88 Handle SSH failures when creating remote tmpdir
Bail out if the SSH command fails rather than continuing with an
empty tmp variable.
2013-07-19 09:19:26 -04:00
Michael DeHaan 8a3ea0774a Update error message since user may have specified connection type via non command line or by default. 2013-07-19 09:09:04 -04:00
Serge van Ginderachter 730b368259 Introduce flat_list lookup plugin
- hosts: localhost
    gather_facts: False
    tasks:
    - debug: msg="{{item}}"
      with_flat_list:
      - a
      - - b
        - c
        - d
        - - e
        - f
        - - g
          - h
      - i
      - j
      - - k
        - l

  # note: main list or list (sub)items can also be set as a variable

  TASK: [debug msg="{{item}}"] **************************************************
  ok: [localhost] => (item=a) => {"item": "a", "msg": "a"}
  ok: [localhost] => (item=b) => {"item": "b", "msg": "b"}
  ok: [localhost] => (item=c) => {"item": "c", "msg": "c"}
  ok: [localhost] => (item=d) => {"item": "d", "msg": "d"}
  ok: [localhost] => (item=e) => {"item": "e", "msg": "e"}
  ok: [localhost] => (item=f) => {"item": "f", "msg": "f"}
  ok: [localhost] => (item=g) => {"item": "g", "msg": "g"}
  ok: [localhost] => (item=h) => {"item": "h", "msg": "h"}
  ok: [localhost] => (item=i) => {"item": "i", "msg": "i"}
  ok: [localhost] => (item=j) => {"item": "j", "msg": "j"}
  ok: [localhost] => (item=k) => {"item": "k", "msg": "k"}
  ok: [localhost] => (item=l) => {"item": "l", "msg": "l"}
2013-07-17 13:59:41 +02:00
Brian Coca 18cb155bd5 now ANSIBLE_KEEP_REMOTE_FILE acts as boolean
Signed-off-by: Brian Coca <briancoca+dev@gmail.com>
2013-07-14 22:08:36 -04:00
Bradley Young 23557b6e5a change the name from transpose to "together". Change to use itertools.izip_longest() rather than method cribbed from nested.py 2013-07-14 16:31:37 -07:00
Stoned Elipot eb45f07ae3 Introduce 'changed_when' keyword to override a task's changed status with the evaluation of a Jinja2 expression 2013-07-14 21:07:45 +02:00
Bradley Young ea93a36b10 Adding transpose lookup method. This will matrix transpose arrays that are passed in, and then work like items over the resulting list of lists. e.g.:
Transpose a list of arrays:
    [1, 2, 3], [4, 5, 6] -> [1, 4], [2, 5], [3, 6]
    Replace any empty spots in 2nd array with "":
    [1, 2], [3] -> [1, 3], [2, ""]
2013-07-11 23:45:03 -07:00
Michael DeHaan afcd869487 Merge pull request #3451 from sergevanginderachter/template_ansible_ssh_host
allow ansible_ssh_host to be templated
2013-07-11 06:04:13 -07:00
Michael DeHaan 90dfc115d6 Merge pull request #3463 from stoned/filterskipped
Add Jinja2 filter 'skipped' to test for a registered variable from a ski...
2013-07-11 05:26:25 -07:00
Michael DeHaan 279247dfac Merge pull request #3464 from stoned/filterquote
Add Jinja2 filter 'quote' to quote string for shell usage
2013-07-11 05:25:43 -07:00
Lasse Borchard 8c8b4d56fc Fixed indention of vv() output 2013-07-08 11:18:33 +02:00
Stoned Elipot 247322bb16 Add Jinja2 filter 'quote' to quote string for shell usage 2013-07-08 00:37:23 +02:00
Stoned Elipot 906746b1f0 Add Jinja2 filter 'skipped' to test for a registered variable from a skipped task 2013-07-07 22:13:14 +02:00
Stoned Elipot 2d88c70cd5 Introduce exception AnsibleFilterError and use it in Jinja filters. Ignore this exception when trying to find the name of a task for display (callback) purpose. 2013-07-07 19:18:32 +02:00
Michael DeHaan cf6e1f8db9 Make it possible to tell paramiko to not record new host keys, which can be slow with a large number of hosts.
-c ssh is preferred in most cases if you have ControlPersist available, otherwise if you are comfortable you
can turn off recording while leaving host key checking on, etc.
2013-07-05 22:06:54 -04:00
Michael DeHaan aa9385411d Merge pull request #3443 from ajsalminen/arg_unicode_fix
Use .encode() instead of str() to support unicode arguments.
2013-07-05 15:26:29 -07:00
Serge van Ginderachter 129c7522d9 allow ansible_ssh_host to be templated
Use case: e.g. dual homed hosts on production en management network

The inventory_hostname is the regular host name and matches the
dns name on the production network; ansible connects to the host
through a management network; the dns name on the management network
is standardized and equals ${inventory_hostname}-mgt.mynetwork.com

Now this can be configured as the default in group_vars/all:

   ansible_ssh_host: {{ inventory_hostname + '-mgt.mynetwork.com' }}
2013-07-05 18:05:26 +02:00
Michael DeHaan 2cb7c30834 Improve interlaced output prevention when asking for host key approval. 2013-07-04 18:17:45 -04:00
Michael DeHaan c55adc9ac9 Default to 'smart' transport, which will use OpenSSH if it can support ControlPersist. 2013-07-04 16:47:17 -04:00
Antti Salminen d7c6cf10c2 Use .encode() instead of str() to support unicode arguments.
str() throws an UnicodeEncodeError for code points that cannot be
represented in 7-bit ASCII. This makes it impossible to use any
non-ASCII characters in module arguments. Using encode('utf-8')
gives the desired result.
2013-07-04 23:16:38 +03:00
Michael DeHaan 1683d44d2e Lock around SSH connectivity to new hosts in host checking mode such that prompts for host approval
messages do not get interlaced.
2013-07-04 16:04:31 -04:00
Michael DeHaan cb26945d54 Close the named temporary file. 2013-07-05 01:24:08 -04:00
Michael DeHaan 3b1aa092f8 Closing stdin too early. 2013-07-05 01:20:08 -04:00
Michael DeHaan ffadbc520a Enable paramiko to ask whether to add keys to known hosts. 2013-07-04 14:05:41 -04:00
Michael DeHaan 9db4f7a9a6 Makes host key checking the default behavior but can be disabled in ansible.cfg or by environment variable. 2013-07-03 16:47:20 -04:00
Stoned Elipot 0b3483cf03 Add Jinja2 filter |bool : return boolean interpretation of the value
'yes', 'on', '1', 'true', insensitively, and 1 are true,
 everything else is false
2013-07-03 02:13:19 +02:00
Michael DeHaan f2fc185651 Styling: indentation 2013-06-30 18:49:49 -04:00
Michael DeHaan c265c761d0 Slight message tweak. 2013-06-30 18:27:15 -04:00
Michael DeHaan e6adc2f066 Merge branch 'devel' of git://github.com/arturaz/ansible into devel 2013-06-30 18:25:33 -04:00
Jeroen Hoekx a37f55d32e Add a mandatory jinja2 filter for use in templates. 2013-06-29 16:01:34 +02:00
Jesse Keating e1dd83f2b6 add_host should not be a changed action
The action doesn't actually change anything on a system, so setting
the status to changed is wrong. add_host is much like set_fact in that
regard.

Since changed is False by default, there is no need to explicity set
it, so just create an empty dict for result and add to it from there.
2013-06-25 10:58:55 -07:00
Arturas Slajus 9be93d6ac7 Better error for fireball + sudo mode. 2013-06-25 10:45:01 +03:00
Michael DeHaan fc45470162 Merge branch 'with_inventory_hostnames' of git://github.com/sdossett/ansible into inv_hostnames 2013-06-19 22:01:57 -04:00
Michael DeHaan 0ce7996bb6 Merge pull request #3266 from trbs/20130619_first_found
enable use of multiple terms in first_found
2013-06-19 18:39:29 -07:00
Michael DeHaan d2721526de Small tweak, don't merge conditionals, just evaluate each in turn. 2013-06-19 21:18:05 -04:00
Michael DeHaan d9c0a5c37d Revert "now modules can implement with_items list globbing w/o updating"
This reverts commit 4942a06bc2.

Conflicts:

	lib/ansible/runner/__init__.py
2013-06-19 19:00:18 -04:00
trbs 87c7fa9138 enable use of multiple terms in first_found 2013-06-19 16:37:29 +02:00
Jesse Keating 1074896105 make name the parameter, with hostname as alias
name is used throughout Ansible, it's the "standard". This change
applies that standard to the add_host routine and updates the docs to
reflect that. Related to https://github.com/ansible/ansible/pull/3254
2013-06-18 21:11:52 -07:00
Michael DeHaan fc2d25eb82 Merge pull request #3127 from bennojoy/devel
bug fix for #3077, environment settings for script
2013-06-18 17:57:10 -07:00
Michael DeHaan 7193ff5fbf Merge pull request #3250 from gildegoma/more_magical_ansible_ssh_user
Make 'ansible_ssh_user' available in templates
2013-06-18 17:08:29 -07:00
Michael DeHaan 92754065bf Remove debug statement. 2013-06-18 14:41:52 -04:00
Michael DeHaan 5a504e3a3b Tweak error messages for undefined variables feature. 2013-06-18 13:30:02 -04:00
Michael DeHaan 637983cf31 cleanup example config file + Squashed commit of the following:
commit c36b66dc952dfff91043ecbca56cf3f1f8f00703
Merge: 240d7bf f4cf934
Author: Michael DeHaan <michael@ansibleworks.com>
Date:   Tue Jun 18 13:04:51 2013 -0400

    Merge branch 'unevaluated-vars' of git://github.com/lorin/ansible into lorin_undefined

    Conflicts:
    	lib/ansible/runner/__init__.py

commit f4cf93436767f73b62a16067ab5e628830045896
Merge: 2531440 07a1365
Author: Lorin Hochstein <lorin@nimbisservices.com>
Date:   Thu Jun 6 11:07:41 2013 -0400

    Merge branch 'devel' into unevaluated-vars

commit 253144045cbafd7d72836f1017c62ac4ba623186
Author: Lorin Hochstein <lorin@nimbisservices.com>
Date:   Thu Jun 6 11:06:37 2013 -0400

    Fail template from file on undefined vars

    If config option is set, raise an exception if templating from a
    file and a variable is undefined.

commit aecb71d8b75257f0f3e11a9b176fc3737aecef8d
Author: Lorin Hochstein <lorin@nimbisservices.com>
Date:   Wed Jun 5 17:12:12 2013 -0400

    Add fail_on_undefined flag

    Add a fail_on_undefined flag to the template and template_from_string methods.

    If this flag is true, then re-raise the ninja2.excpetions.UndefinedError instead of
    swallowing it.

commit cbb1808f0585f01536240aee05a1bfd06c4b4647
Merge: d4bbf49 41425fb
Author: Lorin Hochstein <lorin@nimbisservices.com>
Date:   Wed Jun 5 16:14:12 2013 -0400

    Merge branch 'devel' into unevaluated-vars

commit d4bbf492b0b63c789d66ab60d0ec634d100fca82
Author: Lorin Hochstein <lorin@nimbisservices.com>
Date:   Mon Jun 3 19:46:13 2013 -0400

    template: Raise UndefinedError exception

    In template_from_string, raise an undefined error if it occurs.

    Have the caller catch it and throw an AnsibleUndefinedVariable

commit c94780280515f1f3756fdc429b2b1e87b365e9b7
Merge: 8d919d6 be33bcf
Author: Lorin Hochstein <lorin@nimbisservices.com>
Date:   Mon Jun 3 10:09:43 2013 -0400

    Merge branch 'devel' into unevaluated-vars

commit 8d919d6c97b28a42f47ca7248c542695baf6175f
Merge: 0f68ad8 b8630d2
Author: Lorin Hochstein <lorin@nimbisservices.com>
Date:   Thu May 30 16:27:48 2013 -0400

    Merge branch 'devel' into unevaluated-vars

commit 0f68ad8193ac17488e339a258f8c63fdae399c26
Author: Lorin Hochstein <lorin@nimbisservices.com>
Date:   Thu May 30 14:32:03 2013 -0400

    Optionally fail task on undefined variables

    This patch introduces a new configuration option called
    error_on_undefined_vars, which defaults to false.

    If this option is set to true, then a task which has unevaluated
    variables in its arguments will fail instead of running. Output looks
    like this:

        TASK: [set rabbitmq password] *************************************************
        fatal: [10.20.0.7] => Undefined variables: rabbitmq_user, rabbitmq_password
2013-06-18 13:24:30 -04:00
Gilles Cornu 48fe7ac19d Enlarge scope of 'ansible_ssh_user' magic variable
Allow to use ansible_ssh_user variable in `sudo_user` or `when` clauses
2013-06-18 17:53:52 +02:00
Michael DeHaan 70a9be27f6 Merge pull request #3217 from dagolden/topic/late-sudo_user
Expand sudo_user after variable merging
2013-06-16 19:56:01 -07:00
Brian Coca 4942a06bc2 now modules can implement with_items list globbing w/o updating
hardcoded lists in ansible code, just add WITH_ITEMS_USES_LIST in a
comment anywhere, and of course, support recieving params as list.

Signed-off-by: Brian Coca <briancoca+dev@gmail.com>
2013-06-15 16:28:43 -04:00
David Golden d65f45f0b2 Expand sudo_user after variable merging
Previous commit c3659741 expanded sudo_user during task construction,
but this is too early as it does not pick up variables set during
the play.

This commit moves sudo_user expansion to the runner after variables
have been merged.
2013-06-14 09:59:31 -04:00
bennojoy 017e7f24ed bug fix for #3077, environment settings for script 2013-06-05 19:59:39 +05:30
Peter Hudec e8ff3c43ad fixed first_available_file and roles support
for copy and template action
2013-06-03 22:47:50 +02:00
Steven Dossett e0a15d0c50 Updated to support inventory options from command line 2013-06-03 12:42:52 -04:00
Michael DeHaan 3b77d17a26 Spelling fix. 2013-06-02 16:03:41 -04:00
Michael DeHaan 4a93c247bd Another lookup plugin relative path tweak. 2013-06-01 18:22:56 -04:00
Michael DeHaan b8a66ce5bb Lookup plugins in included files now look in paths relative to their files, allowing role usage. 2013-06-01 18:15:38 -04:00
Michael DeHaan c4a125e6d9 Add ability to use |success and |failed as Jinja2 filters.
Example:

when: registered_variable|failed
2013-06-01 17:38:12 -04:00
Steven Dossett 1ff93e6b08 Plugin with_inventory_hostnames - loops generated from groups or
hosts in inventory
2013-06-01 11:42:44 -04:00
node a58baae2c4 Make the actual user used for executing play available as 'ansible_ssh_user' variable 2013-05-31 16:03:56 -04:00
Michael DeHaan fd77804bff Merge pull request #3017 from sergevanginderachter/roles-script
Add roles support for the script module
2013-05-29 15:54:18 -07:00
Michael DeHaan a9fcea5893 Merge branch 'escape' of git://github.com/ngrilly/ansible into repr 2013-05-29 18:29:16 -04:00
Jeremiah Heller 7de718cd51 Fix copy when force=no and update _remote_md5 docs.
Previously setting force=no caused copy to subversively
fail when target did not exist on remote host.

Caused by Runner._remote_md5 returning 1
when files don't exist, rather than 0.
2013-05-29 10:14:47 -04:00
Serge van Ginderachter 5859af7285 script support for roles: use the files/ directory
instead of an additional scripts/ directory
2013-05-25 16:51:59 +02:00
Michael DeHaan 3a635d2d26 Lots of formatting fixes 2013-05-24 23:46:23 -04:00
Michael DeHaan 84623441e1 Merge pull request #2945 from jsmartin/new_fetch
Fetch destination path can now be overriden.
2013-05-24 19:57:19 -07:00
Michael DeHaan 4fc6be8579 Merge pull request #2993 from SirScott/pkgng
Make pkgng and with_items result in a single module call.
2013-05-24 19:55:56 -07:00
Michael DeHaan 4b988dbd43 Merge pull request #2978 from bryanlarsen/basename
add basename and dirname to the core jinja2 filters
2013-05-24 19:54:36 -07:00
Michael DeHaan 27236cf598 Merge pull request #2998 from SirScott/runner-permissions
Ensure the tmp_path is sufficiently open.
2013-05-24 19:52:23 -07:00
Serge van Ginderachter 94028852d9 Make debug module always verbose in playbooks
Created a new flag 'verbose_always' handled by
on_ok callback, similar to the 'verbose_override'
flag used by the setup module.
2013-05-25 00:27:23 +02:00
Serge van Ginderachter 4c9ebe8522 Add roles support for the script module
allows to put scripts directly in a dir within the
role:

 roles/<role>/scripts/..

Same as the copy and template module.

As requested in and closes #2969
2013-05-24 22:10:46 +02:00
Nicolas Grilly 75ceb80572 Escape args injected in new style modules 2013-05-24 01:01:07 +02:00
Scott Sturdivant 5516ece859 Ensure the tmp_path is sufficiently open. 2013-05-23 12:13:09 -06:00
James Martin 3c131dbd2b Initial Commit. 2013-05-23 13:33:36 -04:00
Scott Sturdivant d91bc1692e Make pkgng and with_items result in a single module call. 2013-05-23 09:43:38 -06:00
Bryan Larsen f629baef11 add basename and dirname to the core jinja2 filters 2013-05-22 14:06:18 -04:00
Michael DeHaan 16709ecd76 Replace tab with spaces. 2013-05-19 19:26:30 -04:00
Dimos Alevizos e96bc981ce Set paramiko's logging level
Excplicity set paramiko's logging level to WARNING.
By default it inherits ansible's DEBUG logging level (set in
callbacks.py) and fills the log file with useless debug messages.
Obviously it only applies if log_path is set in ansible.cfg
2013-05-19 19:26:30 -04:00
Maykel Moya 60f24bb077 Remove unused modules 2013-05-18 23:11:47 +02:00
Maykel Moya f52e3dee70 Don't hardcode chroot executable path 2013-05-18 23:09:38 +02:00
Ben Ritcey 0938d4d89a Allow the remote MD5 checks to be run via sudo 2013-05-18 16:20:54 -04:00
Michael DeHaan 8475a92dec Merge pull request #2939 from mmoya/lookup-crypted-passwds
Add support for crypted passwords to password lookup
2013-05-18 13:17:41 -07:00
Stoned Elipot 94ba0f740a Fix for issue #2916 : for each host promote the host variables as globally scoped variables for the sake of the groups determination 2013-05-16 18:57:05 +02:00
Maykel Moya 45f5447f9f Fix name in copyright 2013-05-16 18:49:35 +02:00
Maykel Moya 96afc3f462 Add support for crypted passwords to password lookup
Added new parameter 'encrypt' with same semantics from that of
vars_prompt. When encryption is requested a random salt will be
generated and stored along the password in the form:
'<password> salt=<salt>'.

Also store passwords with an ending '\n' for easier looking at files
with console tools. File content was being already rstripped so this
is harmless.
2013-05-16 13:24:54 +02:00
Serge van Ginderachter 7eeab168bc bug fix in first_found search path assembly 2013-05-13 13:48:56 +02:00
Michael DeHaan a78edbb45c More pep8 2013-05-11 17:26:06 -04:00
Michael DeHaan 05a4513a03 Merge branch 'group-by-global' of git://github.com/stoned/ansible into devel
Conflicts:
	lib/ansible/runner/action_plugins/group_by.py
2013-05-11 14:28:04 -04:00
Michael DeHaan ad777f6538 Fix contrib link. 2013-05-11 14:03:07 -04:00
Stoned Elipot 75100201a2 Allow globally scoped variables with group_by module's conditionals and key argument 2013-05-10 00:02:14 +02:00
Michael DeHaan 9ed177e25e Merge pull request #2840 from toshywoshy/devel
Patch so that delegate_to also uses ansible_ssh_private_key_file
2013-05-05 09:45:35 -07:00
Toshaan Bharvani 62b53f4d2c changed the delegate_to to also use ansible_ssh_private_key_file from the inventory file 2013-05-05 16:54:26 +02:00
Serge van Ginderachter 53a7ab74c8 use os.path.join instead of hardcoded unix separator in first_found lookup plugin 2013-05-02 13:58:23 +02:00
Michael DeHaan a81089231e Register skipped tasks so we can at least check their changed/not-changed status. 2013-04-28 10:13:58 -04:00
Kahlil (Kal) Hodgson 9f90f0e856 fix arguments to isinstance() in env lookup 2013-04-28 14:58:26 +10:00
Matt Coddington c164609dd6 typo fix 2013-04-25 23:04:17 -04:00
Michael DeHaan 224e20ca60 complex_arg templating should be smarter. Make it so! 2013-04-25 21:11:17 -04:00
Michael DeHaan af2fb56a10 Changes to allow WANT_JSON to allow JSON to non-Python modules 2013-04-24 22:00:40 -04:00
Michael DeHaan bd0c22868e With fileglob should return full paths as in 1.1 2013-04-23 00:54:39 -04:00
Michael DeHaan 35e61d8f16 Merge pull request #2688 from dagwieers/module-global
New module 'set_fact' to define host facts
2013-04-22 21:16:46 -07:00
Michael DeHaan 9871707998 If sudoing and the sudo user is not root, the original file is saved as you, therefore delete that file as you. 2013-04-22 23:43:13 -04:00
Michael DeHaan e12f91799c Allow args: var to be used to pass a variable in bare, and also templated versions should also DWIM. 2013-04-22 22:17:55 -04:00
Michael DeHaan 5cced79cf3 Allow variables to be used raw in with_nested 2013-04-22 21:35:09 -04:00
Michael DeHaan fbea88b9d9 Allow the environment string to be referenced by a bare variable name like:
environment: foo
2013-04-22 21:29:15 -04:00
Stephen Fromm ab3cb4912e Fix test so that it is /bin/sh compliant (issue #2742)
The old test used syntax that appeared to be bash-specific and did not
work on platforms where /bin/sh did not point to bash.  See issue #2742
where copy to solaris hosts failed with the error:

    output: {'stdout': '', 'stderr': '/bin/sh: test: argument expected\n',
             'rc': 1}
2013-04-22 16:14:27 -07:00
Michael DeHaan 8e7dc3c79c Remove an extra space in the module execution line if no environment was set. 2013-04-19 08:11:56 -04:00
Dag Wieers b13beb3689 New module 'set_fact' to define host facts
This module allows you to set host facts (or export play variables to the playbook scope if you fancy that).

The module also accepts complex arguments.

```yaml
 - action: set_fact fact="something" global_fact="${local_var}"'
 - action: set_fact
   args:
      fact: something
      global_fact: ${local_var}
```
2013-04-18 23:06:58 +02:00
Seth Vidal 7b8cec3f59 clean up first_found to fix a few issues:
- add a skip option so it won't raise an exception if you don't match anything
 - make it work as a drop-in replacement for first_available_file
 - document in the module comments all of the above cases
2013-04-18 16:47:10 -04:00
C. Morgan Hamill 88eb5516eb Fix 'sequence' plugin error.
If 'terms' is a string, replace it with a single item list.
2013-04-17 11:45:28 -04:00
C. Morgan Hamill 663d37b537 Fix errors in lookup plugins.
Lookup plugins 'sequence' and 'template' now import 'ansible.utils'
appropriately in order to use the 'listify_lookup_plugin_terms'
function.

Also, 'dnstxt' and 'env' now check to see if 'terms' is a string;
without this calls like '{{ lookup('env', 'HOME') }}' fail.
2013-04-17 11:31:38 -04:00
Dale Sedivec 515fd9e915 copy action plug-in check mode respects force=no
The copy action accepts force=no, which tells it not to replace an
existing file even if it differs from the source.  The copy action
plug-in wasn't respecting this option when operated in check mode, so it
would report that changes are necessary in check mode even though copy
would make no changes when run normally.

Runner._remote_md5 was changed to make the logic for setting rc perhaps
a little more clear, and to make sure that rc=0 when the file does not
exist.
2013-04-16 20:22:51 -04:00
Michael DeHaan 7c6341718e Merge branch 'combine_vars' of git://github.com/laggyluke/ansible into exp
Conflicts:
	lib/ansible/inventory/vars_plugins/group_vars.py
	lib/ansible/runner/__init__.py
	lib/ansible/utils/__init__.py
	test/TestPlayBook.py
2013-04-16 20:06:06 -04:00
Michael DeHaan 86d47bce5f Make more lookup plugins tolerant of new variable system, with a little better 'do what I mean' logic to resolving
what happens if you get a string back as a template result.
2013-04-16 19:07:19 -04:00
Michael DeHaan c0f8af5202 Make more lookup plugins happy with newstyle variables. Not quite done, but this fixes up with_items/with_nested/file/fileglob. 2013-04-16 18:50:30 -04:00
Michael DeHaan 7037023aa8 Make debug print things nicer if {{ foo }} didn't interpolate 2013-04-12 15:02:54 -04:00
Michael DeHaan 85099be48f Merge pull request #2656 from dstoflet/first_available_file_fix
Quick fix for first_available_file and role support
2013-04-12 08:56:26 -07:00
Michael DeHaan 251f19263c Remove unneeded import. 2013-04-12 10:23:53 -04:00
Michael DeHaan 8457cf433d Update pause module to not use utils.template 2013-04-12 10:00:20 -04:00
Darryl Stoflet c63207bf75 Quick fix for first_available_file and roles 2013-04-11 20:40:23 -07:00
Michael DeHaan a05361f515 This is a fix on top of the 'airplane variable upgrade' commits that fixes legacy when_string so it evaluates correctly in the new eval construct. 2013-04-11 17:20:40 -04:00
Michael DeHaan 11a819cc4b Merge pull request #2631 from stoned/templates-filters-base64
Add base64 encode and decode filters to templates
2013-04-11 09:49:27 -07:00
Michael DeHaan a6777f7e7c Fix template call in group_by module. 2013-04-11 12:43:02 -04:00
Michael DeHaan 81a926547c Some continued work on new-style templates and associated test code changes. Legacy template functions
are marked with "legacy_" for possible future removal.
2013-04-10 19:09:57 -04:00
Michael DeHaan f0b21dcc0f allow references to names of variables in with_items without needing to surround them with Jinja2 '{{' delimeters 2013-04-10 18:42:54 -04:00
Michael DeHaan b09ef21ec9 Add code to flag legacy templating like $foo.{bar} as deprecated in favor of Jinja2 {{ foo.bar }} so we
can remove the legacy system at a later date.
2013-04-10 17:52:35 -04:00
Michael DeHaan 0113951580 Enable usage of when_set within new eval system. 2013-04-10 16:26:59 -04:00
Michael DeHaan a83e10d77d Use safe_eval vs eval. 2013-04-10 16:17:24 -04:00
Michael DeHaan fecfbf9226 Allow jinja2 evals that produce lists to be used in with_items. Ideally want something a bit less heavy
than the eval here.
2013-04-10 15:22:08 -04:00
Stoned Elipot 0893562605 Add base64 encode and decode filters to templates 2013-04-10 02:30:31 +02:00
Sébastien Bocahu b94bf051d5 Makes $PIPE and $FILE macros accept utf-8 input 2013-04-06 23:28:15 +02:00
Michael DeHaan 892484812e Much requested feature -- allows relative imports of content within roles or relative to any task or handler include (../templates for template ../files for copy) 2013-04-06 12:13:04 -04:00
Michael DeHaan 95f30f0def Complete streamlining of vars handling in playbooks and how those are templated to avoid
repeat template calls at playbook intialization time.
2013-04-06 10:45:09 -04:00
George Miroshnykov 6826aa7360 Tweaked merge_hash to also affect Runner behavior 2013-04-06 13:06:38 +03:00
Michael DeHaan f585c4cde7 Upgraded variable support met with upgraded conditional support, see examples/playbooks/upgraded_vars.yml
for details!
2013-04-05 19:10:32 -04:00
Michael DeHaan 9073aa17ab Chroot also needs args/kwargs. 2013-04-05 14:50:15 -04:00
Michael DeHaan 3d25b4a7c0 Standardize args/kwargs on connection plugins. 2013-04-05 14:50:15 -04:00
Dag Wieers d5d26bab9b Make private key customizable per host using ansible_ssh_private_key_file configurable as variable
This fixes issue #1026 for @toshywoshy together with ansible_ssh_user and ansible_ssh_port.
2013-04-05 14:50:15 -04:00
Michael DeHaan 550bf47636 Merge pull request #2565 from willthames/default_exec
Added DEFAULT_EXECUTABLE as a constant
2013-04-05 10:56:56 -07:00
Michael DeHaan f37da4fdd7 Merge branch 'ssh_config_user_overrides' of git://github.com/bcoca/ansible into devel 2013-04-05 13:09:38 -04:00
willthames e55e123c01 Added DEFAULT_EXECUTABLE as a constant
Use DEFAULT_EXECUTABLE when no executable is passed to
_low_level_command_exec

Works as a standard constant - can be overridden in all the normal ways
and defaults to /bin/sh

Motiviation is for a user that only has /bin/bash in /etc/sudoers
2013-04-04 13:32:23 +10:00
Michael DeHaan cdaa2085ee Preliminary ability to use Jinja2 {{ }} to replace ${foo.bar} in playbooks. Can't use both at the same time per line. 2013-04-03 01:04:16 -04:00
Brian Coca 82c3b4e685 now ssh connection plugin will only pass user as an option to ssh if it is
differnt from the current user. This should enable overrides for user in
.ssh/config w/o breaking any current functionality.

Signed-off-by: Brian Coca <briancoca+dev@gmail.com>
2013-03-27 16:41:54 -04:00
Michael DeHaan 0d11f53eff Let the callbacks see the playbook and (current) runner objects. 2013-03-25 22:47:06 -04:00
Michael DeHaan 783a12cc0e Resolve merge commit. 2013-03-25 22:32:01 -04:00
Michael DeHaan 3c5890f42b Ensure that when transferring a file to a directory the name of the file is the correct basename and not 'source'. 2013-03-25 22:19:35 -04:00
Michael DeHaan 7044e53e07 Allow conditionals on BYPASS_HOST_LOOP plugins like add_host 2013-03-25 21:16:18 -04:00
Rob Parrott 81e2d871aa inject a dictionary of avaiable variables and the environment into the executor, so that templates can be used to debug playbooks by dumping more of the available context. 2013-03-19 13:04:57 -04:00
Michael DeHaan a22009806e Nested iteration would make more sense in this order. 2013-03-11 17:58:27 -04:00
Michael DeHaan edc04d61f3 Added 'with_nested' lookup plugin that can easily do nested loops. 2013-03-11 17:47:57 -04:00
Michael DeHaan 298d64aa1d Quote remote md5 operations. Fixes #2368 2013-03-11 17:19:43 -04:00
Michael DeHaan e304cc3d8e Simple fix for spaces in filenames with the template module. 2013-03-11 17:13:59 -04:00
Michael DeHaan 6e2ea327d1 A very simple fix to enable spaces in the files sent via the copy module. 2013-03-11 17:11:53 -04:00
Michael DeHaan 2962073bcf Merge branch 'fix-module-encoding' of git://github.com/andreparames/ansible into devel 2013-03-18 00:17:07 -04:00
Michael DeHaan f2c8df2a93 Clarify an error message 2013-03-17 23:33:13 -04:00
Patrick Pelletier c7c7a63ee5 Add support to directly set content in copy module 2013-03-17 23:33:13 -04:00
Michael DeHaan c53653dc0d Merge pull request #2348 from candeira/password-plugin
password lookup plugin, with working tests and documentation
2013-03-10 16:31:17 -07:00
Michael DeHaan b2c8ed9cc2 Merge pull request #2279 from dorfsmay/fetch-fail_on_missing
Added a fail_on_missing option to fetch.
2013-03-10 16:18:28 -07:00
Michael DeHaan aae88baf4a Merge pull request #2260 from skvidal/path_lookup
first_found lookup_plugin - replaces first_available_file
2013-03-10 16:09:49 -07:00
Javier Candeira ca6c36e1ac password lookup plugin, with working tests and documentation 2013-03-10 13:36:53 +11:00
André Paramés 9bb8435ec9 Fixes #2346 2013-03-09 03:27:45 +00:00
Daniel Hokka Zakrisson 76f3351b02 Move complex_args templating to be with module_args
Keeps every action plugin from having to do the same thing.
2013-03-07 11:09:29 +01:00
Michael DeHaan ffbd4b5a2c Template options sooner on complex args copy 2013-03-07 00:35:40 -05:00
Michael DeHaan 2bb305f6d5 Fix args templating for complex args with the copy module. 2013-03-07 00:28:06 -05:00
Michael DeHaan 969edabdbb Merge pull request #2322 from bcoca/remote_tmp_override
added check for starting $HOME for remote_tmp so as to non root sudo override
2013-03-06 21:07:49 -08:00
Michael DeHaan 44e44cf295 Merge pull request #2320 from jkleckner/minor-spelling-fixes
Minor spelling fixes
2013-03-06 21:06:33 -08:00
Michael DeHaan fe8547cac0 Ensure template arguments if complex are still properly templated 2013-03-07 00:04:48 -05:00
Brian Coca 76f709286e added check for starting $HOME for remote_tmp so as to non root sudo override
Signed-off-by: Brian Coca <bcoca@tablethotels.com>
2013-03-06 17:32:12 -05:00
Jim Kleckner 92844d3dcd Minor spelling fixes 2013-03-06 10:41:19 -08:00
Maykel Moya e898f30f78 Fix copyright 2013-03-06 02:40:34 +01:00
Yves Dorfsman e45a0fd61d Added a fail_on_missing option to fetch. 2013-03-02 11:04:48 -07:00
Michael DeHaan 6ad390a92b Revert "Revert "for #2196 now gruopby module invalidates host cached variables so they can be reevaluated with new groups""
This reverts commit dc0515a88a.

We didn't need to revert this :)
2013-03-02 10:38:51 -05:00
Daniel Hokka Zakrisson 5d82b4b1b7 group_by needs the untemplated module_args 2013-03-02 16:30:30 +01:00
Michael DeHaan dc0515a88a Revert "for #2196 now gruopby module invalidates host cached variables so they can be reevaluated with new groups"
This reverts commit 2d86671aa5.
2013-03-02 10:21:36 -05:00
Daniel Hokka Zakrisson 43ce2caa4f Fix parse_kv invocation in group_by to use imported name
Fixes #2277.
2013-03-02 15:18:16 +01:00
Michael DeHaan 0b4ad2749a Increase error handling in the unlikely case of failing to establish a connection. 2013-03-01 21:39:50 -05:00
Michael DeHaan 7ac5e462ef Fixed a small buglet, if using with_items with yum and so on, only optimize the package list if the package list is all strings 2013-03-01 18:32:32 -05:00
Seth Vidal 804b130288 check if the term is a dict so we can take a simple list of files (like first_available_file) takes 2013-03-01 18:18:56 -05:00
Michael DeHaan b6f7a22de5 Merge pull request #2261 from bcoca/groupby_2186
now group by module invalidates host cached variables
2013-03-01 15:16:47 -08:00
Brian Coca 2d86671aa5 for #2196 now gruopby module invalidates host cached variables so they can be reevaluated with new groups
Signed-off-by: Brian Coca <bcoca@tablethotels.com>
2013-03-01 18:00:34 -05:00
Seth Vidal dfad94078b first_found lookup_plugin - replaces first_available_file
- useful in tasks/playbook inclusion
- task-specific inclusion

allows searching paths and files
2013-03-01 17:25:25 -05:00
Michael DeHaan fb26f059c5 Merge pull request #2232 from dhozac/module-args-dict
Allow specifying args directly to actions using module: syntax
2013-03-01 14:03:23 -08:00
Devin Bayer fca1167a0e add to_nice_yaml|json filters 2013-02-28 17:07:02 +01:00
Daniel Hokka Zakrisson ae8d6ac303 Ensure complex_args is considered in all action_plugins 2013-02-28 14:27:42 +01:00
Daniel Hokka Zakrisson e4b72c0fd5 Revert to just escaping \ for JSON-args 2013-02-27 19:43:27 +01:00
Daniel Hokka Zakrisson 1601f0b4d7 Use repr to transfer JSON-arguments, so Python doesn't eat things
Fixes transferring newlines in args:, as well as """.
2013-02-27 17:16:23 +01:00
Michael DeHaan 1366c663eb Merge branch 'copy-diff-take2' of git://github.com/stoned/ansible into better_diff
Conflicts:
	library/file
2013-02-26 20:51:32 -05:00
Stoned Elipot 8816dc7ca7 Make diff header lines more explicit about what the diff is about
This gives a more readable output when producing diff for a task
with multiple items (with_items).
2013-02-26 16:53:59 +01:00
Stoned Elipot 1b8c9bab35 Fix diff when template destination is absent 2013-02-26 16:45:56 +01:00
Stoned Elipot 10e9f1fc1e Implement --diff for the copy module. 2013-02-25 23:32:52 +01:00
Daniel Hokka Zakrisson e32fbd312f Shell-quote environment contents 2013-02-25 22:31:49 +01:00
Daniel Hokka Zakrisson 27f3ba53f9 Remove debug print for environment 2013-02-25 22:29:32 +01:00
Shaun Zinck e7719e4e46 pass in int() args to get_pty
If LINES or COLUMNS was set, get_pty was failing because it was
expecting an int value to be passed in.
2013-02-24 13:39:03 -06:00
Michael DeHaan 294e43ba2f Removing pipe once since it has some issues about evaluating more than once :) 2013-02-23 13:47:11 -05:00
Michael DeHaan b75b9681a8 more places to use yaml.safe_load 2013-02-23 13:34:14 -05:00
Michael DeHaan 5b31feb73b Merge pull request #2179 from skinp/host_connection
Add support for connection type in ansible_hosts file
2013-02-23 09:58:17 -08:00
Patrick Pelletier 2b4ddfb0a2 Handle delegate_to case for local connections in hosts file 2013-02-23 12:28:42 -05:00
Michael DeHaan f7fb681bb2 Fix comment in chroot connection type 2013-02-23 11:56:24 -05:00
Michael DeHaan 5a1aef5372 Merge branch 'local-chroot-support-v2' of git://github.com/mmoya/ansible into testing 2013-02-23 11:51:11 -05:00
Michael DeHaan 93f73739d3 Merge branch 'paramiko-termcap' of git://github.com/madduck/ansible into testing 2013-02-23 11:38:52 -05:00
Patrick Pelletier 4c0e6722c4 Add support for connection type in ansible_hosts file 2013-02-22 11:11:08 -05:00
Maykel Moya 9a493ef388 Add support for running modules chrooted in a local dir
Adds 'chroot' connection for executing modules chrooted to
a local dir. Requires running ansible as root.

chroot dirs should be specified in the inventory like any
other host.

You can do things like:

$ sudo -E ansible -vvv -f 1 "./chroot1,./chroot2" -c chroot \
  all -m setup
$ sudo -E ansible-playbook -vvv -f 1 -i "./chroot1,./chroot2" \
  -c chroot some-playbook.yml

some-playbook.yml:
---
- hosts: all
  tasks:
    - name: echo something
      shell: echo "Yaaay!" >/tmp/foobar.txt
    - name: install less
      apt: pkg=less state=latest
2013-02-21 00:51:02 +01:00
Michael DeHaan 6d604469d8 Always adjust file attributes with the template module. 2013-02-20 08:05:59 -05:00
Michael DeHaan ab389d8908 For consistency, add host should take a key named 'name' in addition to 'hostname'. 2013-02-17 20:45:37 -05:00
Michael DeHaan 9cf66f4376 Fixes from 'make pep8'. Partial, more to come. 2013-02-17 19:40:38 -05:00
Kavin Kankeshwar 359ac9a495 Fixing syntax error
running install_lib
byte-compiling /usr/lib/python2.6/site-packages/ansible/runner/action_plugins/add_host.py to add_host.pyc
SyntaxError: ('invalid syntax', ('/usr/lib/python2.6/site-packages/ansible/runner/action_plugins/add_host.py', 37, 92, '    def run(self, conn, tmp, module_name, module_args, inject, complex_args=None, **kwargs)\n'))
2013-02-17 15:35:58 -08:00
Daniel Hokka Zakrisson 43d22b0c42 Flatten argument to with_items
Fixes #1711.
2013-02-17 22:08:23 +01:00
Michael DeHaan 1ecf4a6943 Working on complex argument support. 2013-02-17 15:01:49 -05:00
Michael DeHaan fa21b41357 Fixup the pipe_once plugin 2013-02-17 11:42:45 -05:00
Michael DeHaan 0af83317a1 Added a $PIPE_ONCE lookup plugin, that caches the result so it is only evaluated one time. 2013-02-17 11:37:41 -05:00
Michael DeHaan b365e04616 Allow add_host to add hosts to multiple groups, groups is now an alias for groupname. 2013-02-17 11:22:50 -05:00
Rob Parrott ef17fc9f20 add the ability to take variables in the add_host module, and be willing to parse a host:port hostname handed to add_host 2013-02-16 20:27:38 -05:00
Michael DeHaan c8878998d1 update some of many copyright dates but we can just do this when editing each file, not super high priority 2013-02-16 15:32:01 -05:00
Blair Zajac fa8e653011 Simplify and correct comparisons with None. 2013-02-16 13:32:48 -05:00
martin f. krafft ab39909260 Initialise PTY from calling environment
If we need to acquire a PTY for sudo's use, then it should really
inherit the capabilities of the calling environment. This is what
OpenSSH does, and so it makes sense to copy this behaviour for the
paramiko connection type.

Closes: #2065
Signed-off-by: martin f. krafft <madduck@madduck.net>
2013-02-15 10:23:34 +13:00
martin f. krafft 1cf43e9afe Only allocate a PTY when sudo is used
Postpone the paramiko.Channel.get_pty until we know sudo is used. If
sudo is not used, then we do not need a PTY. In fact, the paramiko docs
explicitly state that it's not desirable to allocate a PTY for a simple
exec_command.

Signed-off-by: martin f. krafft <madduck@madduck.net>
2013-02-15 10:17:43 +13:00
Daniel Hokka Zakrisson 7e2999ed2d Add directory detection to _remote_md5 and use this in copy
If it is a directory, change the destination path by appending the
basename of the source file, like is done if the destination ends with a
/, and try to get the MD5 of the new path.
2013-02-12 22:39:05 +01:00