Ansible-Roles:
==============
Roles are to reduce the complexity of playbook we use ansible roles
Using roles
You can use roles in three ways:
at the play level with the roles option: This is the classic way of using roles in a play.
at the tasks level with include_role: You can reuse roles dynamically anywhere in the tasks section of a play using include_role.
at the tasks level with import_role: You can reuse roles statically anywhere in the tasks section of a play using import_role.
Using roles
directory structure of roles are:
================================
roles/
common/ # this hierarchy represents a "role"
tasks/ #
main.yml # tasks file can include smaller files if warranted
handlers/ #
main.yml # handlers file
templates/ # files for use with the template resource
ntp.conf.j2 # templates end in .j2
files/ #
bar.txt # files for use with the copy resource
foo.sh # script files for use with the script resource
vars/ #
main.yml # variables associated with this role
defaults/ #
main.yml # default lower priority variables for this role
meta/ #
main.yml # role dependencies
library/ # roles can also include custom modules
module_utils/ # roles can also include custom module_utils
lookup_plugins/ # or other types of plugins, like lookup in this case
webtier/ # same kind of structure as "common" was above, done for the webtier role
monitoring/ # ""
fooapp/ # ""
Any pre_tasks defined in the play.
Any handlers triggered by pre_tasks.
Each role listed in roles:, in the order listed. Any role dependencies defined in the role’s meta/main.yml run first, subject to tag filtering and conditionals. See Using role dependencies for more details.
Any tasks defined in the play.
Any handlers triggered by the roles or tasks.
Any post_tasks defined in the play.
Any handlers triggered by post_tasks.
Ещё видео!