Commit graph

1121 commits

Author SHA1 Message Date
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
Brian Coca
d7f38d07b3 fixed bug for string size mismatch, now substring depends on size of match string Signed-off-by: Brian Coca <briancoca+ansible@gmail.com>
Signed-off-by: Brian Coca <briancoca+dev@gmail.com>
2012-11-26 10:41:13 -05:00
Brian Coca
6a1e2aaff5 moved override matching string to variable changed test template to match Signed-off-by: Brian Coca <briancoca+ansible@gmail.com>
Signed-off-by: Brian Coca <briancoca+dev@gmail.com>
2012-11-26 10:41:13 -05:00
Brian Coca
68f5d69365 added ability to override jinja enviornment from first line of template Signed-off-by: Brian Coca <briancoca+ansible@gmail.com>
Signed-off-by: Brian Coca <briancoca+dev@gmail.com>
2012-11-26 10:41:13 -05:00
Daniel Hokka Zakrisson
0c70abfaa9 Make sure any existing groups gets reused 2012-11-25 12:42:30 +01:00
Daniel Hokka Zakrisson
5504f13c68 Create groups in the first run through the file
Fixes #1208.
2012-11-25 01:00:14 +01:00
Daniel Hokka Zakrisson
2bfb7deec0 Set all in the returned dict
Otherwise the group is lost, and group_vars/all isn't used.
2012-11-25 00:15:22 +01:00
Michael DeHaan
33196ec131 Merge pull request #1669 from dagwieers/ssh-tcgetattr2
Use proper pseudo-tty's instead of pipes when using subprocess
2012-11-24 08:30:26 -08:00
Dag Wieers
7192eb3047 Use proper pseudo-tty's instead of pipes when using subprocess
This change avoids the "tcgetattr: Invalid argument" error by making sure the ssh we start does have a proper pseudo-tty.

We could also check whether our current terminal is a proper terminal (by doing a tcgetattr ourselves) but I don't think this adds anything.

This closes #1662 (if all use-cases have been tested: sudo, passwd)
2012-11-23 22:39:30 +01:00
Daniel Hokka Zakrisson
db1a65342a Set -c local cwd to . if basedir is empty 2012-11-23 13:36:09 +01:00
Daniel Hokka Zakrisson
715d875dcb Group should only return its own variables
Otherwise, a host in two groups, A and B, using a variable defined
in group A and all will get the value of all, as B's variables will
include the all variable.

