簡體   English   中英

從字典中的變量鍵獲取值

[英]Get a value from a variable key in dictionary

我有一個變量 env: prod ,我正在嘗試從特定區域的產品列表中獲取值。

屬性如下

   prod:
      us-west-2a:  xxxxxxxx
      us-west-2b:  xxxxxxxx
      us-east-1a:  xxxxxxxx
      us-east-1b:  xxxxxxxx

- set_fact:
    reg: "{{ ansible_ec2_placement_availability_zone }}"

- set_fact:
     detach_volumeid: '{{ vars[env].'reg' }}'

我正在嘗試獲取prod區域卷 id 的值,其中prod是一個變量, reg是一個變量。

特定的字典鍵可以用點 ( . ) 表示法尋址,但也可以用方括號表示法[]尋址。

當你想將一個鍵作為一個變量來尋址時,你將使用后面的形式。

所以給出劇本:

- hosts: all
  gather_facts: no
  
  tasks:
    - debug:
        msg: '{{ vars[env][reg] }}'
      vars:
        env: prod
        reg: us-east-1a
        prod:
          us-west-2a:  xxxxxxxx-w-2a
          us-west-2b:  xxxxxxxx-w-2b
          us-east-1a:  xxxxxxxx-e-1a
          us-east-1b:  xxxxxxxx-e-1b

這產生了回顧:

PLAY [all] ********************************************************************************************************

TASK [debug] ******************************************************************************************************
ok: [localhost] => {
    "msg": "xxxxxxxx-e-1a"
}

PLAY RECAP ********************************************************************************************************
localhost                  : ok=1    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   

暫無
暫無

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

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