在Ansible中,当出现"错误!动作语句冲突"的错误时,通常是由于在同一任务中使用了多个冲突的操作或语句。解决此问题的方法是确保任务中的操作语句是相互兼容的。
以下是一个示例,展示了如何解决这个错误:
- name: Example playbook
hosts: all
tasks:
- name: Task 1
command: echo "This is task 1"
shell: echo "This is an alternative command for task 1" # 冲突的操作语句
- name: Task 2
command: echo "This is task 2"
在上面的示例中,"Task 1"中的操作语句包含了两个冲突的命令(command和shell)。要解决这个问题,您可以选择删除其中一个操作语句,或者将其移动到另一个任务中。
修复后的示例代码如下:
- name: Example playbook
hosts: all
tasks:
- name: Task 1
command: echo "This is task 1"
- name: Task 1 Alternative
shell: echo "This is an alternative command for task 1"
- name: Task 2
command: echo "This is task 2"
在修复后的代码中,我们将冲突的操作语句分别放在了两个不同的任务中,以避免冲突。这样,Ansible就不会抛出"错误!动作语句冲突"的错误了。