Назад | Перейти на главную страницу

ansible: обработчик не запущен

Моя книга

---
- name: Nuovo server GV
  gather_facts: no
  hosts:
    - new-gv.vm
  roles:
    - ssh_configuration
  handlers:
    - name: Restart sshd
      service:
        name: sshd
        state: restarted

в ssh_configuration файл задач есть это

- name: Setup alternate SSH port
  become: yes
  become_method: su
  become_user: root
  lineinfile:
    dest: "/etc/ssh/sshd_config"
    regexp: "^Port"
    line: "Port {{ configured_port }}"
  notify:
    - Restart sshd

Проблема в том, что Restart sshd НЕ выполняется.

Я пробовал и повторял много раз чистый перезапуск, и я уверен: добавление строки «Порт 1122» добавляется в файл удаленного хоста.

Я спрашиваю, как диагностировать проблему, не могу понять, не сработал ли обработчик или по какой-то причине сломался.

Я также пробовал добавить

- name: Ensure SSH is reloaded if need be
  meta: flush_handlers

в -vvvv режим я вижу ТОЛЬКО

META: ran handlers

Но я ожидал раздела «ЗАПУСК ПОГРУЗЧИКА», если не ошибаюсь

Я уверен, что это не Ansible Bug, это только из-за моей неопытности

Проблема здесь в том, что обработчик определен в playbook когда это должно было быть определено в роли. Место

- name: Restart sshd
  service:
    name: sshd
    state: restarted

внутри roles/ssh_configuration/handlers/main.yml и он должен работать.

Я удалил определение обработчика из книги игр.

я создал /roles/ssh_configuration/handlers/main.yml:

- name: Restart sshd
  service:
    name: sshd
    state: restarted

Изменен playbook в

---
- name: Nuovo server GV
  gather_facts: no
  hosts:
    - new-gv.vm
  roles:
    - ssh_configuration
  handlers:
    - include_tasks: roles/ssh_configuration/handlers/main.yml
      

это работает