ansible - Ansible 环境变量或默认值
问题描述
如何从环境变量中获取值,但如果环境变量未设置,则使用默认值?
这是一个不起作用的例子
---
- name: a playbook
hosts: all
vars:
build_dir: "{{ lookup('env','BUILD_DIR') | default('builds/1.0.0/LATEST') }}"
tasks:
- debug: msg="{{ build_dir }}"
运行这个 playbook 会返回一个空字符串而不是默认值。
$ ansible-playbook build.yml
TASK [debug] ********************
ok: [amber] => {
"msg": ""
}
但是,它按预期工作以获取环境变量。
$ BUILD_DIR=LOL ansible-playbook build.yml
TASK [debug] ****************
ok: [amber] => {
"msg": "LOL"
}
解决方案
发现这个比我见过的其他一些选项更简洁、更容易阅读
"{{ lookup('env','BUILD_DIR') or 'builds/1.0.0/LATEST' }}"
推荐阅读
- ios - CF_RETURNS_RETAINED 可以用于桥接到 Swift 的 C 函数指针返回值吗?
- precision-recall - 我如何解释这个精确召回图?看起来很奇怪
- deep-learning - 以不同单位预测目标变量
- javascript - 如何使用过滤器获取数组的属性
- c# - 如何在 ZPL 中截断 ^FD 文本
- jquery - 将 HTML 字符串转换为 jQuery 对象并返回以某种方式移除父元素
- reactjs - React App:Windows + Microsoft Edge 95 稳定版导致白屏显示“Rangeerror:超出最大调用堆栈大小”
- ros - BNO055 通过 rosserial 用 a4988 驱动器控制 Nema 17 步进电机
- python - 我如何检查有多少成员在线 discord.py
- python - 仅在填写整个单词时才断言