Ansible多重条件不工作
Ansible版本:2.2.1.0 主机文件:Ansible多重条件不工作,ansible,ansible-2.x,Ansible,Ansible 2.x,Ansible版本:2.2.1.0 主机文件: [船长] 54.65.104.4 [奴隶] 52.69.71.248 tasks/main.yaml - name: Checking if the node is already having spark master installed (master) stat: path: /etc/init.d/spark-master register: spark-master when: inventory_h
[船长]
54.65.104.4
[奴隶]
52.69.71.248
tasks/main.yaml
- name: Checking if the node is already having spark master installed (master)
stat:
path: /etc/init.d/spark-master
register: spark-master
when: inventory_hostname in groups['master']
- name: Checking if the node is already having spark worker installed
stat:
path: /etc/init.d/spark-slave
register: spark-slave
when: inventory_hostname in groups['slaves']
# Downloading to the master
- include: download.yaml
when: (inventory_hostname in groups['master']) and ( spark-master.stat.exists == false)
# Downloading to the slaves
- include: download.yaml
when: (inventory_hostname in groups['slaves']) and ( spark-slave.stat.exists == False )
但当我执行脚本时,我收到以下错误:
fatal: [52.69.71.248]: FAILED! => {"failed": true, "msg": "The conditional check '(inventory_hostname in groups['slaves']) and ( spark-slave.stat.exists == False )' failed. The error was: error while evaluating conditional ((inventory_hostname in groups['slaves']) and ( spark-slave.stat.exists == False )): 'slave' is undefined\n\nThe error appears to have been in '/opt/ansible-role-spark/tasks/download.yaml': line 2, column 3, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n---\n- name: Download Spark\n ^ here\n"}
有人能帮我找出我犯的错误吗。或者引用以下条件:
when: "(inventory_hostname in groups['master']) and ( spark-master.stat.exists == false)"
或者不要使用括号。引用条件,如:
when: "(inventory_hostname in groups['master']) and ( spark-master.stat.exists == false)"
或者不要使用括号。问题中的错误是关于: 变量名应该是字母、数字和下划线 看
但是,您的剧本中还有其他设计缺陷,这是不可能的。问题中的错误是关于: 变量名应该是字母、数字和下划线 看
但是你的剧本中还有其他设计缺陷,这是不可能的。抛出错误的
下载火花任务在哪里?抛出错误的下载火花任务在哪里?是的,我的剧本中有设计缺陷,虽然我已将变量名更改为带下划线。如果初始化脚本不存在,我想在主服务器和从服务器上执行download.yml
,但初始化脚本的名称在两台服务器上都不同。是的,我的剧本中存在设计缺陷,虽然我已将变量名更改为带下划线。如果init脚本不存在,我想在主服务器和从服务器上执行download.yml
,但两台服务器上的init脚本名称不同。