显示错误处理程序/main.yml文件的处理程序main.yml必须包含任务列表

时间:2019-07-20 06:40:42

标签: ansible ansible-role

我在handlers / main.yml中建立了一些角色,我已经散布了一些处理程序作业,但无法执行它们。这是错误消息:

  

错误!角色“ sample-mysql”的handlers / main.yml文件必须包含   任务列表

错误似乎出在'/home/automation/plays/roles/sample-mysql/handlers/main.yml'中:第2行,第3列,但可能在文件的其他位置,具体取决于确切的语法问题。

The offending line appears to be:

---
  handlers:
  ^ here

我做了一些更改,但仍然无法正常工作。我还希望该文件从另一个文件加载处理程序。有可能这样做吗?例如-include:指令

---
  handlers:
  - name: "Start mysql"
    service:
      enabled: true
      name: mysqld
      state: started
  - name: "Start firewalld"
    service:
      enabled: true
      name: firewalld
      state: started
  

错误!角色“ sample-mysql”的handlers / main.yml文件必须包含   任务列表

错误似乎出在'/home/automation/plays/roles/sample-mysql/handlers/main.yml'中:第2行,第3列,但可能在文件的其他位置,具体取决于确切的语法问题。

违规行似乎是:

---
  handlers:
  ^ here

2 个答案:

答案 0 :(得分:0)

您的角色中有一个文件:handlers/main.yml。 编辑该文件,然后添加以下任务:

---
- name: a task
  shell: echo

保存

答案 1 :(得分:0)

处理程序文件位置为 /repo_name/roles/sample-mysql/handlers/main.yaml
在main.yaml内添加以下内容。

---
- name: Start mysql
  service:
   name: mysqld
   state: started
   enabled: true

要调用此处理程序,请在您的主要剧本中加入以下内容: /repo_name/roles/sample-mysql/tasks/main.yaml

notify: "Restart iis service"

您不能简单地执行处理程序。在sample-mysql文件夹中,应该有称为任务和处理程序的文件夹。