有時候需要用到ansible的變量的嵌套解析,就是“變量中嵌套變量”。例子如下:
假設有一個外部傳遞的變量,system_code = CRM,而我們同時有一系列類似的變量,如:
ABS_port=10000
ETL_port=5678
CRM_port=1234
想通過system_code變量來決定我要用哪個xxx_port,所以需要變量嵌套。
ansible yaml寫法如下,在ansible 2.2中通過。(在2.5版本后有新的寫法)
- hosts: remote_node vars: SYSTEM: "{{system_code}}_port" # 先得到字符串CRM_port tasks: - name: "Get port number" shell: "echo {{ vars[SYSTEM] }}" # 再在vars字典中提取上面拼接得到的字符串結果,然后在全局變量中解析"CRM_port"的值