James Cammarata
8a3f8b757b
Make sure yaml data loaded for role is valid before using it
...
Fixes #4322
2013-10-01 10:52:39 -05:00
James Cammarata
bff47df5ff
Fix issue with ast evaluation of strings
2013-10-01 09:20:48 -05:00
James Cammarata
5b205ae8bd
Merge branch 'fixes/subprocess' of https://github.com/ferringb/ansible into ferringb-fixes/subprocess
2013-09-30 23:30:43 -05:00
James Cammarata
d89ce6ac61
Merge branch 'patch-1' of https://github.com/ustun/ansible into ustun-patch-1
2013-09-30 23:20:44 -05:00
James Cammarata
12a21d94b7
Merge branch 'allow_types_in_ini' of https://github.com/bcoca/ansible into bcoca-allow_types_in_ini
2013-09-30 22:56:07 -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
7aad576f5f
Minor change to add a space around role name/task delimiter
2013-09-30 21:51:39 -05:00
James Cammarata
1cc1e7058b
Merge branch 'role_report_fix1' of https://github.com/bennojoy/ansible into bennojoy-role_report_fix1
2013-09-30 21:25:11 -05:00
James Cammarata
8ed343cc36
Merge branch 'jsmartin-hide_skipped_hosts' into devel
2013-09-30 21:07:33 -05:00
James Cammarata
6cd8aacc81
Merge branch 'hide_skipped_hosts' of https://github.com/jsmartin/ansible into jsmartin-hide_skipped_hosts
2013-09-30 20:22:53 -05:00
James Cammarata
52a42bf607
Add more verbose debugging options for accelerate
2013-09-30 14:08:07 -05:00
Michael DeHaan
ac0a7d965a
Merge pull request #4306 from sivel/3563-glob
...
Add fileglob Jinja2 filter. Fixes #3563
2013-09-30 11:17:31 -07:00
Matt Martz
535ce97067
Add fileglob Jinja2 filter. Fixes #3563
2013-09-30 12:55:13 -05:00
Brian Harring
d0ad6c581b
For defaults that are integers, enforce it for config supplied values.
...
If a user supplies a string in the config (rather than an int), the code
should fix that- or blow up immediately- rather than allowing that value to
work it's way down and break w/in the connection object; when that happens,
the actual error is opaque and requires pdb.set_trace() to run down.
2013-09-29 23:56:41 -04:00
Brian Harring
2174230315
USE subprocess.Popen API correctly.
...
When collecting stdout/stderr *and* feeding data into a Popen instance,
communicate() must be used to avoid a known deadlocking scenario
when data sizes cross PIPE_BUF (which can be as small as 512, although should
be much larger in practice on linux).
2013-09-29 23:22:09 -04:00
Ustun Ozgur
977b31249a
Update cache check in find_plugin
...
I am not familiar with the internals, but this line looked suspicious.
2013-09-29 14:03:10 +03: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
James Cammarata
039d4c95d9
Merge pull request #4221 from ashorin/unicode-md5
...
Prevent UnicodeEncodeError: 'ascii' codec can't encode characters in pos...
2013-09-27 08:50:44 -07:00
Brian Coca
771435deb4
now ini vars are typed
...
Signed-off-by: Brian Coca <briancoca+dev@gmail.com>
2013-09-26 18:29:17 -04:00
James Martin
d5f20e6b21
Optionally display Skipping [host] messages.
2013-09-26 10:03:23 -04:00
bennojoy
482cb72128
role report fix
2013-09-26 19:20:14 +05:30
Matt Coddington
7f7116de3b
commit 9db4f7a
made a change that also needed to include this to retain correct legacy_playbook_variables behavior
2013-09-25 23:22:09 -04:00
Preston Marshall
3ee7b177e8
Allow storing input from user in a pause prompt
2013-09-25 17:28:25 -05:00
James Cammarata
1c97831288
Merge branch 'empty_inventory' of https://github.com/spil-jasper/ansible into spil-jasper-empty_inventory
2013-09-25 15:54:05 -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
Jasper Capel
d4dec5f577
Allow creating empty inventory
...
Instantiating the Inventory class with host_list=None now results in an
empty inventory instead of an error.
2013-09-25 15:00:35 +02:00
nextus
ca96d74572
#4227 in upstream repo
2013-09-25 16:15:49 +04:00
Andrey Shorin
fd101dd2d6
Encode to utf-8 only when needed
2013-09-25 09:29:57 +04:00
Andrey Shorin
21f5bc4242
Prevent UnicodeEncodeError: 'ascii' codec can't encode characters in position ...: ordinal not in range(128)
2013-09-25 09:29:56 +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
1f674c4a50
Merge branch 'fix_selinux_debian' of https://github.com/mscherer/ansible into mscherer-fix_selinux_debian
2013-09-21 00:32:40 -05:00
Alek Storm
3569a2ffee
Handle AnsibleUndefinedVariable's raised from lookup plugins like jinja2 UndefinedError's
2013-09-20 19:56:12 -05:00
James Cammarata
47b9cc6311
Merge branch 'meta-roles' of https://github.com/eggsby/ansible into eggsby-meta-roles
...
Conflicts:
lib/ansible/playbook/play.py
2013-09-20 16:17:40 -05:00
James Cammarata
27e8675277
Make the role_name in the task its own field for use in the callback
2013-09-20 15:46:34 -05:00
James Cammarata
98cfcec5e2
Correct role name detection
2013-09-20 12:10:24 -05:00
James Cammarata
8dcf386def
Don't set the role name on handlers as this breaks notifications
2013-09-20 09:34:14 -05:00
James Cammarata
a5ee6ff1e5
Display parent role name of tasks in the name line
...
Fixes #4076
2013-09-19 20:44:52 -05: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
Thomas Omans
91a4ba2248
allowing a roles to do be made out of dependencies alone
2013-09-18 21:29:37 -07:00
James Cammarata
503f062521
Merge branch 'ferringb-fixes/configurable-ControlPath' into devel
2013-09-18 21:12:15 -05:00
Michael DeHaan
20708e31b1
Merge pull request #4133 from skyl/DIST_MODULE_PATH
...
DEFAULT_MODULE_PATH in setup.py
2013-09-18 18:15:18 -07: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
Stephen Fromm
27b5c2e28c
Fix how module_common handles selevel (issue #4142 )
...
Two fixes:
* parameter name is selevel, not serange.
* Fix split on selinux context to limit to max of 4 since the selevel
may contain ':' characters. This was fixed in
selinux_default_context() and selinux_context().
2013-09-17 14:47:00 -07:00
Skylar Saveland
50bd14faa9
use DEFAULT_MODULE_PATH in setup.py so that there is a chance to override with ANSIBLE_LIBRARY env variable
2013-09-16 19:08:22 -07:00
Les Aker
98bf473cb2
fixes for PTY handling
2013-09-16 17:44:32 -04:00
James Cammarata
458f71b53c
Merge branch 'issue_4129_role_defaults_empty_yaml' into devel
...
Conflicts:
lib/ansible/playbook/play.py
2013-09-16 16:21:06 -05:00
James Cammarata
091a90ee8b
Allow includes to follow the standard format
...
Previously, includes had to receive variables via a special 'vars'
field. With this patch, the include syntax becomes a more natural
datastructure without special fields and is more akin to the way
role includes/dependencies work.
Tested with the following playbook:
---
- hosts: localhost
connection: local
tasks:
- { include: inc1.yml, a: 1 }
- include: inc2.yml
b: 2
- include: inc3.yml
with_items:
- x
- y
- z
Fixes #3481
2013-09-16 16:12:36 -05:00
Skylar Saveland
8dc31f3093
ANSIBLE_DIST_MODULE_PATH environment variable
2013-09-16 13:43:20 -07:00
James Cammarata
c5bb1394b9
Check to make sure default_vars in the datastructure isn't empty
...
Fixes #4129
2013-09-16 13:16:06 -05:00
James Cammarata
5b15010099
Merge branch 'issue_3312_role_links' into devel
2013-09-16 09:29:25 -05: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
aac3090909
Merge branch 'play_remote_user' of https://github.com/bcoca/ansible into bcoca-play_remote_user
2013-09-16 05:55:14 -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 DeHaan
5c0dd958e5
Merge pull request #4028 from willthames/lineinfile_userdir
...
Expand tilde in paths in file module
2013-09-15 09:33:49 -07:00
Michael Scherer
5e1828a524
add jail module, based on lxc and chroot connexion plugin
2013-09-15 17:26:48 +02:00
Michael DeHaan
1f0eb32846
Update 1.4 specfile -- no need for node fireball package, release dates
2013-09-13 17:31:34 -04:00
James Cammarata
35d138a0d6
When checking conditionals, don't dereference when the variable contains dashes
...
Fixes #4104
2013-09-13 13:52:58 -05:00
James Cammarata
d0236f6ada
Check for link in path in utils.path_dwim_relative()
...
This allows an included path to be relative to a directory, if the
basedir of the original path is a symlink. In that case, the path
is normalized and the file is searched for in the normalized path.
Fixes #3312
2013-09-12 20:44:10 -05: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
James Cammarata
75a9357e5e
Fixing role variable precedence for top-level roles
...
Fixes #4026
Fixes #3989
2013-09-09 15:14:03 -05:00
James Cammarata
294451d002
Correctly handle variable issues when evaluating jinja2 when statements
...
Fixes #4025
2013-09-09 14:50:21 -05:00
James Cammarata
bcc2a4b513
Minor fix so the any_errors_fatal value is checked properly
2013-09-09 10:20:41 -05:00
James Cammarata
4025695c00
Merge branch 'devel' of https://github.com/kavink/ansible into kavink-devel
2013-09-09 10:00:29 -05: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
Brian Coca
d47c48e30a
Added remote_user to plays
...
Still compatible with user: but deprecating it so we can have
a matching remote_user: in tasks, cannot be user: because of the
module of the same name. #3932
Signed-off-by: Brian Coca <briancoca+dev@gmail.com>
2013-09-07 16:34:22 -04:00
Kavin Kankeshwar
c24f6f438b
Avoid ugly formatting due to a long if statement
2013-09-06 22:37:17 -07:00
James Cammarata
6e9fa5019f
Reverting HostVars change from a mapping back to a dictionary
2013-09-06 20:24:16 -05:00
James Laska
546788a1b6
The required package for selinux is libselinux-python
2013-09-06 16:26:48 -04:00
James Cammarata
4e9dee6093
Use StringIO to feed md5 calculation to prevent unicode issues
...
Fixes #4014
2013-09-06 09:11:47 -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
willthames
fe70ed94e3
Expand tilde in paths in file module
2013-09-05 16:28:26 +10:00
guersam
64db327411
Fix: raise correct error in accelerate mode
2013-09-05 15:10:45 +09:00
kavink
a075ec9831
Bug fix for a crash, when any_errors_fatal is true
...
Reported by Rumen:
TASK: [fail FAIL] *************************************************************
skipping: [hostname.com]
failed: [hostname.com] => {"failed": true}
msg: Failed as requested from task
Traceback (most recent call last):
File "/usr/local/bin/ansible-playbook", line 268, in <module>
sys.exit(main(sys.argv[1:]))
File "/usr/local/bin/ansible-playbook", line 208, in main
pb.run()
File "/Library/Python/2.7/site-packages/ansible/playbook/__init__.py", line 262, in run
if not self._run_play(play):
File "/Library/Python/2.7/site-packages/ansible/playbook/__init__.py", line 580, in _run_play
if (hosts_count - len(host_list)) > int((play.max_fail_pct)/100.0 * hosts_count):
TypeError: object of type 'NoneType' has no len()
2013-09-04 18:30:33 -07: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
7b13b1e03e
Minor fix to dependency dupe patch
2013-09-04 11:26:49 -05:00
James Cammarata
16258edd7a
Merge branch 'devel-duplicates2' of https://github.com/smoothify/ansible into smoothify-devel-duplicates2
2013-09-04 10:13:06 -05:00
James Cammarata
a202adcae1
Merge branch 'doublecallback' of https://github.com/sergevanginderachter/ansible into sergevanginderachter-doublecallback
2013-09-04 09:58:06 -05:00
smoothify
5337397abd
Second Attempt: Ensure duplicate roles are not loaded in the case of a missing meta/main.yml file.
2013-09-04 15:50:39 +01:00
James Cammarata
c0fecf87d1
Increase default socket timeout to 5 minutes
2013-09-04 09:47:40 -05:00
smoothify
0411ea2867
Ensure duplicate roles are not loaded in the case of a missing meta/main.yml file.
2013-09-04 12:38:42 +01:00
James Cammarata
2e49d2003d
Fix bug where accelerate keyword was not checked for boolean value
...
The play was just checking for the presence of the keyword in the
YAML datastructure, and not the value of the field, so doing something
like variable substitution was always causing the play to be accelerated
2013-09-03 14:20:56 -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
7c1c9b3d10
Fix message in utils related to python-keyczar and fireball/acc mode
2013-09-03 11:16:50 -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
50f54f6bda
Making variable names more descriptive for the default variables work
2013-09-02 21:37:50 -05:00
James Cammarata
02b7b79d7e
Re-adding capability of tasks to see a unique view of their own defaults
2013-09-02 21:37:50 -05:00
Stoned Elipot
6cbd94dfae
Avoid duplicates of the 'all' group when using inventory script.
...
Do not recreate an 'all' group when it is in the inventory script's
output, but use the one created upfront.
2013-09-02 12:26:02 +02:00
James Cammarata
266d2008d8
Reverting the role default variables change
...
Loading the default variables in _build_role_dependencies() lead to
a side-effect where those variables were over-riding inventory variables.
2013-09-01 08:53:59 -05:00
James Cammarata
47a89a57fa
Fixing bug in playbook use of default variables in roles
2013-09-01 08:49:41 -05:00
James Cammarata
e0df5b5888
A couple more tweaks to role default variables/dependencies
...
* Default variables are now fed directly into roles, just like the
other variables, so that roles see their unique values rather
than those set at the global level.
* Role dependency duplicates are now determined by checking the params used
when specifying them as dependencies rather than just on the name of the
role. For example, the following would be included twice without having
to specify "allow_duplicates: true":
dependencies:
- { role: foo, x: 1 }
- { role: foo, x: 2 }
2013-09-01 00:43:16 -05:00
James Cammarata
d69d5c294f
Renaming fireball2 as 'accelerate' and removing old references
2013-08-30 13:26:27 -05:00
James Cammarata
736c8b19d3
Added ability to limit role dependencies to just one inclusion
2013-08-30 12:42:27 -05:00
James Cammarata
6f6efa268b
Merge branch 'smoothify-defaults' into devel
2013-08-30 08:40:47 -05:00
James Cammarata
25e3eed519
Fixing a bug in variable precedence for roles and dependencies
2013-08-30 01:20:45 -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
f66683863e
Merge branch 'defaults' of https://github.com/smoothify/ansible into smoothify-defaults
2013-08-28 16:24:37 -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
James Cammarata
fd2aabaa27
Initial work for the AES cipher class
...
This is based somewhat loosely on how Keyczar does things. Their
implementation does things in a much more generic way to allow for more
variance in how the cipher is created, but since we're only using one
key type most of our values are hard-coded. They also add a header to
their messages, which I am not doing (don't see the need for it
currently).
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
Michael DeHaan
cce7f485b8
Merge pull request #3946 from wincent/spelling-fix
...
Fix minor typo in playbook error message
2013-08-25 17:23:30 -07:00
Wincent Colaiuta
fc4307a9c4
Fix minor typo in playbook error message
2013-08-25 11:29:07 -07:00
James Cammarata
88966e6558
Use AnsibleError instead of exit for errors in utils
2013-08-25 11:46:45 -05:00
Jocelyn Jaubert
4cee6a5435
Add option remote_user to task level, to specify the ssh login user
2013-08-23 23:20:13 +02: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
e11bb0cad4
Merge branch 'plugins-work' of https://github.com/ferringb/ansible into ferringb-plugins-work
2013-08-22 14:23:25 -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
ed3e4aff84
Place retry file in the user's home dir instead of /var/lib/tmp
...
Addresses CVE-2013-4260: predictable filename used for failed results
in world writable directory.
2013-08-21 11:40:46 -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
Kavin Kankeshwar
7ac3bbc198
resolved #3609 Change max_fail_pct to max_fail_percentage as recommended
2013-08-20 13:55:34 -05:00
Kavin Kankeshwar
3f247fcbe3
fixes ansible/ansible#3609 Add max_fail_pct to playbook parameter, to complement serial option, So if total number of failures execeed max_fail_pct * total number of hosts, do not go to the next serial batch
2013-08-20 13:55:22 -05:00
smoothify
494043947d
Add support for role defaults. These are variables on a per role basis with lowest precedence.
2013-08-20 10:11:39 +01:00
Petr Svoboda
e3adfbf5f8
Add tests for undefined variable detection
...
Tests `test_playbook_undefined_varsX_fail` check if ansible detects
undefined variables when `error_on_undefined_vars` is enabled. These
tests fail without "Improve behavior with error_on_undefined_vars
enabled" patch.
Tests `test_playbook_undefined_varsX_ignore` check if ansible ignores
undefined variables when `error_on_undefined_vars` is disabled.
Also modify PlayBook._run_task_internal() so error_on_undefined_vars is
testable.
2013-08-20 00:40:49 -05:00
Petr Svoboda
fff4f1da33
Improve behavior with error_on_undefined_vars enabled
...
Pass fail_on_undefined flag to recursive calls to `template` function,
so more undefined variables are detected.
Works only for Jinja style variables. Undefined legacy variables are
never detected.
2013-08-20 00:40:49 -05: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
Brian Harring
902183ac0e
Enforce alphanumeric ordering for plugins grabbed via glob.
...
If this isn't done, it's left to directory ordering which can result
in indeterminent behaviour.
2013-08-19 19:48:17 -04:00
James Cammarata
39628d012d
Minor fix to ipv6 detection for inventory with -i
...
For link-local addresses, it is sometimes necessary to append the
interface to use for the ipv6 address. This patch extends the ipv6
regex to allow for '%ifnameX' at the end.
See https://bugzilla.redhat.com/show_bug.cgi?id=136852 for more info
2013-08-19 15:27:21 -05: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 Scherer
c9d28e10ad
add support for using a ipv6 in -i
...
testing with a ipv6 :
ansible -u misc -i '[2002::c23e]:22,' '*' -m ping
fail due to parsing of ':' as a separator of port/ip with ipv4.
This commit add support for properly parsing 2002::c23 and the
bracket notation [2002::ce]:2222
2013-08-19 15:27:20 -05:00
Matt Saunders
9fd1b174f5
Fixed tiny bug with _meta handling in external inventory scripts
2013-08-19 18:54:30 +01:00
James Cammarata
5847720746
Fixing a small bug with the new role dependency feature
...
The block that added the original list of roles was indented too far,
and was only being reached if a role had dependencies. This resulted
in roles without dependencies from being added to the list of roles.
Credit goes to looped for reporting and diagnosing the issue.
2013-08-17 00:06:24 -05:00
Michael DeHaan
42648e2f0a
Merge branch 'role_dependencies' of git://github.com/jimi1283/ansible into jimi1283-role_dependencies
2013-08-16 21:42:57 -04: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
James Cammarata
d8a7a2d1b2
Adding evaluation of role vars as the dep tree is built
...
This allows variables to be inserted into the role scope specifically
while also being inserted into the global scope.
2013-08-15 20:53:23 -05:00
James Cammarata
e12b99dba6
Small cleanup, no need to call _get_role_path a second time
2013-08-15 09:29:51 -05:00
James Cammarata
9a401e73a6
Adding support for role dependencies.
...
Fixes #3686
Dependencies are enabled by adding a new directory/file named
meta/main.yml to the role. The format of the dependencies are:
dependencies:
- { role: foo, x: 1, y: 2 }
- { role: bar, x: 3, y: 4 }
...
Dependencies inherit variables as they are seen at the time of the
dependency inclusion. For example, if foo(x=1, y=2) has a dependency
on bar(x=3,z=4), then bar will have variables (x=3,y=2,z=4).
Different roles can have dependencies on the same role, and this
variable inheritence allows for the reuse of generic roles quite easily.
For example:
Role 'car' has the following dependencies:
dependencies:
- { role: wheel, n: 1 }
- { role: wheel, n: 2 }
- { role: wheel, n: 3 }
- { role: wheel, n: 4 }
Role 'wheel' has the following dependencies:
dependencies:
- { role: tire }
- { role: brake }
The role 'car' is then used as follows:
- { role: car, type: honda }
And tasks/main.yml in each role simply contains the following:
- name: {{ type }} whatever {{ n }}
command: echo ''
TASK: [honda tire 1]
TASK: [honda brake 1]
TASK: [honda wheel 1]
TASK: [honda tire 2]
TASK: [honda brake 2]
TASK: [honda wheel 2]
TASK: [honda tire 3]
TASK: [honda brake 3]
TASK: [honda wheel 3]
TASK: [honda tire 4]
TASK: [honda brake 4]
TASK: [honda wheel 4]
TASK: [I'm a honda] <- (this is in roles/car/tasks/main.yml)
2013-08-15 09:29:51 -05:00
James Cammarata
ad595eadea
Enable error_on_undefined_vars by default
2013-08-15 09:28:34 -05:00
Michael Scherer
12bf9a8b69
add a way for callback to disable itself
...
The idea is that some plugin would not be called in some
specific case, and the callback should decide by itself.
Having a way to globally disable it is much cleaner than
disabling every method one by one on the plugin side.
My use case is for fedora-infrastructure that cannot be run
from git checkout since it try to connect to the message bus,
but another case would be to bootstrap infrastructure, or to
run the code on a test servers without having all the callback
infrastructure setup.
2013-08-14 22:32:28 +02: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
Serge van Ginderachter
173586b871
Ensure plugin_loader.all() only loads one instance
...
by ensuring all basedirs, plugin paths and extra
paths are handled as absolute paths and are checked
to not add any doubles.
This fixes the corner case where e.g. the user has
an additional plugin path configured to a dir
relative to his playbooks or inventory location,
which also matches the _plugin subdir relative to
one of the basedirs in the play.
For most plugins this doesn't show as an obvious issue
except for callback_plugins, which might fire more
than once. Other plugins (inventory and template
plugins) might unnecessarily be ran twice.
e.g. ansible.cfg has
callback_plugins = ./plays/callback_plugins
and plays/ contains a playbook file:
.
├── ansible.cfg
├── inventory
└── plays
├── callback_plugins
│ └── timestamp.py
└── site.yml
modified: lib/ansible/utils/plugins.py
2013-08-12 22:17:53 +02:00
Michael DeHaan
bc02e20503
Merge branch 'rsynctake2' into devel
...
Conflicts:
CHANGELOG.md
2013-08-11 16:22:36 -04:00
Michael DeHaan
17aa0d12de
Merge pull request #3814 from ftao/inventory_dir_abs
...
fix inventory.basedir is not absolute path when hostfile is startswith "./"
2013-08-11 08:46:08 -07:00
Abhijit Menon-Sen
1a90d01ba9
Fix some typos discovered during casual reading
2013-08-11 18:41:23 +05:30
ftao
51a180b150
fix inventory.basedir is not absolute path when hostfile is startswith "./"
2013-08-11 10:50:47 +08:00
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 DeHaan
baffa8df72
These fields are booleans.
2013-08-10 18:16:01 -04:00
Michael DeHaan
633abca916
Merge branch 'nocolor' of git://github.com/amenonsen/ansible into devel
2013-08-10 18:11:27 -04:00
Michael DeHaan
ee11d69697
Merge branch 'better_ini_errors2' of git://github.com/bcoca/ansible into devel
2013-08-10 18:01:17 -04: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
James Cammarata
ceff3b6ba3
Minor modification to set_fact with_items patch
...
Previous patch was reverted due to the fact that there was an issue
with the results not always being a dictionary (they're sometimes
a unicode string, ie. when the with_items is used with yum). This
minor change corrects that by checking for a dict object.
2013-08-09 07:52:14 -05:00
James Cammarata
8be2fc745b
Revert "Check for ansible_facts in results for with_ tasks"
...
This reverts commit 1a4e6e415e
.
2013-08-08 20:32:30 -05:00
Serge van Ginderachter
1a4e6e415e
Check for ansible_facts in results for with_ tasks
...
that loop over a lookup plugin. Fixes #3704 and #3735
2013-08-08 12:30:32 -05:00
Serge van Ginderachter
40e60c947d
Host specifiers should be sorted
...
to ensure consistent behavior, hosts should look like this:
hosts: webservers:&boston:!rack42
So when applying the host selectors, run those without the "&" first,
then the &s, then the !s.
Closes #3500
2013-08-08 18:32:24 +02:00
Abhijit Menon-Sen
0c96d8af6e
Add a nocolor setting to ansible.cfg
2013-08-08 21:37:33 +05:30
Brian Coca
a937a6a66d
now bad ini entries will throw friendlier error
...
Signed-off-by: Brian Coca <briancoca+dev@gmail.com>
2013-08-07 12:49:12 -04:00
Michael DeHaan
4cbfe3be57
Merge pull request #3773 from cchurch/devel
...
Update callbacks used for async tasks
2013-08-06 13:32:53 -07:00
Michael DeHaan
ff44c981e9
Merge pull request #3770 from rishid/devel
...
Add support for INI comments that begin with '#' or ';'
2013-08-06 13:29:39 -07:00
Michael DeHaan
99775176ff
Merge pull request #3623 from ralph-tice/fix_3567_2
...
changed role path template to read all vars instead of just extra_vars
2013-08-06 13:26:59 -07: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
rishid
d18c90ed8f
Add support for INI comments that begin with '#' or ';'
...
Ini file format does not have a standard but ';' is used more often than '#' for comments
2013-08-06 11:41:07 -04:00
Michael Scherer
3fb2da6359
use lgetfilecon_raw instead of lgetfilecon to not depend on local level translation
...
If SELinux is enabled and mcstrans is running, daemons are restarted on each
run. After further debugging, it turn out that ansible compare the untranslated
level 's0' with the translated level 'SystemLow' due to mcstrans being running,
which trigger a handler since this is considered as a change.
2013-08-05 23:54:08 +02:00
Michael DeHaan
56a00e0667
Remove dead code.
2013-08-05 16:13:50 -04:00
Michael DeHaan
8955ac1eda
If the result of a dynamic inventory script contains a "_meta" hash at top level
...
and the _meta hash contains a "hostvars", don't call --host hostname for any elements
and just serve them directly for performance enhancements with the external inventory
script and a large number of hosts.
2013-08-04 11:34:42 -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
dec43f7a2b
PEP8 indent fix.
2013-08-03 14:54:37 -04:00
Michael DeHaan
3dbe65def2
PEP8 indent fix
2013-08-03 14:54:24 -04: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
82c806979b
Only use LOG_LOCK in log_flock if a runner is not specified
...
Fixes issue #3466 - When ansible can't authenticate against a host,
and your answer is no, ansible crash.
2013-08-03 13:28:19 -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
Brian Coca
581a0c9f59
now correctly 'types' value pairs that are passed as options to jinja
...
override
Signed-off-by: Brian Coca <briancoca+dev@gmail.com>
2013-08-01 21:08:23 -04:00
Michael DeHaan
0335d05f43
Check against None around playbook basedir
2013-08-01 20:44:19 -04:00
Michael DeHaan
bdef7f1774
Merge pull request #3711 from ashorin/devel
...
Allow --diff on UTF-8 encoded files and templates
2013-08-01 17:16:32 -07:00
Michael DeHaan
44d060628e
Merge pull request #3706 from lorin/sudo_user_breakage
...
Fix sudo_user copy error
2013-08-01 17:15:26 -07:00
Michael DeHaan
daf5ecc7c9
Merge pull request #3684 from stoned/fix-3668
...
Add extra module path early during playbook parsing.
2013-08-01 17:14:35 -07:00
Michael DeHaan
83481b32cc
Merge pull request #3657 from zqad/devel
...
Fix playbook-local host_vars when running from .
2013-08-01 17:13:04 -07:00
Michael DeHaan
3ebbb56479
Merge pull request #3654 from MaxIV-KitsControls/devel
...
Fix nested loop for more than 3 elements
2013-08-01 17:11:26 -07:00
Michael DeHaan
7813290969
Merge pull request #3645 from stoned/stringify-conditional-2
...
stringify conditional before handing it to Jinja2 for evaluation.
2013-08-01 17:08:34 -07:00
Andrey Shorin
664215eb02
Allow --diff on UTF-8 encoded files and templates
2013-07-31 15:58:32 +04:00
Lorin Hochstein
a303fca193
Fix sudo_user copy regression
...
Treat errno 13 (permission denied) as one of the special cases in
atomic_move.
This type of error can occur because of sudo'ing to non-root user.
Fixes #3705
2013-07-30 16:14:29 -04: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
Stoned Elipot
841093921b
Add extra module path early during playbook parsing.
...
This should fix issue #3668
Also prevent an extra module path to be added multiple times.
2013-07-28 18:47:26 +02:00
Jonas Eriksson
16efb45735
Fix playbook-local host_vars when running from .
...
Since ansible 1.2, it became possible to place a host_vars
directory in the same directory as a playbook, making it possible
to keep host_vars local to that playbook there. However, due to
python's os.path.dirname, a action such as:
$ ansible-playbook pb.yml
..would not pick up the host_vars as os.path.dirname("pb.yml")
returns "", unlike the unix command dirname that would return
".". Substituting "pb.yml" on the command line with "./pb.yml"
would do the trick, but is not always intuitive. This patch
solves the problem until python solves issue18547 [1].
[1] http://bugs.python.org/issue18547
2013-07-24 18:33:06 +02: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
Stoned Elipot
a1503c4d59
stringify conditional before handing it to Jinja2 for evaluation.
...
This should fix simple conditionals like:
when: ansible_selinux
While here add tests for ansible.utils.check_conditional() in
"jinja2_compare mode".
2013-07-23 22:24:53 +02:00
WAKAYAMA Shirou
0ce99e391f
fix: if a path is symlink and trying to chmod, OSError Exception will be raised.
2013-07-23 22:14:48 +09: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
Ralph Tice
2383a8205c
changed role path template to read all vars instead of just extra_vars
2013-07-22 09:59:26 -05: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
0756aa406a
Change conditional operation workflow.
...
Conflicts:
lib/ansible/utils/__init__.py
2013-07-21 10:37:02 -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
f592340f7f
Merge branch 'playbook-skip-tags' of git://github.com/dekked/ansible into skip_tags
2013-07-21 09:43:23 -04:00
Michael DeHaan
3baa55a314
Merge branch 'devel' of git://github.com/sjmudd/ansible into sjmudd_ranges
2013-07-21 09:31:46 -04:00
Michael DeHaan
62b39d3de5
Fix for saving conditionals in variable expressions.
2013-07-21 08:52:00 -04:00
Michael DeHaan
bf70dfc1a0
When a role/include has a conditional, add that conditional ahead of any on the task, not behind, so it can short circuit.
2013-07-20 18:34:24 -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
Michael DeHaan
192d9f8b89
Merge pull request #3607 from stoned/use-AnsibleFilterError
...
Use AnsibleFilterError exception
2013-07-20 14:58:48 -07:00
Stoned Elipot
667ad2480e
Use AnsibleFilterError exception
2013-07-20 23:39:25 +02:00
Stoned Elipot
e7a733a6be
Quote pathnames of roles' tasks and handlers files so that _load_tasks() can tokenize them properly
...
With the help of AlejandroTrev's eagle eyes. Thanks !
2013-07-20 23:25:46 +02:00
Michael DeHaan
0f26439234
Remove variable per pyflakes
2013-07-20 12:52:17 -04: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
Brian Coca
dafbcf87d3
changed atomic_move to be more 'optimistic' which helps deal with corner
...
cases and avoid usless work.
Signed-off-by: Brian Coca <briancoca+dev@gmail.com>
2013-07-20 12:07:00 -04:00
Michael DeHaan
c10c2cae4e
Merge branch 'ansible_sudo_at_role_level' of git://github.com/jeromew/ansible into sudo_role
2013-07-20 11:05:38 -04: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 DeHaan
7d2585caf7
Merge pull request #3577 from Tinche/extra-vars-in-playbook-includes
...
Enabled the use of extra vars in playbook file paths when including play...
2013-07-20 07:37:35 -07:00
Brian Coca
c8d6e5be0b
missing self in self method usages
...
Signed-off-by: Brian Coca <briancoca+dev@gmail.com>
2013-07-19 14:46:35 -04: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
Michael DeHaan
5eea4b56fa
Merge pull request #3591 from cocoy/fix_3567
...
Allow roles to be interpolated from --extra-vars
2013-07-19 06:04:59 -07:00
Michael DeHaan
7965bc729b
Merge pull request #3588 from Atte/devel
...
Check for existence of isatty on stdout before calling it
2013-07-19 06:04:31 -07:00
Rodney Quillo
a4e829c874
Allow roles to be interpolated from --extra-vars
2013-07-19 18:28:21 +08:00
Atte Virtanen
511c7c858d
Check for existence of isatty on stdout before calling it
2013-07-19 11:06:31 +03:00
Brian Coca
f6c99a69db
switched from sestatus to selinuxenabled as per recommendation
...
Signed-off-by: Brian Coca <briancoca+dev@gmail.com>
2013-07-19 00:55:41 -04:00
Brian Coca
98cc29f9fd
now returns fatal error if operation on selinux enabled target is
...
attempted w/o selinux python bindings
Signed-off-by: Brian Coca <briancoca+dev@gmail.com>
2013-07-18 22:06:26 -04:00
jeromew
de0bc96b70
Implement sudo/sudo_user at the include and role levels
2013-07-18 22:32:56 +00:00
Tin Tvrtkovic
4a732c1e9f
Enabled the use of extra vars in playbook file paths when including playbooks from other playbooks.
2013-07-18 22:45:18 +02: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
Alan Descoins
04349ec362
Added --skip-tags option to ansible-playbook.
2013-07-16 19:43:58 -03:00
Antti Rasinen
b12cc909a9
Fix pretty_bytes for exa- and zettabytes
2013-07-16 13:09:56 +03: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
fba1f7ef42
Revert "expand vars like $HOME used in config values too" -- breaks remote_tmp if set.
...
This reverts commit e5ff35bbdb
.
2013-07-11 17:27:17 -04: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
Andreas Piesk
e5ff35bbdb
expand vars like $HOME used in config values too
2013-07-09 20:33:33 +02: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
14818af446
Merge pull request #3450 from tonk/sudo
...
Repair issue #3447
2013-07-05 16:08:29 -07: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
Ton Kersten
37ee361be1
Repair issue #3447
2013-07-05 19:10:36 +02: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
6ba72854ee
Merge pull request #3296 from ninetythirty/devel
...
Added flexible filename handling for main files
2013-06-30 16:42:57 -07:00
Michael DeHaan
c2988dfdb0
Merge branch 'option-updates' of git://github.com/jlund/ansible into devel
...
Conflicts:
bin/ansible-pull
2013-06-30 19:31:37 -04:00
Michael DeHaan
2bbad5dae3
Merge pull request #3275 from madduck/implicit-negations
...
Enable negated patterns
2013-06-30 16:12:37 -07: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
Michael DeHaan
146455fd0a
Merge pull request #3375 from jhoekx/mandatory-filter
...
Add a mandatory jinja2 filter for use in templates.
2013-06-30 14:16:17 -07:00
Michael DeHaan
98e7eaf07a
Merge pull request #3316 from dsedivec/devel
...
expanduser on each component of plug-in paths
2013-06-30 09:12:15 -07:00
Stoned Elipot
b7f89837bb
Remove redundant call to _get_path() in PluginLoader.find_plugin()
2013-06-30 16:38:26 +02:00
Jeroen Hoekx
a37f55d32e
Add a mandatory jinja2 filter for use in templates.
2013-06-29 16:01:34 +02:00
Joshua Lund
dc984d94ac
Updates to Ansible command options
...
* Moved the --list-hosts option that is common to both `ansible` and
`ansible-playbook` into utils/__init__.py (corrects a FIXME)
* Wrote new help text for the --list-hosts option that makes sense
for both of the commands that it applies to
* Changed the usage argument in `ansible-playbook` so that it is
setup in the base_parser method the same way that it is in
the `ansible` executable
* Updated the help text for several options to correct typos,
clarify meaning, improve readability, or fix grammatical errors.
In the case of `ansible-pull`, I changed the help text so that
it adheres to the same standards as the other executables.
2013-06-26 19:57:31 -06: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
Dale Sedivec
b32131c867
expanduser on each component of plug-in paths
...
ansible.constants was calling expanduser (by way of shell_expand_path)
on the entire configured value for the library and *_plugins
configuration values, but these values have always been interpreted as
multiple directories separated by os.pathsep. Thus, if you supplied
multiple directories for one of these values, typically only the first
(at least on *nix) would have e.g. "~" expanded to HOME.
Now PluginLoader does expansion on each individual path in each of
these variables.
2013-06-22 17:01:12 -05:00
Ninety Thirty
7b1e87b62d
Added flexible filename handling for main files
...
tasks, handlers, and vars main files can now be any of main, main.yml, or main.yaml
2013-06-20 22:03:17 -06:00
martin f. krafft
fd02443d42
Enable negated patterns
...
A host pattern of the form '!foo' by itself does not work, but
'all:!foo' does. If the first pattern is a negation, this commit
automatically prepends 'all'.
Signed-off-by: martin f. krafft <madduck@madduck.net>
2013-06-20 07:55:35 +02:00
Michael DeHaan
010440dc47
Merge pull request #3114 from laggyluke/roles_combine_vars
...
Added basic support for hash_behaviour=merge in roles
2013-06-19 19:27:27 -07: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
George Miroshnykov
c642ba77ae
Added basic support for hash_behaviour=merge in roles
...
Dict vars passed to roles are now properly merged
instead of simply overriding dict vars that are
coming from vars_files.
2013-06-19 09:14:20 +03: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
132c89e681
Merge branch 'callbackinit' of git://github.com/sergevanginderachter/ansible into devel
2013-06-18 20:52:43 -04: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
2123507315
Merge branch 'sha256' of git://github.com/jlund/ansible into devel
...
Conflicts:
library/network/get_url
2013-06-18 14:46:57 -04: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
Scott Sturdivant
b10b676158
Print the default value if one is provided.
2013-06-17 14:15:31 -06:00
Michael DeHaan
e128e8b563
Merge pull request #3162 from strawlab/apt-key-binary-fix
...
allow apt-key module to work with binary key
2013-06-16 20:27:10 -07:00
Michael DeHaan
aa340c1508
Merge pull request #3169 from Debilski/fix-duplicate-host-reads
...
Allow inventory to be read from a pipe
2013-06-16 20:22:54 -07: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
Michael DeHaan
d9f91be34a
Merge pull request #3227 from bcoca/modules_wantlist
...
implementing with_items list globbing made easier for modules
2013-06-16 19:29:02 -07:00
trbs
a4223e119d
fixed x-bits in git
2013-06-16 22:22:16 -04: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
Serge van Ginderachter
2a7f9df109
add support for callback_plugins/ relative to playbook
2013-06-12 23:54:00 +02:00
Michael DeHaan
404b082d82
Version bump and assorted things to start new development version.
2013-06-10 15:34:52 -04:00
Michael DeHaan
3d21dab705
Small fix so template plugins can see inject variables.
2013-06-10 14:23:48 -04:00
Rike-Benjamin Schuppner
71afb9e432
Use with guard for file reads.
2013-06-10 17:16:31 +02:00
Rike-Benjamin Schuppner
deaf499ba1
Remove duplicate host file reads by removing a legacy check.
...
This allows using a form such as
ansible -i <( arbitrary command ) all -m ping
2013-06-10 17:15:12 +02:00
Andrew Straw
94e66ef558
allow apt-key module to work with binary key
2013-06-09 20:03:28 +00:00
Chris Church
d1de7839d7
Renamed on_no_hosts_matched/on_no_hosts_remaining to correct names in noop callback, added methods to callback plugin examples.
2013-06-09 12:19:07 -04:00
Chris Church
3f17a39238
Set current play/task to None for callback context when finished running the current play/task.
2013-06-09 12:17:57 -04:00
Simon J Mudd
25822330a2
Add support for multiple ranges in a host
...
e.g. db[01:10:3]node-[01:10]
- to do this we split off at the first [...] set, getting the list
of hosts and then repeat until none left.
- also add an optional third parameter which contains the step. (Default: 1)
so range can be [01:10:2] -> 01 03 05 07 09
2013-06-06 22:27:30 +02:00
bennojoy
017e7f24ed
bug fix for #3077 , environment settings for script
2013-06-05 19:59:39 +05:30
Joshua Lund
2ce7f136b2
* Added a sha256 method to module_common
...
* Added a sha256sum parameter to the get_url module to enable
cryptographic verification of downloaded files
* Fixed a few typos in the documentation
2013-06-04 23:28:28 -06:00
Chris Jacobs
588d4080df
don't want to ignore explicit cwd
2013-06-04 21:06:49 -07:00
Chris Jacobs
69db160e2f
Skip dotfile in hosts dirs
2013-06-04 18:16:09 -07:00
Serge van Ginderachter
f1cf81b086
optimization when adding child groups
2013-06-04 11:25:59 +02:00
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
c52abd40b0
Fix for the directory inventory source where depth information on the group was being discarded
...
due to initial copy. New model will reuse the first object and copy attributes on the second.
2013-06-03 11:41:56 -04:00
Michael DeHaan
be33bcf16f
Merge pull request #3105 from shirou/devel
...
fix utf-8 named task failed with --step.
2013-06-03 07:03:17 -07:00
Michael DeHaan
3783dc42d4
normalize path
2013-06-03 09:57:02 -04:00
WAKAYAMA Shirou
66247042a5
fix utf-8 named task failed with --step.
2013-06-03 22:45:02 +09:00
Darryl Stoflet
c0baf10845
Support for all:vars in script inventories
2013-06-02 14:54:29 -07:00
Michael DeHaan
3b77d17a26
Spelling fix.
2013-06-02 16:03:41 -04:00
Michael DeHaan
1f7c197a9d
os.path.dirname returns '' not None in some cases, handle this so inventory can be specified with ./
2013-06-02 16:01:09 -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
Michael DeHaan
4840e59b90
Allow cowsay to be removed mid playbook run.
2013-06-01 17:06:40 -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
Michael DeHaan
6cd3ba5b06
Allow the group_vars and host_vars directories to be stored alongside the playbook as well as inventory.
2013-06-01 10:38:16 -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
Pol Llovet
4432c01ceb
Handle '#' in var strings by splitting on ' #'
...
If someone has a " #" in a quoted var string, it
will interpret that as a comment and refuse to
load the inventory file due to an unbalanced
quote. Noisy failure > unexpected behavior.
2013-05-31 12:34:45 -06:00
Pol Llovet
ba78360c52
Remove inline comments from inventory tokenizing.
2013-05-30 14:12:23 -06: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
44e32cc45e
Some formatting fixes so docs will build, etc.
2013-05-29 18:43:23 -04: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
Kavin Kankeshwar
8217e0706f
Avoid crash in module_common when the file cannot be moved/copy
2013-05-29 00:03:12 -07:00
Serge van Ginderachter
0c0d6c0b4e
performance optimization in inventory.groups_list()
...
don't calculate all hosts for every parent group of every group
when that parent group was already in the cache
2013-05-28 12:53:51 +02:00
Serge van Ginderachter
dd9919342b
hide magic variables used bin/ansible output
...
'verbose_override' and 'verbose_always'
2013-05-27 14:42:55 +02: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
11792a9daa
Merge pull request #2987 from kentfrazier/sudo_user
...
Fix bug with include-level vars and sudo_user.
2013-05-24 20:08:04 -07: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
Michael DeHaan
159ba7d68a
Merge pull request #2956 from akerl/unicodefix
...
ignore unicode errors in stdout
2013-05-24 19:46:25 -07:00
Michael DeHaan
98a4331107
Merge pull request #2999 from ngrilly/python
...
Python
2013-05-24 19:36:47 -07:00
Michael DeHaan
5fdca267ac
Merge pull request #3018 from dsedivec/devel
...
Plug-ins loaded from top-level plug-in directory
2013-05-24 18:58:00 -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
Dale Sedivec
611d56dc4c
Plug-ins loaded from top-level plug-in directory
...
PluginLoader._get_paths, as of 391fb98e
, was only finding plug-ins that
were in a subdirectory of one of the basedirs (i.e. in a category
directory). For example, action_plugins/foo.py would never be loaded,
but action_plugins/bar/foo.py would work.
This makes it so that "uncategorized" plug-ins in the top level of a
directory such as action_plugins will be loaded, though plug-ins in a
"category" subdirectory will still be preferred. For example,
action_plugins/bar/foo.py would be preferred over action_plugins/foo.py.
2013-05-24 17:05:28 -05: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
Nicolas Grilly
7aee588918
Idiomatic Python: use in operator instead of method find
2013-05-23 20:12:43 +02:00
Nicolas Grilly
7babd30cf7
Idiomatic Python: use isinstance instead of type
2013-05-23 20:12:43 +02: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
Kent Frazier
4c6583bd00
Fix bug with include-level vars and sudo_user.
...
If a variable was provided for an include, in either of these ways:
---
- hosts: all
tasks:
- include: included.yml param=www-data
- include: included.yml
vars:
param: www-data
and then that param was used as the value of sudo_user in the included
tasks:
---
- name: do something as a parameterized sudo_user
command: whoami
sudo: yes
sudo_user: $param
you would receive a "failed to parse: usage: sudo" error back and the
command would not execute.
This seemed to be due to a missing call to template.template somewhere,
because the final value being passed through ssh was still `$param`.
After some digging, the issue seems to instead have been a problem with
providing the wrong context to the template for expansion. Inside the
`Task` logic, it was passing `play.vars` as the context, where
`module_vars` seemed more appropriate. After replacing it, my test case
above ran without issue. There was a comment above suggesting that the
template call might be unnecessary, but removing it made the original
error return, since it is not getting escaped later down the line. I
removed the comment since it was inaccurate.
I tried to actually incorporate my test case above into the test suite
as a regression test, but was unable to figure out how to structure it.
The existing test infrastructure seemed to only be testing for correct
number of counts in things (ok vs. changed, etc.), without regard for
whether the content generated by the command is correct. If there is an
example of a test similar to this one (where I would want to check the
JSON generated to make sure sudo_user had been converted), please let me
know and I will be happy to submit an additional patch.
2013-05-23 00:05:11 -05:00
Bryan Larsen
f629baef11
add basename and dirname to the core jinja2 filters
2013-05-22 14:06:18 -04:00
Michael DeHaan
753ebea186
Prefer categorized modules to uncategorized, such that if someone does an install on top of old content
...
the categorized modules will win over the 1.1 uncategorized modules, as the packages may not automatically
clean up the old content.
2013-05-19 20:09:44 -04:00
Michael DeHaan
cd57d59913
If ansible is configured to use a log file but cannot write to it, exit, but don't traceback.
2013-05-19 20:05:04 -04:00
Michael DeHaan
496f06c3c9
Pass variables to lookup function for those that want to use them.
2013-05-19 19:26:30 -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
Les Aker
1179d1bbd8
corrected indentation
2013-05-19 12:25:19 -04:00
Les Aker
2adc335481
ignore unicode errors in stdout
2013-05-19 11:57:08 -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
Brian Coca
8dd72d2828
changed lockfile to be opened in write mode (solaris for one doesn't like
...
exclusive locks on read)
Signed-off-by: Brian Coca <briancoca+dev@gmail.com>
2013-05-15 16:56:20 -04:00
Michael DeHaan
f2a8c0d612
Fix listification inside of with_items so it runs more intelligently.
2013-05-13 21:31:45 -04:00
Michael DeHaan
161f3e3670
Merge pull request #2899 from sergevanginderachter/host-group-vars-no-subdirs
...
don't parse subdirs in host/group_vars
2013-05-13 15:59:58 -07:00
Michael DeHaan
ff3625b0c9
Merge pull request #2902 from timhabermaas/fix-grammatical-error
...
Fix grammatical error in error message
2013-05-13 05:47:46 -07:00
Serge van Ginderachter
7eeab168bc
bug fix in first_found search path assembly
2013-05-13 13:48:56 +02:00
Tim Habermaas
4d24faeeb1
Fix grammatical error in error message
2013-05-13 13:22:57 +02:00
Serge van Ginderachter
a6b827ca07
don't parse subdirs in host/group_vars
...
as those are not supported in
core vars_plugins/group_vars.py
but might be used by other vars_plugins
2013-05-13 11:04:49 +02:00
Michael DeHaan
2a091a3505
Remove duplicate import.
2013-05-11 17:26:47 -04:00
Michael DeHaan
a78edbb45c
More pep8
2013-05-11 17:26:06 -04:00
Michael DeHaan
50586928b2
No need for trailing semicolon.
2013-05-11 17:25:05 -04:00
Michael DeHaan
ea8302e68d
Indentation.
2013-05-11 17:24:40 -04:00
Michael DeHaan
9f47d13306
Misc identation.
2013-05-11 17:24:12 -04:00
Michael DeHaan
0a1657080b
Indentation fix
2013-05-11 17:23:45 -04:00
Michael DeHaan
3fdf15fa8a
template code fixes for 'make pep8'
2013-05-11 17:22:56 -04:00
Michael DeHaan
3afa8b373e
Improve check mode reporting for directories and file modes.
2013-05-11 15:05:00 -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
11176c0711
Merge pull request #2878 from DavidMikeSimon/devel
...
Dealing with invalid symlinks and symlink permissions
2013-05-11 11:25:33 -07:00
Michael DeHaan
e4e6616169
Merge pull request #2872 from tima/fuzzy-match-localhost-127
...
Adds fuzzy matching of localhost to 127.0.0.1 host entries and vice versa
2013-05-11 11:15:49 -07:00
Michael DeHaan
344a30938c
Merge pull request #2871 from tima/inv-host-entry-fix
...
Fixed bug where a host entry in the inventory represented as a dict w/o ...
2013-05-11 11:14:48 -07:00
Matt Coddington
542eeeb5d6
add option to ignore $legacy variable style substitution
2013-05-11 14:06:01 -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
David Simon
190ce16bab
Dealing with invalid symlinks and symlink permissions
2013-05-09 15:35:05 -04:00
Timothy Appnel
20bf5f130d
Adds fuzzy matching of localhost to 127.0.0.1 host entries and vice versa.
2013-05-08 14:11:40 -04:00
Timothy Appnel
b15cc3e2b4
Fixed bug where a host entry in the inventory represented as a dict w/o a hosts or vars key was treated as a group and its vars essentially ignored.
2013-05-08 13:55:50 -04:00
Michael DeHaan
d1d3f4b4d2
Merge pull request #2842 from bcoca/cleanup
...
generalized cleanup and removed atomic_move return
2013-05-05 11:20:33 -07:00
Brian Coca
3ac6c45499
generalized cleanup function, in case modules want to use
...
removed return code as it doesn't make sense anymore
Signed-off-by: Brian Coca <briancoca+dev@gmail.com>
2013-05-05 13:26:29 -04:00
Michael DeHaan
f87ac5ce29
Merge pull request #2841 from jimi1283/issue_2820
...
BUGFIX - --start-at-task= works only with --step
2013-05-05 09:47:15 -07: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
James Cammarata
2440861b1b
BUGFIX - --start-at-task= works only with --step
...
From issue #2820 , --start-at-task does not actually run tasks
unless --step is specified. This appears to be because skip_task
is being evaluated as True in PlayBook._run_task(). This patch
ensures skip_task is set to False in the callback.
2013-05-05 11:05:32 -05: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
Gilles Cornu
68f7ea6099
Apply Gilles's patch to atomic_move based on github comment. (Email address not supplied
...
since wasn't from a pull request)
2013-05-04 19:31:52 -04:00
Brian Coca
bdeb370d79
fixed case in which move fails after remote user copies file and sudo to non root does the move
...
Signed-off-by: Brian Coca <briancoca+dev@gmail.com>
2013-05-03 21:58:27 -04:00
Michael DeHaan
c3547a2308
Moar SELinux.
2013-05-03 10:39:24 -04:00
Michael DeHaan
fb7bfa61a9
Fix SELinux context on atomic_move
2013-05-03 10:18:55 -04:00
Michael DeHaan
4ecc7ea2e0
Merge pull request #2817 from sfromm/issue2810
...
Set selinux context on file after shutil.move in atomic_move()
2013-05-03 06:45:42 -07: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
Stephen Fromm
50e94e4a2f
Set selinux context on file after shutil.move in atomic_move()
...
This is intended to fix #2810 . It sets the context of the tmp_dest file
after shutil.move() operation and before os.rename(). This should
retain the selinux context of the file across moves.
2013-04-30 10:15:09 -07:00
Michael DeHaan
7117ca5395
Allow modules in a "./library" directory to be referenced by their shortforms "modulename:" instead of just "action: modulename"
2013-04-28 21:05:19 -04:00
Michael DeHaan
e90023281d
Slightly refine log output to include username in addition to pid.
2013-04-28 20:57:32 -04:00
Michael DeHaan
ba8f2fca26
Merge branch 'add_pid_to_logging' of git://github.com/mcodd/ansible into devel
2013-04-28 20:52:53 -04:00
Stoned Elipot
df3c4849e9
Also load Jinja2 extensions when processing template from string
2013-04-28 20:52:01 -04:00
Michael DeHaan
4bea9a612f
Don't use "finally" here as it's not 2.4 compliant.
2013-04-28 16:03:03 -04:00
Michael DeHaan
68f711d5ae
teach plugin loader to find modules in subdirectories
2013-04-28 15:22:46 -04:00
Michael DeHaan
391fb98ee2
Allow modules to be categorized, and also sort them when generating the documentation.
2013-04-28 15:03:45 -04: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
3b8f69bac8
add pid to log
2013-04-27 13:00:02 -04:00
Stoned Elipot
75b51f79b4
Add module path library/ if it exists in role directory
2013-04-27 18:43:56 +02:00
Michael DeHaan
75cf5c985b
Allow playbook tags to be comma seperated strings as well as lists
2013-04-27 12:29:32 -04:00
Michael DeHaan
bcac289667
Cows don't need to display brackets around strings.
2013-04-27 11:50:53 -04:00
Michael DeHaan
016b04dff1
Merge branch 'roles_dir_search_order' of git://github.com/mcodd/ansible into devel
2013-04-27 11:46:29 -04:00
Brian Coca
caf6bd6ce5
Changed atomic_replace to atomic_move, now ti DOES move atomically in the last
...
step
Signed-off-by: Brian Coca <briancoca+dev@gmail.com>
2013-04-27 11:46:08 -04:00
Michael DeHaan
b8fdcff524
Merge branch 'nocows' of git://github.com/jpmens/ansible into devel
...
Conflicts:
lib/ansible/callbacks.py
lib/ansible/constants.py
2013-04-27 11:34:39 -04:00
Michael DeHaan
553751aee1
Merge branch 'numeric_ids_refactor' of git://github.com/insom/ansible into testing_427
2013-04-27 11:21:30 -04:00
Michael DeHaan
aa55268514
Adds a logfile for ansible playbooks that can be set by the environment or configuration file.
2013-04-27 10:24:26 -04:00
Michael DeHaan
515fbd5a17
Restructure output to prevent rare cases of interlaced I/O in multiprocessing paths.
2013-04-27 09:46:48 -04:00
Matt Coddington
c164609dd6
typo fix
2013-04-25 23:04:17 -04:00
Matt Coddington
c83c534a7d
Search for roles in the roles subdir first. Throw an error when no role .yml files are found.
2013-04-25 22:40:04 -04:00
Michael DeHaan
5af271911b
Fix duplicate handler notification issue in 1.2 devel
2013-04-25 21:24:15 -04:00
Michael DeHaan
224e20ca60
complex_arg templating should be smarter. Make it so!
2013-04-25 21:11:17 -04:00
Aaron Brady
bd226eb826
Refactor user_and_group so it works off of numbers
...
There are various cases where a UID to username to UID mapping breaks
down. One UID can be used by two usernames, or no username. If we
always use UIDs internally, then these ambiguous cases won't be a
problem.
2013-04-25 13:23:07 +01:00
Aaron Brady
d2e457f81f
Accept numeric user and group parameters
2013-04-25 13:23:07 +01:00
Jeroen Hoekx
ac7a632711
Remove leftover debug statement in template code.
2013-04-25 08:47:38 +02:00
Michael DeHaan
21fe750cef
Flush handlers before pre and post task sections change, but not between task and roles, as this seems
...
to be confusing to people (and not usually neccessary)
2013-04-24 22:28:06 -04:00
Michael DeHaan
6fdfbb1a34
Improve variable smushing so it only has to be done in one place. This is related to shlex.split being called
...
on untemplated variables in some rare cases.
2013-04-24 22:00:40 -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
Stephen Fromm
189b210f5a
Catch exception when logging to systemd journal fails
...
systemd journal will throw IOError exception when journal.sendv() fails.
This catches that and falls back to syslog. See issue #2773 .
2013-04-24 15:00:47 -07:00
Jan-Piet Mens
dfd885a012
Make ANSIBLE_NOCOWS configurable
...
nocows = 1 in ansible.cfg
or old environment variable ANSIBLE_NOCOWS=1
add to ansible.cfg example
2013-04-23 16:43:23 +02: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
be947e5266
Resolve merge conflict
2013-04-22 23:57:20 -04: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
6c778acd91
Smush the braces in various places (hey, that rhymes) to avoid undo key=value splitting surprises
...
in new template system.
2013-04-22 22:05:06 -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
Michael DeHaan
f9f1d5ee42
Merge pull request #2745 from sfromm/issue2742
...
Fix test so that it is /bin/sh compliant (issue #2742 )
2013-04-22 16:23:26 -07: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
3e0c33c1fa
Empty plays should still gather facts
2013-04-21 17:35:09 -04:00
Michael DeHaan
b08181e9b4
Merge pull request #2731 from stoned/flush_handlers-cleanup
...
handlers must be run once
2013-04-21 14:14:04 -07:00
Michael DeHaan
08324cb5d7
Allow play tagging in context of new meta-tasks.
2013-04-21 17:12:12 -04:00
Stoned Elipot
747c7f0dff
handlers must be run once
...
so remove all occurences of each host from the handlers notified by
lists
2013-04-21 17:23:13 +02:00
Michael DeHaan
32fb6c807c
Allow handlers to run in between pre_tasks, roles, tasks, and post_tasks.
2013-04-20 18:03:03 -04:00
Michael DeHaan
37789a852a
Rename set_up and tear_down to pre_tasks and post_tasks
2013-04-20 16:19:01 -04:00
Michael DeHaan
d7623d1f91
Added a 'set_up' and 'tear_down' which are like tasks, but execute before and after roles.
2013-04-20 16:07:06 -04:00
Michael DeHaan
e6bf01a6b0
Make plugin loader path operations more efficient.
2013-04-20 12:31:14 -04:00
Michael DeHaan
5a8dff5bce
Instantiate inventory plugins only once for efficiency reasons.
2013-04-20 09:59:40 -04:00
Michael DeHaan
817b0cdc80
Instantiate filter plugins only once to save some efficiency.
2013-04-20 09:51:20 -04:00
Michael DeHaan
6e1514e975
Merge pull request #2727 from dsedivec/devel
...
Don't send unicode instances to the selinux module
2013-04-20 06:21:27 -07:00
Michael DeHaan
5b44c3d52c
Merge commit '53ac0bb' into devel
2013-04-20 09:13:10 -04:00
Michael DeHaan
87788b1d17
Ignore inventory config files when using an inventory directory.
2013-04-20 09:10:19 -04:00
Michael DeHaan
53ac0bbec2
Instantiate callback plugins only once so we can set play/task objects on them and they'll stick.
2013-04-20 09:09:35 -04:00
Dale Sedivec
c8f4a56cad
Don't send unicode instances to the selinux module
...
This fixes #2632 . Briefly: specifying things like paths using complex
args in a playbook will make the objects unicode instances. The selinux
module does not accept unicode instances for its char * arguments; it
wants str instances.
Per mpdehaan's comment on #2632 I just went ahead and converted all
paths to UTF-8. I don't know if it would be better to do something like
converting to locale.getpreferredencoding(), but I factored all the
conversions out into new method _to_filesystem_str, so there's only one
place that needs to be changed in the future.
2013-04-19 20:12:11 -05:00
Michael DeHaan
df93d7dd97
Ignore inventory config files when using an inventory directory.
2013-04-19 19:01:19 -04: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
Michael DeHaan
5f1e2afc34
Revert "make atomic_replace use shutil.copy2 instead of os.rename() so it will work across filesystems".
...
AR function was leaving some tmp files behind, want to revert, will have better implementation soon, this is the old way now.
This reverts commit f74a1fa4f0
.
2013-04-18 15:46:42 -04:00
Michael DeHaan
d8bf87b008
(A) include errors in inventory scripts should they occur.
...
(B) allow registration with ignore_errors: True
2013-04-17 22:27:00 -04:00
Bernhard Weitzhofer
fb0a99e5d8
Fix if-statement that always evaluates True
2013-04-17 19:40:06 +02: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
C. Morgan Hamill
863cb50530
Allow '.yml'/'.yaml' extension on group_vars files.
...
Look for a file with the base name of the group/host, first without
a file extension, then with a '.yml' extension, and, finally, with
a '.yaml' extension, loading vars from only the first one found.
2013-04-16 19:59:23 -04:00
Michael DeHaan
b54e955595
Remove a debug statement.
2013-04-16 19:09:12 -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
Seth Vidal
f74a1fa4f0
make atomic_replace use shutil.copy2 instead of os.rename() so it will
...
work across filesystems
2013-04-16 15:15:58 -04:00
Michael DeHaan
0944e7d56a
Make less template calls on playbook objects.
2013-04-12 21:48:01 -04:00
Michael DeHaan
44a9352338
Also template handlers only at the end.
2013-04-12 20:32:35 -04:00
Michael DeHaan
e7f5186dec
Merge pull request #2623 from willthames/when_set_bug
...
Prevent premature variable substitution in tasks
2013-04-12 17:19:25 -07:00
Michael DeHaan
3ab0ed5fd4
Allow 'when' and 'with_items' to be applied to roles.
2013-04-12 19:02:56 -04:00
Michael DeHaan
7a2d493e67
Teach lookup plugins that if they can't evaluate something they can wait and do it later.
2013-04-12 18:44:40 -04:00
Michael DeHaan
3f3b2a9448
Smush Jinja2 braces in playbooks so unresolved variables get parsed nicely
2013-04-12 18:38:48 -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
793a3d3f76
More 1.2 templating development; for legacy when_string constructs don't quote the 'in' operator
2013-04-12 13:29:49 -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
b8c5a58b7f
Avoid running through the legacy template code if no dollar signs are in strings.
2013-04-12 10:33:55 -04: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
willthames
377bc31311
Prevent premature substitution of variables into tasks
...
As documented in #2623 , early variable substitution causes when_
tests to fail and possibly other side effects.
I can see the reason for this early substitution, likely introduced
in 1dfe60a6
, to allow many playbook parameters to be templated.
This is a valid goal, but the recursive nature of the utils.template
function means that it goes too far.
At this point removing tasks from the list of parameters to be
substituted seems sufficient to make my tests pass. It may be the
case that other parameters should be excluded, but I suspect not.
Adding a test case. I would prefer to analyse not just the aggregate
statistics but also whether the results are as expected - I can't
see an easy way to do that with the available callbacks at present.
2013-04-12 09:17:03 +10: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
3e736eaf00
Merge pull request #2622 from skvidal/playbook-start-at-task
...
implement --start-at-task option to hop to a specific task before starti...
2013-04-11 11:17:24 -07:00
Michael DeHaan
4e79bd0872
Remove unneccessary construction of Jinja2 environment object.
2013-04-11 12:59:33 -04:00
Michael DeHaan
2f5c1d3788
Merge pull request #2629 from stoned/fix-jinja2-filters-init
...
Fix Jinja2 filter plugins initialization
2013-04-11 09:57:04 -07: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
7931597a6a
Fix template call.
2013-04-11 12:15:13 -04:00
Michael DeHaan
695acc2de0
Make lookup plugins accessible in templates
2013-04-10 19:19:01 -04:00
Michael DeHaan
5b2035edd9
Changes for 'make pep8'
2013-04-10 19:12:10 -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
9ac25bb8f6
Minor formatting
2013-04-10 18:19:31 -04:00
Michael DeHaan
d7206d84bb
Allows Jinja2 that starts a YAML line to not cause a syntax error.
...
Technically this isn't quite valid YAML when this happens, so we make it valid. This means that if a future commander
API allows save/load it should make sure it does similar processing.
2013-04-10 18:07:19 -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
804056a563
Use Jinja2 strict undefined in string templating to allow the default filter to be used.
2013-04-10 16:45:53 -04:00
Michael DeHaan
998230a84a
Allow $foo and {{ bar }} to be used on the same line in playbooks.
2013-04-10 16:40:49 -04:00
Michael DeHaan
29209c4913
Style fixes so "make pep8" is clean.
2013-04-10 16:37:49 -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
Michael DeHaan
c5d9823467
Fix some items related to playbook includes and indentation.
2013-04-10 15:04:41 -04:00
Stoned Elipot
0893562605
Add base64 encode and decode filters to templates
2013-04-10 02:30:31 +02:00
Michael DeHaan
290780d13f
Playbook + with_items was an undocumented feature that was causing problems because it would
...
evaluate and replace '$item' with ''. Really it doesn't make sense to include multiple playbooks
via a loop variable, as you can do this with task + with_items already (and it's a simpler code
path). Given this is undocumented, this removes that feature, and we'll consider next how to
also add 'with_items' support directly to roles.
2013-04-09 20:13:55 -04:00
Michael DeHaan
c64f19dc5f
Don't set the item variable as eager template replacement will over-replace the variable as an empty string.
2013-04-09 19:57:53 -04:00
Stoned Elipot
154f58f82d
Fix Jinja2 filter plugins initialization
...
_get_filter_plugins() checks FILTER_PLUGINS against None hence
the latter should be initialized to None.
2013-04-09 22:38:24 +02:00
Seth Vidal
690738ea32
implement --start-at-task option to hop to a specific task before starting running them
2013-04-09 01:53:40 -04:00
willthames
9d87733f98
Test case and fix for shlex.split unicode bug
...
When operating on a unicode string in python 2.6, shlex.split returns
a result that does not work with the file constructor.
To reproduce this requires a task include that is templated (this is
because the templated string is a unicode result, whereas a non-
templated string is a non-unicode string)
[will@centos6.3] $ python
Python 2.6.6 (r266:84292, Sep 11 2012, 08:34:23)
[GCC 4.4.6 20120305 (Red Hat 4.4.6-4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import shlex
>>> shlex.split(u'abc')
['a\x00\x00\x00b\x00\x00\x00c\x00\x00\x00']
[will@fedora17] $ python
Python 2.7.3 (default, Jul 24 2012, 10:05:38)
[GCC 4.7.0 20120507 (Red Hat 4.7.0-5)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import shlex
>>> shlex.split(u'abc')
['abc']
The proposed fix (coercing the include parameters to string before the
shlex.split) may not be ideal but it does fix the bug for my test case.
2013-04-08 14:47:43 +10:00
Michael DeHaan
61f2668b0a
Don't include the '.yml' in the path to the retry files.
2013-04-08 12:38:05 -04:00
Michael DeHaan
0d530f3bf0
Change the retry logic to write a limit file, able to source limit from files by indicating with @filename
2013-04-08 12:36:01 -04:00
Michael DeHaan
c695aa2d6a
When playbooks fail, attempt to create an inventory file in the inventory directory that allows rerunning
...
of the playbook against only the hosts that failed.
2013-04-07 23:37:10 -04:00
Michael DeHaan
5fef2ffb9d
Merge pull request #2592 from stoned/include-task-when
...
when: condition support for tasks include
2013-04-06 16:01:44 -07:00
Michael DeHaan
00252353b9
Decided I liked the asterisks
2013-04-06 18:58:55 -04:00
Michael DeHaan
bc0be456da
Modify output banners to have constant length and use dashes instead
...
of "-" to be less visually heavy (unless cowsay is installed of course)
2013-04-06 18:52:30 -04:00
Stoned Elipot
1ed54b9b3a
when: condition support for tasks include
2013-04-07 00:43:39 +02:00
Michael DeHaan
e9d11173cd
Remove obsolete comment
2013-04-06 18:38:31 -04:00
Michael DeHaan
fffb1a0a9d
Loose tasks not in roles get executed after roles.
2013-04-06 18:36:25 -04:00
Michael DeHaan
f044fc344b
When using roles, or other includes, the path to DWIM inside is the path of the task include
...
file.
2013-04-06 18:32:36 -04:00
Sébastien Bocahu
b94bf051d5
Makes $PIPE and $FILE macros accept utf-8 input
2013-04-06 23:28:15 +02:00
Michael DeHaan
5c4ed72571
Demo of parameterized roles!
2013-04-06 12:51:17 -04:00
Michael DeHaan
f308194b9a
Added examples of how roles work!
2013-04-06 12:35:35 -04: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
Michael DeHaan
1dfe60a6ea
Allow any parameter in a play to be set by --extra-vars through cleaner use of data structure
...
templating.
2013-04-06 10:09:16 -04:00
Michael DeHaan
4cd69e81b9
Catch recursive templating errors and display what string caused them.
2013-04-06 09:55:31 -04:00
George Miroshnykov
6826aa7360
Tweaked merge_hash to also affect Runner behavior
2013-04-06 13:06:38 +03:00
Blair Zajac
36b3fc3acf
Fix for inventory scripts with no path prefix that are in CWD.
...
Without this, using '-i ec2.py' will not work if '.' is not in PATH.
2013-04-05 20:52:59 -07: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
38c2b14339
Undefined Jinja2 statements are returned as they originally are so you can tell there are things to
...
correct.
2013-04-05 17:36:53 -04:00
Michael DeHaan
49d28b9a44
This SELinux commit is too strict and we should only fail if trying to read/tweak SELinux attributes else
...
python-selinux can't be installed w/ the yum module when missing.
Revert "Added an extra check for target nodes with selinux but without libselinux-python package installed"
This reverts commit 550986b6a1
.
2013-04-05 14:54:11 -04:00
Michael DeHaan
2c881e2b3d
Merge pull request #2578 from arrfab/selinux-fix-2
...
Added an extra check for target nodes with selinux but without libselinux-python package installed
2013-04-05 11:52:14 -07: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
Fabian Arrotin
550986b6a1
Added an extra check for target nodes with selinux but without libselinux-python package installed
2013-04-05 20:37:58 +02:00
Michael DeHaan
8c859f6f61
Merge pull request #2570 from skvidal/devel
...
simple fix for issue 2564
2013-04-05 11:07:22 -07: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
Michael DeHaan
b67cd6bbda
Merge branch 'any-errors-fatal' of git://github.com/junegunn/ansible into devel
2013-04-05 13:07:23 -04:00
Seth Vidal
2796b5ee2a
simple fix for issue 2564
...
when we encounter a group we've not seen before - we need
to make sure we make it a subgroup of 'all', no matter what
2013-04-04 12:44:39 -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
Michael DeHaan
aa4ad80bda
Update release version.
2013-04-02 20:48:30 -04:00
Junegunn Choi
b874027b36
compare the number of available hosts before and after running each task
2013-03-29 13:13:22 +09:00
Junegunn Choi
20a48c6bdf
terminate immediately on a failure
2013-03-28 15:17:01 +09: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
42b0e51223
Upgrade callbacks further, now '.play', '.task', and so on are also available!
2013-03-25 22:56:32 -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
Michael DeHaan
9be44c201a
Merge pull request #2455 from robparrott/debuggin-help
...
inject a dictionary of avaiable variables and the environment into executor
2013-03-24 14:49:37 -07:00
Michael DeHaan
fe2f506514
Merge pull request #2462 from sfromm/issue2461
...
Make logging to journal match what goes to syslog on non-systemd hosts
2013-03-24 14:46:10 -07:00
Stoned Elipot
86995d7786
Fix pathnames in comments
2013-03-22 02:11:58 +01:00
Stephen Fromm
cdb7f8ecf0
Make logging to journal match what goes to syslog on non-systemd hosts
...
This makes the log message the same, whether it is sent to systemd's
journal or to syslog. It retains the extra fields that are passed to
journal, such as MOUDLE=<name> and additional arguments. Since journal
will reflect messages to syslog, this keeps what goes to syslog
informative instead of the terse 'Ansible module invoked'.
See issue #2461 .
2013-03-19 16:07:15 -07:00
Rob Parrott
149f1f9f3c
invalidate group cache so that a group added by the add_host module will be relfected in the groups variable in later plays.
2013-03-19 13:57:45 -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
David Hughes
c365974117
Added variable expansion to task sudo_user parameter
2013-03-15 11:31:27 -07:00
Michael DeHaan
6f25885c1a
Merge pull request #2397 from dparalen/play_task_type_check
...
check type of task explicitly
2013-03-14 08:24:41 -07:00
milan
80dbab3cf0
check type of task explicitly
2013-03-14 13:06:55 +01:00
Daniel Hokka Zakrisson
27978ed9c1
Don't override argument specs with FILE_COMMON_ARGUMENTS
...
Doing so will remove aliases, types, etc, leading to #2388 and other
issues.
2013-03-14 11:22:46 +01:00
Michael DeHaan
d0332a6c6d
Merge branch 'playbook-step' of git://github.com/skvidal/ansible into devel
2013-03-13 22:26:59 -04:00
Michael DeHaan
0c80c76833
Fixes #2380 - argument checking in file accepts chained arguments from copy
2013-03-12 21:57:38 -04:00
Michael DeHaan
77198b09e9
Add content to the list of file common arguments.
2013-03-12 01:06:55 -04:00
Stoned Elipot
8edda38c61
exception safe list/tuple replacing for non-str values
2013-03-12 05:01:45 +01:00
Michael DeHaan
e241bb5801
Merge pull request #2367 from bcoca/catch_mismatched_json
...
now cleanly catches traceback when conflicting versions of simplejson and python are installed
2013-03-11 15:26:01 -07: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
Brian Coca
95a977cfc9
now cleanly catches traceback that occurs when running newer simplejson with
...
older python interpreter.
Signed-off-by: Brian Coca <briancoca+dev@gmail.com>
2013-03-11 15:10:49 -04:00
Seth Vidal
a7a083d882
when --step isn't specified make sure to print the banner
2013-03-11 09:48:32 -04:00
Seth Vidal
7687c2caf8
add --step option to ansible-playbooks to let people step through a playbook
...
one by one - asking for confirmation along the way.
also allows to 'continue' after a certain point
2013-03-11 00:39:05 -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
Michael DeHaan
bb696e88b4
Merge pull request #2286 from gavares/url_timeout
...
Add socket timeout to uri module.
2013-03-10 15:37:32 -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
Daniel Hokka Zakrisson
3d49f74df6
Make apt upgrade=dist work and make its argument handling more idiomatic
...
Fixes #2287 .
2013-03-05 23:46:34 +01:00
Daniel Hokka Zakrisson
1784fd80cc
When a host list is used, no parser is present
2013-03-04 12:37:15 +01:00
Grant Gavares
cd51c7f234
Add socket timeout to uri module.
...
The uri module can be configured to abort after a specified timeout if
it cannot connect to the configured uri. This prevents a uri action from
hanging indefinitely when the remote endpoint cannot be reached because
it is unavailable, there is a firewall in place etc. The default behavior
is left unchanged: timeout=None
This change also introduces a new type for module_parameters: int
Code was added to perform conversion from string -> int type in
module_common.py.
The new type was required in order to play nice with httplib2 which
refuses to accept (and convert) anything other than a numeric type for
the timeout value.
2013-03-02 17:34:23 -08: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
Daniel Hokka Zakrisson
2ff2f05a0f
host.get_variables includes too many variables, use host.vars instead
...
Not quite as attractive, but allows variable precedence and lazy
resolution to work as intended, rather than resolving them on a
per-inventory basis.
2013-03-02 10:26:26 +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
5fd807ac64
Merge pull request #2262 from bcoca/json_nice_error
...
now ansible shows nice message about missing json instead of traceback
2013-03-01 16:39:45 -08:00
Brian Coca
46c913f7a6
now ansible shows nice message about missing json instead of traceback
...
Signed-off-by: Brian Coca <briancoca+dev@gmail.com>
2013-03-01 19:03:59 -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
Daniel Hokka Zakrisson
f1eb195ff5
vars_loader should get the path to the inventory + vars_plugins
2013-03-01 23:22:52 +01:00
Daniel Hokka Zakrisson
ad08995989
Make inventory basedir for directory based inventory be the directory
...
This puts host_vars and group_vars inside of the directory, allowing you
to target a single inventory but still have access to the variables.
2013-03-01 23:22:52 +01:00
Daniel Hokka Zakrisson
d9c6b60b24
Allow inventory to be a directory containing other inventories
2013-03-01 23:22:52 +01:00
Daniel Hokka Zakrisson
647cd0141c
Move all inventory script code into the script parser
2013-03-01 23:22:52 +01: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
Michael DeHaan
e83819599a
Merge pull request #2234 from akvadrako/nice-yaml-and-json
...
add to_nice_yaml|json filters
2013-03-01 13:45:07 -08:00
Michael DeHaan
c92bfb7234
Merge branch 'madcow2' of git://github.com/bcoca/ansible into devel
2013-03-01 16:23:41 -05:00
Jimmy Tang
81a34c2d1d
Cowsay on OSX macports
2013-03-01 16:51:13 +00: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
297259725a
Allow (local_)action: to be a dict
...
Use the key module: to set which module to invoke.
2013-02-28 14:12:36 +01:00
Daniel Hokka Zakrisson
c04d5ba739
Allow specifying args directly to actions using module: syntax
...
Makes things like
- name: do complex things with complex module
complex:
setting_a: true
setting_b:
- foo
- bar
possible.
Fixes #2228 .
2013-02-28 13:54:04 +01:00
Daniel Hokka Zakrisson
4807fbc8b7
Use regular strings to allow tests to work
2013-02-28 13:52:57 +01:00
Michael DeHaan
323ed27106
Merge pull request #2221 from sfromm/fix-ansible-cli-check-mode
...
Fix CliRunnerCallbacks.on_file_diff in callbacks.py
2013-02-27 15:34:05 -08:00
Stephen Fromm
fa07604d43
Fix CliRunnerCallbacks.on_file_diff in callbacks.py
...
When running ansible -C, I get a traceback that ends with
AttributeError: Values instance has no attribute 'diff'
This fixes on_file_diff to behave similar to
PlaybookRunnerCallbacks.on_file_diff().
2013-02-27 13:26:29 -08:00
Daniel Hokka Zakrisson
cedfec763a
jsonify needs to return a string of {}, rather than a dict
2013-02-27 19:46:31 +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
Daniel Hokka Zakrisson
bcf7a2c53a
Catch all exceptions coming from lookup plugins
...
Fixes using $TEMPLATE() and hostvars in a task without a name, among
other things.
2013-02-27 10:11:14 +01:00
Brian Coca
e9907e9c8a
added random cow pick through ANSIBLE_COW_SELECTION env var
...
Signed-off-by: Brian Coca <bcoca@tablethotels.com>
2013-02-26 22:41:01 -05: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
Daniel Hokka Zakrisson
93f02d614b
Merge pull request #2187 from dhozac/argument-type-check
...
Add type checking for module arguments, converting as much as possible
2013-02-26 14:05:36 -08: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
Daniel Hokka Zakrisson
22e40b6a61
Merge pull request #2198 from skvidal/nolog-params
...
No_log params
2013-02-25 14:51:18 -08:00
Stoned Elipot
10e9f1fc1e
Implement --diff for the copy module.
2013-02-25 23:32:52 +01:00
Seth Vidal
f02ea15f0c
command: make sure that all _handle_aliases() calls returns {}
...
module_common: also work if there are no aliases (shell, command, etc) modules
2013-02-25 17:07:47 -05:00
Seth Vidal
c95848ae59
- add an aliases attribute as a lookup of aliasname to canonical name
...
of parameters
- add support for no_log attribute per-parameter which will not log
that information to syslog
2013-02-25 16:33:04 -05: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
Daniel Hokka Zakrisson
1df56c07d3
If expand_lists is true, make lookup plugin result into a string
...
Fixes #2196 .
2013-02-25 22:26:16 +01:00
Daniel Hokka Zakrisson
7e0ee6809c
Don't template delegate_to too early, not all vars are available
...
Fixes using delegate_to: $item within a playbook include.
2013-02-25 22:25:13 +01:00
Daniel Hokka Zakrisson
f03e845920
Allow hyphens in complex variables
...
Primarily to support ${hostvars.hostname-with-hyphens.<var>}.
2013-02-25 15:09:44 +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
Daniel Hokka Zakrisson
9076f8eb31
Add type checking for module arguments, converting as much as possible
...
Converts to list from comma-separated strings, and to dicts from
comma-separated, key=value strings.
Fixes #2126 .
2013-02-23 19:43:50 +01:00
Michael DeHaan
b75b9681a8
more places to use yaml.safe_load
2013-02-23 13:34:14 -05:00
Michael DeHaan
a9ea3136cf
Use yaml.safe_load as we are just using basic data structures
2013-02-23 13:33:21 -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
e51707711c
Merge pull request #2120 from jpmens/doc_ex1
...
Add support for additional EXAMPLES string in Ansible modules
2013-02-23 08:58:34 -08: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
Stoned Elipot
9f2bba01ba
Fix diff output vertical spacing
2013-02-20 22:45:45 +01:00
Michael DeHaan
6d604469d8
Always adjust file attributes with the template module.
2013-02-20 08:05:59 -05:00
Jan-Piet Mens
396a07bcc7
Add support for additional EXAMPLES string in Ansible modules
...
return DOC and EXAMPLES as a list
add moduledev explanation
more
2013-02-18 20:02:46 +01: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
c4779d95b8
Removing unused import, 'make pyflakes' is now clean.
2013-02-17 19:49:50 -05:00
Michael DeHaan
9cf66f4376
Fixes from 'make pep8'. Partial, more to come.
2013-02-17 19:40:38 -05:00
Michael DeHaan
11e7ede4d9
Merge pull request #2112 from kavink/devel
...
Fixing syntax error
2013-02-17 16:33:34 -08:00
Michael DeHaan
61d01f549f
Show a nicer message when attempting to diff unicode files.
2013-02-17 19:32:28 -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
f02b9987fc
We all agreed on the list that the ansible module common module snippet, since it's dynamically embedded in modules on the fly, should
...
be a BSD licensed snippet so that it's ok to write proprietary modules. The actual license of Ansible (GPLv3) or any modules
written for ansible (any) do not change.
2013-02-17 15:41:59 -05:00
Michael DeHaan
1ecf4a6943
Working on complex argument support.
2013-02-17 15:01:49 -05:00
Michael DeHaan
cd32597af0
Make the file module work as expected in check mode
2013-02-17 12:27:00 -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
James Martin
7129a9e355
Using "OtherLinux" in module_commons, cleander detection in setup.
2013-02-16 13:32:48 -05:00
James Martin
5646bc278b
Support for amazon linux distribution facts.
2013-02-16 13:32:48 -05:00
Michel Blanc
0cd0a7fda3
Fixes jina typos
...
Moved *jina* to *jinja2*
2013-02-16 13:32:48 -05:00
Michel Blanc
1c22f2146e
Adds configurable jinja2 extension loading
...
Jinja extensions adds features to the jinja2 templating engine. This
patch allows module loading for the templating engine vian an
ansible.cfg configuration key (jinja_extensions).
The default behaviour doesn't change (no module loading).
Requested modules can be added coma separated in ansible.cfg
Adds whitespace handling in jinja_extension config
Added whitespace handling in jinja_extension configuration directive, so
things stay safe if user adds spaces around comas in the directives
list.
Adds config example for jinja_extensions
Added config example with multiple extentions for jinja_extensions
2013-02-16 13:32:48 -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
Nigel Metheringham
c0e28762f0
Allow end of line comments in inventory file
...
See github issue 2702
https://github.com/ansible/ansible/issues/2072
2013-02-13 14:15:22 +00: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
Daniel Hokka Zakrisson
d632210941
Allow using other users' home directories as well
2013-02-11 23:43:30 +01:00
Daniel Hokka Zakrisson
89e73c123f
Fix tilde expansion for fileglob
...
Use common suffix to determine what part of original term to keep and
how much of the full path to combine to get a usable filename.
2013-02-11 23:43:27 +01:00