[英]Using register in playbook for multiple clients
First task in my playbook will be executed in server.我的剧本中的第一个任务将在服务器中执行。 Second task will be executed in clients.
第二个任务将在客户端执行。 ##
##
- hosts: Server
vars:
clients:
- clientA
- ClientB
tasks:
- name: generate ticket on server and save it as a variable
shell: /path/to/bin ticket {{ clients }}
register: ticket
(Example: ClientA should take ticket {{ hostvars['server']['ticket'][0]['stdout'] }} (例如:ClientA 应该取票 {{ hostvars['server']['ticket'][0]['stdout'] }}
output example for one client: "stdout": "9338e126e8dd454820870b3ba19f5344334c8b1d" ##一个客户端的输出示例:“stdout”:“9338e126e8dd454820870b3ba19f5344334c8b1d”##
- hosts: ClientA tasks: shell: /path/to/bin --key /path/to/store-key/ticket.key --ticket {{ hostvars['server']['ticket']['stdout'] }}
Need inputs to write shell value for below play (for multiple clients) ##需要输入来为下面的游戏写入 shell 值(对于多个客户端)##
- hosts: "{{ clients }}" vars: clients: - clientA - ClientB tasks: shell: /path/to/bin --key /path/to/store-key/ticket.key --ticket !!!!!!!!Please your input here !!!!!!!!!
## ##
One of possible solutions is to可能的解决方案之一是
clients
group index of the hostclients
组索引中添加到主机clients:
hosts:
clientA:
uid: 0
<etc>
clientB:
uid: 1
<etc>
uid
as array index in ticket
variableuid
作为ticket
变量中的数组索引来寻址客户端的令牌- hosts: serverA
tasks:
- name: generate ticket on server and save it as a variable
shell: /path/to/bin ticket {{ item }}
register: ticket
with_items:
- "{{ groups['clients'] }}"
- hosts: clients
tasks:
- name: checkticket
shell: /path/to/bin --key /path/to/store-key/ticket.key --ticket {{ hostvars['serverA']['ticket']['results'][uid]['stdout'] }}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.