Это мой файл 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
сам по себе не является задачей, поэтому он не будет делать то, что вы ожидаете. Вы должны уведомить обработчик из отдельных задач, которые должны вызвать перезапуск службы (например, изменения конфигурации).