[英]Using register in playbook for multiple 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
(例如:ClientA 应该取票 {{ hostvars['server']['ticket'][0]['stdout'] }}
一个客户端的输出示例:“stdout”:“9338e126e8dd454820870b3ba19f5344334c8b1d”##
注意:下面的播放是针对一个客户端的- hosts: ClientA tasks: shell: /path/to/bin --key /path/to/store-key/ticket.key --ticket {{ hostvars['server']['ticket']['stdout'] }}
需要输入来为下面的游戏写入 shell 值(对于多个客户端)##
- hosts: "{{ clients }}" vars: clients: - clientA - ClientB tasks: shell: /path/to/bin --key /path/to/store-key/ticket.key --ticket !!!!!!!!Please your input here !!!!!!!!!
##
可能的解决方案之一是
clients
组索引中添加到主机clients:
hosts:
clientA:
uid: 0
<etc>
clientB:
uid: 1
<etc>
uid
作为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.