Ansible Handlers.
Sometimes you want a task
to run only when a change is made on a machine. For example, you may want to
restart a service if a task updates the configuration of that service, but not
if the configuration is unchanged. Ansible uses handlers to address this use
case. Handlers are tasks that only run when notified.
We will write a playbook handlers.yml to install httpd package
and then use a handler to start the httpd service. This handler will be
executed only when change is made.
# vi handlers.yml
- hosts: jenkins
gather_facts: True
become: yes
vars:
my_content: "This files created using var concept"
tasks:
- name: create a file var_file.txt..
copy:
dest: /tmp/var_file.txt
content: "{{ my_content }}"
notify: httpd service start
- name: install httpd service
yum:
name: httpd
state: latest
handlers:
- name: httpd service start
service:
name: httpd
state: restarted
2. Multi handlers.yml
- name: Handlers Example
hosts: server1
gather_facts: false
become: true
tasks:
- name: print message-1
debug:
msg: "First Message"
changed_when: true
notify: run_handler
- name: print message-2
debug:
msg: "Second Message"
changed_when: true
notify: run_handler
handlers:
- name: run_handler
debug:
msg: "Today's date and time: {{ '%d-%m-%Y %H:%M:%S' | strftime }}"
What is tags.
Ansible tags are another great feature which can help you execute respective tasks from the playbook. By default all the tasks from the playbook are executed but with tags we can control this behavior and execute only the tasks with the matching tags.
Output :-
Disable tags :-
No comments:
Post a Comment