Welcome to mirror list, hosted at ThFree Co, Russian Federation.

conditionals_part1.yml « language_features - github.com/ansible/ansible-examples.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 6c8c920ec2831a7c47d8b290a420a5f01cd0fa9d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
---
# 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

- hosts: all
  remote_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"

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

  tasks:

  - name: ensure apache is latest
    action: "{{ packager }} pkg={{ apache }} state=latest"

  - name: ensure apache is running
    service: name={{ apache }} state=running