[英]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.