1
0
Fork 0
mirror of https://github.com/ansible-collections/community.general.git synced 2024-09-14 20:13:21 +02:00
community.general/examples/playbooks/conditionals_part1.yml

51 lines
1.5 KiB
YAML
Raw Normal View History

2012-03-14 00:27:13 +01:00
---
# this is a demo of conditional imports. This is a powerful concept
# and can be used to use the same recipe for different types of hosts,
# based on variables that bubble up from the hosts from tools such
# as ohai or facter.
#
# Here's an example use case:
#
# what to do if the service for apache is named 'httpd' on CentOS
# but is named 'apache' on Debian?
# there is only one play in this playbook, it runs on all hosts
# as root
2012-03-14 00:27:13 +01:00
- hosts: all
user: root
# we have a common list of variables stored in /vars/external_vars.yml
# that we will always import
# next, we want to import files that are different per operating system
# and if no per operating system file is found, load a defaults file.
# for instance, if the OS was "CentOS", we'd try to load vars/CentOS.yml.
# if that was found, we would immediately stop. However if that wasn't
# present, we'd try to load vars/defaults.yml. If that in turn was not
# found, we would fail immediately, because we had gotten to the end of
# the list without importing anything.
vars_files:
- "vars/external_vars.yml"
2013-05-05 19:30:26 +02:00
- [ "vars/{{ facter_operatingsystem }}.yml", "vars/defaults.yml" ]
# and this is just a regular task line from a playbook, as we're used to.
# but with variables in it that come from above. Note that the variables
# from above are *also* available in templates
2012-08-07 02:00:31 +02:00
2012-03-14 00:27:13 +01:00
tasks:
- name: ensure apache is latest
2013-05-05 19:30:26 +02:00
action: "{{ packager }} pkg={{ apache }} state=latest"
2012-03-14 00:27:13 +01:00
- name: ensure apache is running
2013-05-05 19:30:26 +02:00
action: service name={{ apache }} state=running
2012-08-07 02:00:31 +02:00