ansible - 使用额外变量传递的字符串值中的空格以外的内容被丢弃
问题描述
我正在尝试使用该--extra-vars
标志传递一个逗号分隔的字符串。这样做可以按预期工作,我可以,
在 jinja 模板中拆分字符串并遍历结果列表:
ansible-playbook test_before_role.yml \
-e DNS_SERVER="153.64.251.202,153.64.251.201" \
--inventory=qa_vm_inventory.yml
由于这个剧本是从 Jenkins 调用的,我想确定任何无意输入的空格都会得到妥善处理。
ansible-playbook test_before_role.yml \
-e DNS_SERVER="153.64.251.202, 153.64.251.201 " \
--inventory=qa_vm_inventory.yml
下面是我的神社模板。
{% for host in DNS_SERVER.split(',') %}
nameserver {{ host }}
{% endfor %}
ansible 不喜欢将空格作为额外变量的一部分吗?还是我忽略了什么?一些答案将不胜感激!
谢谢。
解决方案
使用'-e'时,你真的需要引用字符串(虽然它可能对一个变量起作用,如果你想传递多个,你肯定需要引用),所以把它改成this and it应该管用:
ansible-playbook test_before_role.yml \
-e "DNS_SERVER='153.64.251.202, 153.64.251.201 '" \
--inventory=qa_vm_inventory.yml
然后,您可以修剪拆分元素:
{% for host in ( DNS_SERVER.split(',') | map('trim') | list ) %}
nameserver {{ host }}
{% endfor %}
推荐阅读
- javascript - 如何让一个盒子到达一个大盒子的边缘
- javascript - 在 MongoDB 中显示文档字段时出现问题
- c++ - 作为类成员的 Lambda
- laravel - 我想用雄辩的多态关系做评论系统?
- java - 初学Java问题:____不能解析为一个类型
- r - 对分组数据迭代地执行 ANOVA(使用 ezANOVA)
- amazon-web-services - 服务器发送的事件 (sse) 可以与 AWS Cloudfront 一起使用吗?
- c# - 在 powershell 中列出 .NET 命名空间的类?
- javascript - ReactJs:地图函数中的道具类型无效。“array”类型的无效道具“children”
- r - rapply 在列表中传递错误,无法读取传递的参数