我需要在Ansible剧本中动态更改主机
下面是我的示例剧本
---
- name: Deployment Playbook
hosts: “{{Servers}}”
tasks:
- name: deployment
shell: "deploy.sh {{DEPLOY_NAME}}"
在上面的游戏中,我需要根据DEPLOY_NAME更改服务器
示例
如果{{DEPLOY_NAME}} = APP
THEN {{Servers}} = 172.17.65.17
如果{{DEPLOY_NAME}} = SCRIPT
THEN {{Servers}} = 172.17.65.66
[以前,我们将此作为AWX的清单传递给我们。但是现在我们需要在剧本上进行处理。
所以请在这个问题上帮助我
我认为您无法做到。我认为这可能对您有用,而是改为执行此操作:
---
- name: Deployment Playbook
hosts: localhost
tasks:
- name: deployment
shell: ssh root@{{ item.server }} deploy.sh {{ item.app }}
loop:
- { server: 'server1', app: 'app_1' }
- { server: 'server1', app: 'app_1' }
您甚至可以通过使用“ awx中的清单”,将其加载为包含该列表的“ vars_files”,来改善此状况。因此,您的最终循环将遍历该列表。像这样:
---
- name: Deployment Playbook
hosts: localhost
vars_files:
- your_list_file.yml
tasks:
- name: deployment
shell: ssh root@{{ item.server }} deploy.sh {{ item.app }}
loop: "{{ your_list_variable }}"