--- # see intro_example.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: all # 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: - vars/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: tasks/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. This example really # doesn't notify any handlers, it is just showing you how they would # be included (see intro_example for usage). - include: handlers/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: - vars/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