Partially fixes #1647.
2012-11-23 00:54:07 +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
bd7e02d629 Get all groups' variables in order of depth
Fixes all not being processed, as well as the order of the variable
precedence
2012-11-23 00:20:52 +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
ddef608c94 Wrap all remote commands in sh 2012-11-22 20:06:30 +01:00
Daniel Hokka Zakrisson
047d089cea Restore git output on --version
Broken by the move from utils.py to utils/__init__.py
2012-11-21 23:54:42 +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
Michael DeHaan
82f4aef959 Merge pull request #1648 from dhozac/local-cwd-basedir
Use runner's basedir as cwd for -c local
2012-11-21 06:40:01 -08:00
Michael DeHaan
41af2fce64 Merge pull request #1650 from dagwieers/port-not-integer-exception
Provide a proper error when the remote_port is not an integer
2012-11-21 06:39:24 -08:00
Daniel Hokka Zakrisson
3ce63d845e remote_port is None by default 2012-11-21 14:10:10 +01:00
Daniel Hokka Zakrisson
6b69b37eb0 Merge pull request #1649 from dagwieers/template-port
Allow the remote port to be templated per play
2012-11-20 13:16:34 -08:00
Dag Wieers
85bba04a1c Provide a proper error when the provided port is not an integer
As reported on the mailinglist, the user received a ValueError when the port number was not templated (fixed in #1649) and therefore it was not an integer. This change will catch the exception and provide a proper error so it is more clear.
2012-11-20 19:06:27 +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
48898993b9 Fix removing of temporary files 2012-11-20 16:51:19 +01:00
Daniel Hokka Zakrisson
0ebf4b2d5a Add destination path to fetch result 2012-11-20 15:39:48 +01:00
Daniel Hokka Zakrisson
bdf05ec9a0 Use runner's basedir as cwd for -c local 2012-11-20 15:36:43 +01:00
Daniel Hokka Zakrisson
f89f07871d Fix typo in first_available_file error path 2012-11-19 23:02:26 +01:00
Daniel Hokka Zakrisson
f95fefd8c5 Use plugin system to find modules 2012-11-18 19:09:21 +01:00
Daniel Hokka Zakrisson
5dd2ec2cae Add a way to add directories to just one type of loader 2012-11-18 19:08:59 +01:00
Daniel Hokka Zakrisson
d2abfb9ff8 Ensure runner adds its basedir, so ansible can benefit from plugins 2012-11-18 18:37:20 +01:00
Daniel Hokka Zakrisson
5183417de8 Reinstate ANSIBLE_KEEP_REMOTE_FILES
Fixes #1395.
2012-11-18 18:32:45 +01:00
Daniel Hokka Zakrisson
11175781b8 Use slurp for fetch is sudo is enabled and needed
Fixes #1020.
2012-11-18 17:54:00 +01:00
Daniel Hokka Zakrisson
11afd84d32 Drop dwim prefix from returned items in fileglob
Fixes #1618.
2012-11-18 00:25:38 +01:00
Michael DeHaan
1b78dabcd4 Merge pull request #1632 from dhozac/use-ssh-conn-section-for-scp
Use the ssh_connection section for scp_if_ssh
2012-11-17 07:41:35 -08:00
Michael DeHaan
3bc0adacbf Merge pull request #1634 from dhozac/ssh-password
Add password support to -c ssh via sshpass
2012-11-17 07:37:51 -08:00
Daniel Hokka Zakrisson
e6fed9f216 Add password support to -c ssh via sshpass 2012-11-16 23:46:49 +01:00
Daniel Hokka Zakrisson
021172f78d Use the configured remote_tmp even for root 2012-11-16 23:46:17 +01:00
Daniel Hokka Zakrisson
c906f44d90 Use the ssh_connection section for scp_if_ssh 2012-11-16 23:45:47 +01:00
Michael DeHaan
ab5c0dfe7e __new__ does not take arguments, remove deprecation warning 2012-11-14 19:58:44 -05:00
Michael DeHaan
096607eea4 Allow fireball to transfer binary files, fixup fireball docs, make fetch work with fireball. 2012-11-14 18:37:17 -05: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
Michael DeHaan
52e2654faf Merge pull request #1621 from dhozac/lookup-with-vars
Lookup plugin arguments need to be templated
2012-11-14 06:32:39 -08:00
Daniel Hokka Zakrisson
17e4ce97a4 Create a set of all the hosts in a group to prevent duplicates
Fixes #1516.
2012-11-14 13:35:21 +01:00
Daniel Hokka Zakrisson
e74ffd6764 Lookup plugin arguments need to be templated 2012-11-14 11:17:30 +01: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
44af1408ee Merge pull request #1611 from dhozac/no-hostvars-templating
Keep hostvars from being templated
2012-11-13 05:20:48 -08: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
c200c26ced Keep hostvars from being templated 2012-11-13 11:34:34 +01:00
Michael DeHaan
e3f7f86ac4 Merge pull request #1608 from dhozac/when_set-non-string
Try to ensure the entire value is quoted
2012-11-12 17:45:47 -08:00
Michael DeHaan
d5be13c3f0 Merge pull request #1605 from romeotheriault/add-md5-support-to-fetch-module
add bsd md5 support to fetch module
2012-11-12 17:45:07 -08:00
Daniel Hokka Zakrisson
0ca1775bda Try to ensure the entire value is quoted 2012-11-13 02:40:29 +01:00
Daniel Hokka Zakrisson
25a8787e95 Template all variables before returning them to Jinja2 2012-11-13 02:39:33 +01:00
Daniel Hokka Zakrisson
d2dce1d63f Make lookup plugin replacements part of the main variable logic 2012-11-13 02:18:05 +01:00
Daniel Hokka Zakrisson
a2bb3a09d2 Completely ignore stray $ in input
Previously, "a $ string $var" would not have gotten replaced at all.
2012-11-13 02:13:10 +01:00
Daniel Hokka Zakrisson
24b536d7ed Add some comments to templating system 2012-11-13 02:13:04 +01:00
Romeo Theriault
4cd133ed8f add bsd md5 support to fetch module 2012-11-12 10:37:00 -10: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
Michael DeHaan
c890ae18e7 Merge pull request #1575 from dhozac/parameterized-playbook-include
Add parameterized playbook includes
2012-11-12 05:17:38 -08:00
Michael DeHaan
3e855a5fcd Merge pull request #1593 from dhozac/lookup_generic
Add support for generic $XXX() to call $LOOKUP()
2012-11-12 05:07:52 -08:00
Michael DeHaan
451f05fa3d Merge pull request #1594 from sfromm/issue1342
Add ability to specify syslog facility for modules
2012-11-12 05:06:47 -08:00
Romeo Theriault
54b7f59416 remove verbose option on digest call 2012-11-11 19:43:40 -10:00
Stephen Fromm
06e54c0b97 Add ability to specify syslog facility for modules
Update constants.py so that one can specify environmental variable
ANSIBLE_SYSLOG_FACILITY or syslog_facility in ansible.cfg to define
the syslog facility to use.  Alternatively, you can specify
ansible_syslog_facility in inventory.  Runner now replaces
the syslog facility in the openlog() call with the default or
the injected variables ansible_syslog_facility.

This also updates hacking/test-module to behave similarly.
2012-11-11 00:14:08 -08:00
Daniel Hokka Zakrisson
9924555623 Add support for generic $XXX() to call $LOOKUP() 2012-11-10 23:46:37 +01:00
Michael DeHaan
40e49b6a5a Merge pull request #1592 from jpmens/lookup_dnstxt3
$LOOKUP(dnstxt): handle exceptions
2012-11-10 08:52:30 -08:00
Jan-Piet Mens
bd55899a60 $LOOKUP(dnstxt): handle exceptions
de-spaced
2012-11-10 17:50:21 +01:00
Michael DeHaan
db3e8c0803 Merge pull request #1579 from jpmens/lookup_env
Add environment $LOOKUP plugin
2012-11-10 06:30:37 -08:00
Michael DeHaan
35679e0093 Merge pull request #1578 from jpmens/lookup_redis
Add Redis GET $LOOKUP plugin
2012-11-10 06:30:10 -08:00
Jan-Piet Mens
6efc98e8a3 Add environment $LOOKUP plugin
remove support for multiple vars
2012-11-10 08:26:09 +01:00
Jan-Piet Mens
e3e545418d Add Redis GET $LOOKUP plugin
renamed
2012-11-10 08:21:48 +01:00
Jan-Piet Mens
e32f4a0564 Move get_docstring from module_formatter into ansible/utils 2012-11-09 17:15:41 +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
Michael DeHaan
325025a5b6 Merge pull request #1574 from dhozac/ssh-moar-data
Make sure we get all data
2012-11-09 05:08:27 -08:00
Michael DeHaan
fa17540a06 Merge pull request #1570 from skvidal/addhost
Addhost module
2012-11-09 04:51:15 -08:00
Daniel Hokka Zakrisson
e97a22603f Make sure we get all data 2012-11-09 11:24:57 +01:00
Jan-Piet Mens
38d9dc8bff Add DNS TXT record LOOKUP plugin 2012-11-09 11:06:49 +01:00
Seth Vidal
70d61fe7e8 need to use the variabled results 2012-11-09 00:16:17 -05:00
Seth Vidal
e147ad4213 add add_host action plugin - add hosts to inventory during a playbook
run - lets act on those hosts in the next play
2012-11-09 00:16:17 -05:00
Michael DeHaan
03591e0fc8 Merge pull request #1551 from dagwieers/local_action-fail
Turn 'fail' and 'debug' modules into action_plugins
2012-11-08 16:47:24 -08:00
Michael DeHaan
a31ca213a5 Merge pull request #1562 from dagwieers/oneline-fix
Make --oneline return one line (except with multiline output)
2012-11-08 16:45:33 -08:00
Michael DeHaan
03f4b0f923 Merge pull request #1560 from dagwieers/module-output-consistency
Make module output more consistent wrt. changed/failed
2012-11-08 16:45:05 -08:00
Michael DeHaan
3dc31a049f Merge pull request #1527 from fdavis/devel
Support scp in an ssh connection
2012-11-08 16:42:37 -08:00
Dag Wieers
d42eb2563b Make --oneline return one line (except with multiline output)
Currently the message prepared for --oneline mode adds a newline to the msg-string, which is then printed (adding another newline). This change removes the added newline so that successes and failures do not differ in output (except if the output is multiline).
2012-11-08 14:49:40 +01:00
Dag Wieers
fe0c70fe9d Make module output more consistent wrt. changed/failed
- Make sure exit_json() always returns a changed= value
- Modify the yum module to not return failed=False
- Modify install() and latest() similar to remove() in yum module
- Changed exit_json(failed=True, **res) into a fail_json(**res)
- Make sure yum rc= value reflects loop (similar to how we fixed remove())
2012-11-08 12:28:18 +01:00
Dag Wieers
dd07011a65 Only print 'Invoked with' if there are arguments to the module
This closes #1519
2012-11-07 23:51:44 +01:00
Dag Wieers
d8459425a0 Turn 'fail' and 'debug' modules into action_plugins
This makes more sense as there is no purpose in running these remotely.
2012-11-07 23:34:53 +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
Michael DeHaan
a1f7334634 Merge pull request #1525 from jhoekx/custom-filter-plugins
Support custom jinja2 filters.
2012-11-07 13:55:21 -08:00
Michael DeHaan
c9ae19c44c Merge pull request #1547 from dagwieers/action-boolean
Bail out if an action is not a string
2012-11-07 13:52:07 -08:00
Dag Wieers
c9e62d7061 Fix for an exception when for whatever reason the inventory script fails
This avoids a traceback that gave no clue as to what was happening.

This is in line with the change from #1535
2012-11-07 15:16:00 +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
Michael DeHaan
75d3b77454 Merge pull request #1535 from dagwieers/inventory-exception
Fix for an exception when for whatever reason the inventory script fails
2012-11-07 04:06:33 -08:00
Daniel Hokka Zakrisson
00aa584c57 Don't double dwim first_available_file in template 2012-11-06 20:34:05 +01:00