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
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
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
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