Seth Vidal
f649777072
- make extra-vars override all other vars and facts in playbooks
2013-01-30 11:56:04 -05:00
Michael DeHaan
0030a2bd09
Allow handler files to be empty lists.
2013-01-27 10:40:29 -05:00
Daniel Hokka Zakrisson
94a1c221bc
Update variable precedence section with current rules
2013-01-22 16:56:04 +01:00
Rodney Quillo
395093e0bf
Move default arguments to the end of the function call.
2013-01-19 08:34:47 +08:00
Rodney Quillo
7ae100611c
Adding default on vars_prompt
2013-01-18 19:00:57 +08:00
Daniel Hokka Zakrisson
4d48daff80
Actually allow using connection: on a task
2013-01-06 18:46:34 +01:00
Daniel Hokka Zakrisson
caee51e90e
Allow only_if/when_* on task includes and apply it on all tasks within
2013-01-04 00:15:13 +01:00
Daniel Hokka Zakrisson
07b215d4fa
Check for non-accepted arguments combined with task includes
...
Throw an appropriate error for it.
2013-01-03 23:36:42 +01:00
Daniel Hokka Zakrisson
68f736e8d7
Make inventory variables available to vars_files
2013-01-03 23:16:38 +01:00
Daniel Hokka Zakrisson
a1877b2213
Allow infinite depth task includes
2013-01-03 23:01:04 +01:00
Daniel Hokka Zakrisson
4555cdc49c
Allow using connection: on the task level
...
This is the name of the setting on the play level, and the options.
Should be consistent.
2013-01-03 21:27:01 +01:00
Daniel Hokka Zakrisson
3a36c024da
Make lookups being fatal up to the caller
...
Fixes #1769 .
2012-12-19 19:19:04 +01:00
Daniel Hokka Zakrisson
97cc384ccf
Set basedir to . if there isn't one
...
This avoids special-casing '' = '.' everywhere the basedir gets used.
Fixes #1729 .
2012-12-19 13:22:57 +01:00
Daniel Hokka Zakrisson
c2792a936d
Allow parameterized playbook includes to define complex variables
...
To be used like:
- include: playbook.yml
vars:
mylistvar:
- item1
- item2
2012-12-15 21:56:28 +01:00
Nandor Sivok
f31fbdff1f
moving int() conversion to the play init
2012-12-14 18:05:08 +01:00
Nandor Sivok
e91db5fcdc
fixes #1767 parsing serial from extra_vars
2012-12-14 13:21:58 +01:00
Daniel Hokka Zakrisson
b8d6dec5ad
Reset notified_by list per serialized batch
...
Fixes the case where a handler attempts to run for every batch after any
batch has notified it, regardless of whether the current batch did.
2012-11-28 22:04:44 +01:00
Daniel Hokka Zakrisson
a56e1f31fa
Properly restrict hosts after 9070875
2012-11-28 22:03:23 +01:00
Daniel Hokka Zakrisson
9070875a6f
Move available hosts gathering to a common function
2012-11-28 01:03:18 +01:00
Daniel Hokka Zakrisson
5065103017
Skip already failed hosts
...
Fixes #1699 .
2012-11-28 00:54:08 +01:00
Daniel Hokka Zakrisson
c948c65bcd
Template the name of the task
...
Broken by 1e0295c
. Fixes #1698 .
2012-11-28 00:36:10 +01:00
Daniel Hokka Zakrisson
900790af41
Reuse inventory object created by ansible-playbook in playbook
...
This reduces the amount of times an inventory script has to be invoked.
2012-11-27 15:24:33 +01:00
Michael DeHaan
da90c5f75e
Document 'when' and tweak the code to be a little more comprehensive on what is false.
2012-11-26 18:37:44 -05:00
Daniel Hokka Zakrisson
43bdec8b20
Throw an error if multiple actions have been specified
2012-11-26 22:42:44 +01:00
Daniel Hokka Zakrisson
1e0295c7e2
Template handlers late
...
This allows overriding variables in name, and removes templating from
parsing.
2012-11-26 22:07:57 +01:00
Daniel Hokka Zakrisson
ebd31af940
Don't prompt for vars in extra-vars
...
Fixes #1622 .
2012-11-26 22:07:57 +01:00
Daniel Hokka Zakrisson
94fc3006e9
Make variables local to the play
...
Fixes #1677 .
2012-11-26 22:07:57 +01:00
Daniel Hokka Zakrisson
e44b85daba
Remove special-casing for all group
...
global_vars has higher precedence than inventory. Putting the all
group's variables into it overrides all other groups and hosts.
Partially fixes #1647 .
2012-11-23 00:54:02 +01:00
Daniel Hokka Zakrisson
d5dd89a8f7
Allow specifying when: ...
2012-11-22 23:11:42 +01:00
Daniel Hokka Zakrisson
fd732f8d3b
Add when_boolean
...
Fixes #1567 .
2012-11-22 23:10:11 +01:00
Daniel Hokka Zakrisson
ef357ed1f2
Use the play's vars for the setup step
...
Allows using -e ansible_ssh_port=foo and have it apply to all actions.
2012-11-21 23:42:24 +01:00
Daniel Hokka Zakrisson
d1c285b70b
Port may be an integer when parsed from the play
2012-11-21 17:20:03 +01:00
Daniel Hokka Zakrisson
3ce63d845e
remote_port is None by default
2012-11-21 14:10:10 +01:00
Dag Wieers
8458f53014
Allow the remote port to be templated
...
This was requested on the mailinglist and seems useful.
2012-11-20 18:53:40 +01:00
Daniel Hokka Zakrisson
f95fefd8c5
Use plugin system to find modules
2012-11-18 19:09:21 +01:00
Michael DeHaan
d500398e76
Merge pull request #1616 from dagwieers/skip-register
...
Do not register variable if host has been skipped
2012-11-14 06:33:30 -08:00
Dag Wieers
302eeae65d
Do not register variable if host has been skipped
...
Executive summary: skipping a host corrupts a variable (when it is registered)
We have a play existing out of multiple tasks that check a condition, if one of these tasks fails we want to skip all next tasks in the playbook. I noticed that if we skip a task because a certain condition is met, and this task has a register-attribute, I loose the value in the variable. Which means we cannot use that variable in subsequent tasks to evaluate because it was skipped:
```
- action: command test -d /some/directory
register: task
- action: command test -f /some/directory/file
register: task
only_if: '${task.rc} == 0'
- action: do something else
only_if: '${task.rc} == 0'
```
In the above example, if the second task is skipped (because the first failed), the third action will end with a "SyntaxError: invalid syntax" complaining about the unsubstituted ${task.rc} (even though it was set by the first task and used for skipping the second).
The following play demonstrates the problem:
```
- name: Test register on ignored tasks
hosts: all
gather_facts: no
vars:
skip: true
task: { 'rc': 666 }
tasks:
- action: debug msg='skip = ${skip}, task.rc = ${task.rc}'
- name: Skip this task, just to test if task has changed
action: command ls
register: task
only_if: '${skip} != True'
- action: debug msg='skip = ${skip}, task.rc = ${task.rc}'
- name: Now use task value
action: command echo 'Works !'
only_if: '${task.rc} == 0'
```
And the enclosed fix, fixes the above problem.
2012-11-13 16:57:10 +01:00
Michael DeHaan
6793bcbe4d
Merge pull request #1613 from dhozac/use-all-vars-for-hosts-template
...
Use all available vars for hosts:, user: and sudo_user:
2012-11-13 04:47:03 -08:00
Michael DeHaan
2303f65a1a
Merge pull request #1614 from dagwieers/missing-action-error
...
Print the task name (if any) when complaining
2012-11-13 04:46:41 -08:00
Dag Wieers
b96877e5aa
Print the task name (if any) when complaining
...
After spending 10 minutes to find which playbook had an action/local_action missing, I changed the error to include the task name (if set). The error eventually was caused because I added a name to a task, but the dash before the existing action was not removed.
2012-11-13 12:53:42 +01:00
Daniel Hokka Zakrisson
0be1f11ed5
Use all available vars for hosts:, user: and sudo_user:
2012-11-13 12:20:07 +01:00
Daniel Hokka Zakrisson
eebbbd3f0e
Make parameterized playbook includes work with vars as a list
...
Fixes #1610 .
2012-11-13 12:12:18 +01:00
Daniel Hokka Zakrisson
0ca1775bda
Try to ensure the entire value is quoted
2012-11-13 02:40:29 +01:00
Daniel Hokka Zakrisson
233a36b9e8
Template using module_vars early
...
Since no basedir is available at that time, avoid invoking
lookup plugins since they assume it is present.
2012-11-12 16:53:24 +01:00
Daniel Hokka Zakrisson
9c095b72b9
Add parameterized playbook includes
...
Also makes with_* work with them.
Fixes #1162 .
2012-11-09 15:43:49 +01:00
Daniel Hokka Zakrisson
383dc30560
Rename varReplaceWithItems to template_ds
2012-11-09 15:43:29 +01:00
Daniel Hokka Zakrisson
47082a9171
Add $LOOKUP(<lookup plugin>,<data>) as a templating option
...
Also moves file and pipe to lookup_plugins.
2012-11-07 23:17:29 +01:00
Dag Wieers
dfa1e8b0dc
Bail out if an action is not a string
...
Since YAML allows anything, we should enforce that actions are strings.
This closes #1419 .
2012-11-07 15:04:04 +01:00
Daniel Hokka Zakrisson
e05e514861
Create a plugin loader system
2012-11-02 01:24:14 +01:00
Daniel Hokka Zakrisson
c519d5dac0
Add a template lookup plugin
...
Requires that inject be passed to run
2012-10-31 16:57:10 +01:00
Daniel Hokka Zakrisson
37d9acc097
Make lookup API extensible and allow basedir to be passed
...
This allows using with_fileglob in play context, e.g.
- include: $item
with_fileglob: tasks/*.yml
as well as prepares for other data to be passed.
2012-10-31 16:55:38 +01:00
Michael DeHaan
c0747b7baa
pep8 fixes
2012-10-30 20:42:07 -04:00
Daniel Hokka Zakrisson
e72fdccd87
Allow vars_files sequences without a default
2012-10-28 16:35:22 +01:00
Michael DeHaan
21258dcc66
Added 'when' as a shortcut around only_if.
2012-10-27 17:55:35 -04:00
Michael DeHaan
a768e9a9ff
Fix for sudo defaults if sudo is passed in via --extra-vars
2012-10-27 16:46:33 -04:00
Michael DeHaan
6ba30170dd
Make group_vars and host_vars available to usr/bin/ansible, and make vars_plugins exist
2012-10-26 19:55:59 -04:00
Daniel Hokka Zakrisson
2f05e95d8a
Use lookup plugins for task include with_*
2012-10-25 15:13:34 +02:00
Daniel Hokka Zakrisson
026e251b94
Make with_items a lookup plugin
2012-10-25 15:10:33 +02:00
Michael DeHaan
109632e3bc
Revert "Vars specified via CLI have the highest priority."
...
Reverting as this as reported allows some variables to clobber each other.
We'll work on a different fix.
This reverts commit c5469f6367
.
2012-10-21 16:42:15 -04:00
Michael DeHaan
ed9f5eed09
Merge pull request #1338 from alopropoz/extra_vars_override
...
Vars specified via CLI have the highest priority.
2012-10-20 07:29:12 -07:00
Michael DeHaan
d5db8e937e
Fix port overrides such that with fireball mode you don't have to specify an explicit port.
2012-10-17 22:50:17 -04:00
Aleksej Romanov
c5469f6367
Vars specified via CLI have the highest priority.
2012-10-16 04:34:54 +07:00
Daniel Hokka Zakrisson
ab44a4abba
Load additional plugins from path specified in configuration
2012-10-14 21:09:24 +02:00
Daniel Hokka Zakrisson
1aaf86069a
Look for plugins in the playbook's basedir
2012-10-14 21:09:23 +02:00
Michael DeHaan
c5d2f6b0d3
implement lookup plugins for arbitrary enumeration over arbitrary things. See the mailing list for some cool examples.
2012-10-12 20:07:05 -04:00
Michael DeHaan
271db7bddb
Merge pull request #1308 from abondis/named_action
...
named actions + modules list in utils.py
2012-10-12 14:33:43 -07:00
Aurélien Bondis
6d183959ba
#1303 : add sudo option to tasks
2012-10-12 12:39:45 -04:00
Aurélien Bondis
2063e10c00
named actions + modules list in utils.py
2012-10-12 11:28:10 -04:00
Daniel Hokka Zakrisson
b8b34b5110
Keep processing the rest of the vars_files even if one has vars
2012-10-11 23:52:01 +02:00
Michael DeHaan
f3d7294690
Test for directory existance, fix exception catching granularity
2012-10-11 07:56:01 -04:00
Aurélien Bondis
e07bfd9ef8
playbook/tasks: allow to use a module's name instead of action:
2012-10-09 00:21:13 -04:00
Michael DeHaan
212296e59c
Merge pull request #1207 from dagwieers/gather_facts-fix
...
Fix gather_facts assumption that SETUP_CACHE for a host is empty
2012-10-02 19:05:54 -07:00
Michael DeHaan
cef73d1545
Merge pull request #1202 from dagwieers/abort-play-abort-playbook
...
Abort a play at the start when no hosts matches, or no hosts are remaining
2012-10-02 19:02:27 -07:00
Dag Wieers
fedfd18774
Fix gather_facts assumption that SETUP_CACHE for a host is empty
...
We now check explicitely for 'module_setup' in the SETUP_CACHE in order to avoid skipping setup because SETUP_CACHE was populated some other way. Other modules can implement the same mechanism to test if they've already run.
This closes #1206 .
2012-10-02 23:17:45 +02:00
Dag Wieers
20c1a67711
Abort a play at the start when no hosts matches, or no hosts are remaining
...
This change makes a distinction between no_hosts_matched and no_hosts_remaining.
In both cases we do not start facts-gathering, or run any tasks.
In the case that there are no more hosts remaining, we abort running tasks and abort the playbook.
I also cleaned up the leftovers from the previous patchsets, as these are no longer required.
This closes #1187 .
Example playbook:
```yaml
---
- hosts: emptygroup
tasks:
- action: command date
- action: command false
- hosts: all
gather_facts: False
tasks:
- action: command ls
- action: command false
- action: command true
- hosts: all
tasks:
- action: command true
- action: command false
- hosts: all
tasks:
- action: command pwd
```
2012-10-02 15:54:24 +02:00
Daniel Hokka Zakrisson
564a212b3c
Only gather facts once per node per playbook run
...
Unless gather_facts: True is on the play
2012-10-02 15:30:19 +02:00
Michael DeHaan
5683277e4a
Be smarter about when to abort a playbook -- if it's early, we just didn't match any hosts, so keep on, hosts might be dynamic.
2012-10-01 22:07:08 -04:00
Daniel Hokka Zakrisson
48c5d696d2
Remove debug print statement
2012-10-01 17:23:21 +02:00
Daniel Hokka Zakrisson
a83aa1071b
Give each task its own module_vars
...
Otherwise each task will overwrite the previous' items, among
other things.
2012-10-01 17:17:39 +02:00
Michael DeHaan
a2f76c1c69
If all hosts in a play fail, fail the whole playbook and don't bother printing out every remaining task.
2012-09-30 21:06:00 -04:00
Michael DeHaan
19b78cedc8
Abort a play when there are no more hosts in it.
2012-09-30 20:48:35 -04:00
Michael DeHaan
5846c1b8c4
Merge pull request #1125 from dagwieers/setup-retain
...
Make sure we retain facts between playbooks
2012-09-30 17:18:40 -07:00
Michael DeHaan
d0eba79760
Template out sudo_user so you can pass in variables using --extra-vars
2012-09-30 20:11:51 -04:00
Daniel Hokka Zakrisson
8a8ffa2342
Allow task includes to work with with_items
2012-09-30 13:40:52 +02:00
Dag Wieers
c84e76e31d
Make sure we retain facts between playbooks
...
This is mandatory if we want to make facts-modules (like network_facts, ilo_facts and esx_facts) work.
2012-09-28 17:44:51 +02:00
Dag Wieers
e7af005408
Revert only_if for variables and templating prompt
...
Since the condition was not templated, it wasn't working.
Only variables in local scope were used, which made this not very practical
2012-09-28 01:32:09 +02:00
Jonathan Palley
faed650bb1
allow vars in delegate_to
2012-09-26 03:47:17 +08:00
Jonathan Palley
620accf117
make delegate_to localhost act like local_action
2012-09-26 02:57:00 +08:00
Dag Wieers
6b6e3c64c8
Fix a typo in the prompt code
...
This is unfortunately related to not being able to reuse the same code that was tested.
2012-09-25 11:51:33 +02:00
Michael DeHaan
734db4ffe9
Merge pull request #1080 from dagwieers/prompt-only_if
...
Add an only_if option to vars_prompt to make prompts conditional
2012-09-24 17:42:17 -07:00
Dag Wieers
4e9a970616
Add an only_if option to vars_prompt to make prompts conditional
...
Sometimes you may want to allow variables through host_vars or inventory, but prompt for a value if it is not set or if the value does not conform to something specific. This option allows you to specify when you want to offer a prompt.
This patch also moves check_conditional to utils, and adds an is_unset() function which is nicer to read:
only_if: "not is_set('${var}')"
vs
only_if: "is_unset('${var}')"
2012-09-24 23:55:54 +02:00
Dag Wieers
069feb5d9c
Template the variable prompt to customize the message
...
We have a password-prompt for a configurable login name. Since we require to ask the password for this specific login, it is important to indicate what password needs to be prov ided on the prompt. So the prompt needs to be templated. That's what this patch does.
2012-09-24 22:37:51 +02:00
Daniel Hokka Zakrisson
cc948f339c
Allow including files through variables
...
$FILE{file} will be replaced with the contents of "file"
$PIPE{cat file} will be replaced with the output of "cat file"
2012-09-19 17:57:17 +02:00
Michael DeHaan
b8c4bb9e6e
Revert "Allow including files through variables"
...
This reverts commit bf47bb4753
.
Conflicts:
lib/ansible/utils.py
test/TestUtils.py
2012-09-19 10:31:23 -04:00
Michael DeHaan
b25b9fd840
Merge pull request #1058 from jkleint/devel
...
Support iteration over command output in with_items.
2012-09-18 17:55:40 -07:00
Michael DeHaan
544a8e44d7
Merge pull request #1053 from dhozac/varreplace-include
...
Allow including files through variables
2012-09-18 17:53:02 -07:00
John Kleint
2a002f5c0b
Support iteration over command output in with_items.
...
When the output of a command is stored in a register, this will create a
stdout_lines field in the result object that contains stdout split into a list
of lines. This list can then be iterated over using with_items.
2012-09-17 16:57:33 -04:00
Daniel Hokka Zakrisson
dd11b01350
Keep delegate_to so all auxiliary logic based on that works
2012-09-17 20:28:14 +02:00
Daniel Hokka Zakrisson
5bb0f6908b
Allow transport on tasks, and use it for local_action
2012-09-17 18:28:37 +02:00
Daniel Hokka Zakrisson
bf47bb4753
Allow including files through variables
...
$FILE{file} will be replaced with the contents of "file"
$PIPE{cat file} will be replaced with the output of "cat file"
2012-09-17 16:03:59 +02:00