Commit graph

2768 commits

Author SHA1 Message Date
Aleksej Romanov
05464816c2 Different return codes for different errors. 2012-10-04 17:43:25 +07:00
Dag Wieers
03af450bdc Module to assist users in understanding Ansible
After helping someone on IRC he was interested to have this debug module in upstream. This module simply 'prints' a message, and can be ordered to fail if needed. It helps to troubleshoot or understand inventory/facts issues and/or experiment with statements and conditions using only_if.

Here is a small example playbook:

```yaml
- hosts: all
  tasks:
  - local_action: debug msg="System $inventory_hostname has uuid ${ansible_product_uuid}"
  - local_action: debug msg="System $inventory_hostname lacks a gateway" fail=yes
    only_if: "is_unset('$ansible_default_ipv4.gateway')"
  - local_action: debug msg="System $inventory_hostname has gateway ${ansible_default_ipv4.gateway}"
    only_if: "is_set('$ansible_default_ipv4.gateway')"
```

outputting:
```
[root@moria ansible]# ansible-playbook -v -l localhost:x220 test6.yml

PLAY [all] *********************

GATHERING FACTS *********************
ok: [localhost]
ok: [x220]

TASK: [debug msg="System $inventory_hostname has uuid $ansible_product_uuid"] *********************
ok: [localhost] => {"msg": "System localhost has uuid d125a48c-364f-4e65-b225-fed42ed61fac"}
ok: [x220] => {"msg": "System x220 has uuid d125a48c-364f-4e65-b225-fed42ed61fac"}

TASK: [debug msg="System $inventory_hostname lacks a gateway" fail=yes] *********************
failed: [localhost] => {"failed": true, "msg": "System localhost lacks a gateway", "rc": 1}
ok: [x220] => {"msg": "System x220 has gateway 192.168.1.1"}

PLAY RECAP *********************
localhost                      : ok=2    changed=0    unreachable=0    failed=1
x220                           : ok=3    changed=0    unreachable=0    failed=0

```

I had some other plans for the module, like displaying host inventory and complete inventory to help understand inventory and facts modules, but that would require an action-plugin for transfering inventory information etc... And I am not sure this is wanted/best done in a module.
2012-10-04 09:50:18 +02:00
Jan-Piet Mens
9ed59da294 Allow user-specified $ansible_managed string with named parameters 2012-10-04 08:50:51 +02:00
Tim Bielawa
9f6da7b885 Fix variable injection in pause module args. Closes #1209 2012-10-03 23:52:26 -04:00
Michael DeHaan
761330b125 Fix module formatter indexing 2012-10-03 23:31:50 -04:00
Michael DeHaan
94546831b4 Typo fix/rebuild 2012-10-03 23:31:19 -04:00
Michael DeHaan
348b49c166 Fix typo 2012-10-03 23:27:43 -04:00
Michael DeHaan
88433eb93f Fix typo / rebuild 2012-10-03 21:00:27 -04:00
Michael DeHaan
826c71fcb1 Fix patterns typo, rebuild 2012-10-03 21:00:26 -04:00
Michael DeHaan
e170d7304b Added documentation on file force parameter 2012-10-03 20:57:36 -04:00
Michael DeHaan
a6f64a8e04 Merge pull request #1219 from tbielawa/move_modulepages
Library functions and modules should be in the 3 man page section. Also ...
2012-10-03 17:49:03 -07:00
Aleksej Romanov
01e922aa69 Indicate errors with exit code. 2012-10-04 03:11:14 +07:00
Tim Bielawa
85fb7c6d4b Library functions and modules should be in the 3 man page section. Also the files should end in '.3' 2012-10-03 10:18:55 -04:00
Michael DeHaan
8fa2070074 Merge pull request #8 from jpmens/rstlist
Makefile uses module_formatter now creates list of modules to include in .rst
2012-10-03 05:38:30 -07:00
Michael DeHaan
53d24ef002 Check in generated manpage documentation from modules 2012-10-02 22:46:49 -04:00
Michael DeHaan
046c6c66f2 various small doc tweaks 2012-10-02 22:43:46 -04:00
Michael DeHaan
ad5433b166 include version added info for individual fields 2012-10-02 22:36:27 -04:00
Michael DeHaan
f67aa85c3f Fixing various module related things. 2012-10-02 22:32:17 -04:00
Michael DeHaan
85a31616de Call os.path.expanduser in the creates= and removes= section of the command module so ~/ and the like works. 2012-10-02 22:12:49 -04:00
Michael DeHaan
b3548703f7 Merge pull request #1203 from dagwieers/fail-module
A fail module in order to fail execution on certain conditions
2012-10-02 19:07:38 -07:00
Michael DeHaan
d14741799a Merge pull request #1204 from dagwieers/fatal-red
Make fatal errors red
2012-10-02 19:06:36 -07:00
Michael DeHaan
459d9ea30d Merge pull request #1205 from dagwieers/ignore-cyan
Make ignored/skipped different from changed
2012-10-02 19:06:14 -07: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
f11ab4383a Make ignored/skipped different from changed
Since a skipped/ignored action is _very_ different from actual changes to a system, it always bothered me that  it was not easily distinguishable when skimming the output. This change makes ignore/skip a different color, and I chose cyan. Contemplated using dark-gray/blue, but prefered something that is readable with most terminal colors.
2012-10-02 21:49:04 +02:00
Dag Wieers
7acc0a632b Make fatal errors red 2012-10-02 21:45:42 +02:00
Dag Wieers
1d27909ec0 Added a fail module in order to fail execution on certain conditions
In some cases you may want to deliberately fail the execution of a playbook. In our provisioning workflow we want to have safeguards in place to avoid provisioning systems that are already in production. Since we reboot physical and virtual systems, it is mandatory we take all the precautions to prevent accidental provisioning.

