簡體   English   中英

Ansible run_once with_items

[英]Ansible run_once with_items

嘗試僅在 with_items 中的第一項上在 Ansible 中運行此任務。 我無法更改 cluster_server_names 變量,因為它在其他地方使用。 我是否需要一個單獨的任務來注冊一個僅包含我想要的服務器名稱的新變量,還是有其他可能的方法?

   - name: "Provision public IP in dev"
     uri:
       url: "{{ api_url }}/servers/{{ item }}/publicIPAddresses"
       headers:
         Authorization: "REMOVED"
         Content-Type: "application/json"
         Accept: "application/json"
       method: POST
       body_format: json
       status_code:
         - 200
         - 201
         - 202
       body:
         ports: [{"protocol":"TCP","port":"80"}]
     no_log: false
     register: blueprint
     run_once: true
     with_items:
       - "{{cluster_server_names |json_query(get_server_names)}}"

恐怕我沒有辦法對此進行測試,但請嘗試第first過濾器:

- name: "Provision public IP in dev"
  uri:
    url: "{{ api_url }}/servers/{{ server }}/publicIPAddresses"
    headers:
      Authorization: "REMOVED"
      Content-Type: "application/json"
      Accept: "application/json"
    method: POST
    body_format: json
    status_code:
      - 200
      - 201
      - 202
    body:
      ports: [{"protocol":"TCP","port":"80"}]
  no_log: false
  register: blueprint
  run_once: true
  vars:
    server: "{{cluster_server_names | json_query(get_server_names) | first }}"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM