Ответная роль не может запустить Apache через обработчик

У меня есть эта простая роль для Apache (в CentOS7):

Роли / апач / задачи / main.yml

---
- name: Add epel-release repo
  yum:
    name: epel-release
    state: present

- name: Install Apache2
  yum:
    name: httpd
    state: present

- name: Insert Index Page
  copy:
    src: index.html
    dest: /var/www/html/index.html

Роли / Apache / обработчики / main.yml

---
- name: Start Apache
  service: name=httpd state=started

- name: verify that the web service is running
  command: systemctl status httpd
  register: status_result

- name: debug
  debug: var=status_result

with-role.yml - playbook того же уровня, что и каталог 'role'

---
- name: Install apache2 in CentOS 7
  hosts: 1.23.4.56
  become: true
  roles:
    - apache

Затем я запускаю playbook следующим образом:

$ ansible-playbook -u root --private-key ~/.ssh/this_key.ppk with-roles.yml -i "1.23.4.56" -vvvv

Вот хвостовая часть подробного вывода на экран:

    ...
    ...
    "mode": "0644", 
    "owner": "root", 
    "path": "/var/www/html/index.html", 
    "size": 11, 
    "state": "file", 
    "uid": 0
}
META: ran handlers
META: ran handlers

PLAY RECAP *******************************************************************************************************************
1.23.4.56              : ok=4    changed=0    unreachable=0    failed=0   

но когда я вошел в 1.23.4.56, на машине установлен httpd, но он остановлен (что означает, что обработчик не работал). Что я делаю неправильно?

2 ответа

Обработчик выполняется только тогда, когда он уведомлен.

См. Обработчики: выполнение операций при изменении

Ответ оказывается в https://serverfault.com/questions/617548/always-trigger-handler-execution-in-ansible согласно подсказкам Рене Пийя.

В частности, мне пришлось добавить это в конец ролей /apache/tasks/main.yml

...
...
- name: Apache Starter
  command: /bin/true
  notify: Start Apache
Другие вопросы по тегам