So in our use-case we have the following at the very start of the provisioning playbook:

    ### Safeguard to protect production systems
    - local_action: fail msg="System is not ready to be staged according to CMDB"
      only_if: "'$cmdb_status' != 'to-be-staged'"

and we repeat the same task in the (separate included) play that takes care of (re)booting the system using our own boot-media, so that it cannot be accidentally separately run by someone.
2012-10-02 21:40:28 +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
Michael DeHaan
e1b1702616 Merge pull request #1201 from dhozac/setup-once-per-node
Only gather facts once per node per playbook run
2012-10-02 06:36:31 -07: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
56d45074af Merge pull request #1200 from broferek/master
Fix for issue #1194
2012-10-02 06:27:03 -07:00
Petetin Ludovic
17423c9268 Fix issue https://github.com/ansible/ansible/issues/1194 2012-10-02 15:12:33 +02:00
Michael DeHaan
9bab05bafc Merge pull request #1197 from dagwieers/utc-date
Make use of UTC dates for RPM timestamp
2012-10-02 05:32:10 -07:00
Dag Wieers
765061d445 Make use of UTC dates for RPM timestamp
So they can be shared/compared by people in different timezones
2012-10-02 14:29:57 +02:00
Michael DeHaan
4677699500 Merge pull request #1195 from jpmens/jtempl
Feature: file info on templates accessible to Jinja2 templates
2012-10-02 05:18:27 -07:00
Michael DeHaan
6616fba1ab Merge pull request #1189 from jpmens/nagpause
standardize DOCUMENTATION for nagios, pause
2012-10-02 05:15:56 -07:00
Jan-Piet Mens
5f04ef8b4c Feature: file info on templates accessible to Jinja2 templates
add ansible_managed
2012-10-02 14:15:27 +02:00
Michael DeHaan
7779da264d Merge pull request #1190 from jpmens/asy1
attempt at DOCUMENTATION for async_status
2012-10-02 05:15:21 -07:00
Jan-Piet Mens
a1f192976f attempt at DOCUMENTATION for async_status 2012-10-02 09:56:55 +02:00
Jan-Piet Mens
83029755f7 standardize DOCUMENTATION for nagios, pause 2012-10-02 09:15:11 +02:00
Michael DeHaan
f897f19fc5 Teach fireball mode to disable the fireball by paying attention to 'minutes=N' (default 30) and do not let fireball module crash
on input.
2012-10-01 22:41:00 -04:00
Michael DeHaan
14f7c85ce7 Include a space and a colon after prompts, so you don't have to put them in yourself. Consistent with documented behavior in examples/playbooks/prompts.yml 2012-10-01 22:15:34 -04:00
Michael DeHaan
b90eccc4f8 Merge pull request #1186 from dhozac/varreplacewi-nonstr
Allow non-string types in with_items variables
2012-10-01 19:10:05 -07:00
Michael DeHaan
2165351f2c Merge pull request #1185 from tbielawa/pause_docs
Add DOCUMENTATION to pause task
2012-10-01 19:09:24 -07:00
Michael DeHaan
b2ad63a860 Merge pull request #1183 from tbielawa/nagios_docs
Add DOCUMENTATION to nagios module.
2012-10-01 19:08:58 -07: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
Tim Bielawa
ca87fa56d8 Add DOCUMENTATION to pause task 2012-10-01 12:42:03 -04:00
Tim Bielawa
f3d9f8da7b Add DOCUMENTATION to nagios module. 2012-10-01 12:26:57 -04:00
Michael DeHaan
35de8da108 Merge pull request #1180 from dhozac/remove-debug-print
Remove debug print statement
2012-10-01 08:24:21 -07:00