openSUSE Leap 16

Ansible : Playbook を利用する (notify)2025/12/26

 

[notify] と [handlers] を利用することで、[notify] を指定したタスク実行後に [handlers] で定義したタスクを実行することができます。

[1] 以下の例は、管理対象ホストの [/etc/sysconfig/apache2] を編集した後、[apache2] を再起動する Playbook です。
suse@dlp:~>
vi playbook_sample.yml
- hosts: target_servers
  become: yes
  become_method: sudo
  handlers:
  - name: restart apache2
    service: name=apache2 state=restarted
  tasks:
  - lineinfile:
      path: /etc/sysconfig/apache2
      regexp: '^APACHE_SERVERNAME'
      line: "APACHE_SERVERNAME=\"{{ ansible_fqdn }}\""
    notify: restart apache2
    tags: Edit_sshd_config

suse@dlp:~>
ansible-playbook playbook_sample.yml --ask-become-pass

BECOME password:

PLAY [target_servers] **********************************************************

TASK [Gathering Facts] *********************************************************
ok: [10.0.0.51]
ok: [10.0.0.52]

TASK [lineinfile] **************************************************************
changed: [10.0.0.51]
changed: [10.0.0.52]

RUNNING HANDLER [restart apache2] **********************************************
changed: [10.0.0.51]
changed: [10.0.0.52]

PLAY RECAP *********************************************************************
10.0.0.51                  : ok=3    changed=2    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
10.0.0.52                  : ok=3    changed=2    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

# 確認

suse@dlp:~>
ansible target_servers -m command -a "grep '^APACHE_SERVERNAME' /etc/sysconfig/apache2"

10.0.0.52 | CHANGED | rc=0 >>
APACHE_SERVERNAME="node02.srv.world"
10.0.0.51 | CHANGED | rc=0 >>
APACHE_SERVERNAME="node01.srv.world"
関連コンテンツ