|
|
|
---
|
|
|
|
# see examples.yml first!
|
|
|
|
# This file explains some more advanced features of playbooks.
|
|
|
|
# because of the comments it's less concise than it normally is. But feel
|
|
|
|
# free to comment your playbooks if you like.
|
|
|
|
|
|
|
|
- hosts: dbservers
|
|
|
|
|
|
|
|
# we can define variables the normal way...
|
|
|
|
|
|
|
|
vars:
|
|
|
|
release: 2.0
|
|
|
|
|
|
|
|
# but they can also come from other files. This can be a relative
|
|
|
|
# or absolute path. This is a good way to store 'secret' variable
|
|
|
|
# files but still keep the playbook in public source control
|
|
|
|
|
|
|
|
vars_files:
|
|
|
|
- external_vars.yml
|
|
|
|
|
|
|
|
# as with before, every play has a list of tasks in it
|
|
|
|
|
|
|
|
tasks:
|
|
|
|
|
|
|
|
# tasks can be written the normal way...
|
|
|
|
|
|
|
|
- name: arbitrary command
|
|
|
|
action: command /bin/true
|
|
|
|
|
|
|
|
# or we can promote reuse and simplicity by including tasks
|
|
|
|
# from other files, for instance, to reuse common tasks
|
|
|
|
|
|
|
|
- include: base.yml
|
|
|
|
|
|
|
|
# we could also have done something like:
|
|
|
|
# - include: wordpress.yml user=timmy
|
|
|
|
# and had access to the template variable {{ user }} in the
|
|
|
|
# included file, if we wanted to. Variables from vars
|
|
|
|
# and vars_files are also available inside include files
|
|
|
|
|
|
|
|
handlers:
|
|
|
|
|
|
|
|
# handlers can also be included from files, to promote reuse
|
|
|
|
# and simpler recipes, you may wish to only have one
|
|
|
|
# handler file for all your plays and playbooks
|
|
|
|
|
|
|
|
- include: handlers.yml
|
|
|
|
|
|
|
|
# you can mix things that are directly in the file with things
|
|
|
|
# that are included. Order is executed as written, but only
|
|
|
|
# handlers that have been notified get executed
|
|
|
|
|
|
|
|
- name: restart foo
|
|
|
|
action: service name=foo state=restarted
|
|
|
|
|
|
|
|
# ===============================================================
|
|
|
|
|
|
|
|
# Here's a second play in the same playbook. This will be run
|
|
|
|
# after the first playbook completes on all hosts. You may want
|
|
|
|
# a different play for each class of systems, or may want a different
|
|
|
|
# play for each stage in a complex multi-node deployment push
|
|
|
|
# process. How you use them are up to you.
|
|
|
|
|
|
|
|
# any play in a playbook can be executed by a user other than root
|
|
|
|
# if you want. sudo support is coming too.
|
|
|
|
|
|
|
|
- hosts: webservers
|
|
|
|
user: mdehaan
|
|
|
|
|
|
|
|
# vars must be specified again for the next play in the playbook
|
|
|
|
# but can be reused by including from vars_files if you want
|
|
|
|
# you can use vars, vars_files, or both. vars_files overrides
|
|
|
|
# those set in vars.
|
|
|
|
|
|
|
|
vars:
|
|
|
|
release: 2.0
|
|
|
|
vars_files:
|
|
|
|
- external_vars.yml
|
|
|
|
|
|
|
|
|
|
|
|
# these all runs as the user 'mdehaan'. If there were any handlers
|
|
|
|
# they would as well.
|
|
|
|
|
|
|
|
tasks:
|
|
|
|
|
|
|
|
- name: some random command
|
|
|
|
action: command /bin/true
|
|
|
|
|
|
|
|
|