[英]How can i use if condition in vars file in ansible
是不是可以在anisble vars文件中做這樣的事情
env: "{{ lookup('env','MY_ENV') }}"
user: tom if {{ env }} else mike
這是你的問題的答案,我認為你不能使用env
作為變量,因為它是ansible中的保留字:
---
- hosts: all
gather_facts: no
vars:
ENV: "dev"
tasks:
- debug:
msg: "{%- if ENV == 'dev' -%} tom {%- else -%} mike {%- endif -%}"
ENV
值為dev
時的結果:
% ansible-playbook -i "localhost," test.yml -c local
PLAY [all] *********************************************************************
TASK [debug] *******************************************************************
ok: [localhost] => {
"msg": "tom"
}
PLAY RECAP *********************************************************************
localhost : ok=1 changed=0 unreachable=0 failed=0
當ENV
的值是其他值時的結果:
% ansible-playbook -i "localhost," test.yml -c local
PLAY [all] *********************************************************************
TASK [debug] *******************************************************************
ok: [localhost] => {
"msg": "mike"
}
PLAY RECAP *********************************************************************
localhost : ok=1 changed=0 unreachable=0 failed=0
希望對你有所幫助
一種方法是使用另一個查找到包含user-env映射的json文件。 例如:
user_envs.json:
{
"dev": "tom",
"prod": "mike"
}
抬頭:
{{ (lookup('file', 'user_envs.json') | from_json).get('dev') }}
現在沒有環境嘗試,但試一試!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.