ansible - Ansible 模棱两可的环境值
问题描述
我在 Ansible 中收到以下警告:
[WARNING]: Non-string value found for env option. Ambiguous env options should be wrapped in quotes to avoid YAML parsing. This will become an error in Ansible 2.8. Key: PORT; value will be treated as: 12345
所以我去查找了这个值的来源,并将它的所有实例都用引号括起来。或者我是这么想的。我仍然收到警告。
所以我去了代码中出现的地方,它似乎是这样的:
docker_container:
env: '{{ params | combine(extra_params, {"PORT": my_port|int + amount|int * 10 })}}'
这是一种用于处理同一容器的多个实例的设置,每个实例都有一个唯一的端口,以免相互干扰。
而且我不确定如何在不破坏该设置的情况下解决该问题。计算完成后可以再次转换为字符串吗?我应该提前做吗?这里最好的选择是什么?
解决方案
作为状态下docker_container 模块的 ansible 文档env
必须引用 YAML 解析器可能解析为数字、布尔值或其他类型的值(例如
"true"
),以避免数据丢失。
所以你必须将你的结果转换为带引号的字符串。
env: '{{ params | combine(extra_params, {"PORT": (my_port|int + amount|int * 10) | string })}}'
推荐阅读
- android - React native build success but there is no release apk
- bloom-filter - 如何从散列函数生成散列值以及如何从这些散列值中获取整数值?
- node.js - Axios 没有发送会话数据
- spring-boot - 无法监听某些主题(有三个主题,但只能找到两个主题的日志“分区分配:[.....]”)
- javascript - 为什么 promise 和 async/await 以不同的顺序解析 promise?
- flutter - 使用 Multi Image Picker 将多个图像上传到 API
- python-3.x - 使用 ADAM 作为优化器的批量归一化神经网络
- php - 如何仅授予特定页面的 AuthUserFile 访问权限?
- javascript - 成功数据从 AJAX GET 类型返回 null
- regex - 具有多个关键字的Google表格匹配类别到字符串