Commit graph

1411 commits

Author SHA1 Message Date
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
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
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
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