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

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

Это мой файл lamp / tasks / main.yaml (lamp - это имя роли)

- import_task: httpd.yaml
- import_task: php.yaml
- notify: restart httpd

это мой файл lamp / handlers / main.yaml

 - name: restart httpd
   service:
    name: httpd
    state: restarted
    enabled: yes

мой основной файл playbook:

  - hosts: server1
    remote_user: root
    roles:
       - lamp

При выполнении playbook я получаю следующую ошибку:

ERROR! no action detected in task. This often indicates a misspelled module 
name, or incorrect module path.

The error appears to have been in '/playbooks/lamp/tasks/main.yaml': line 1, 
column 3, but may
be elsewhere in the file depending on the exact syntax problem.

The offending line appears to be:


- import_task: httpd.yaml
  ^ here


The error appears to have been in '/playbooks/lamp/tasks/main.yaml': line 1, 
column 3, but may
be elsewhere in the file depending on the exact syntax problem.

The offending line appears to be:


- import_task: httpd.yaml
  ^ here

exception type: <class 'ansible.errors.AnsibleParserError'>
exception: no action detected in task. This often indicates a misspelled 
module name, or incorrect module path.

The error appears to have been in '/playbooks/lamp/tasks/main.yaml': line 1, 
column 3, but may
be elsewhere in the file depending on the exact syntax problem.

The offending line appears to be:


- import_task: httpd.yaml
  ^ here

Я использую ansible 7.4 на centos7.Без обработчика это рабочий файл. Но при использовании обработчика он не работает. Недавно я начал изучать ansible. Пожалуйста, помогите мне найти решение. Я не понимаю, почему обработчик не поддерживает ..?

Рассматриваемая ошибка заключается в том, что import_task неверный синтаксис, используйте import_tasks (множественное число) вместо этого.

Но обработчики могут быть прикреплены к задачам / уведомлены из них, и import_tasks сам по себе не является задачей, поэтому он не будет делать то, что вы ожидаете. Вы должны уведомить обработчик из отдельных задач, которые должны вызвать перезапуск службы (например, изменения конфигурации).