在Ansible中转义双花括号
如何在Ansible 1.9.2中转义双花括号?
例如,如何在以下shell命令中转义大括号?
- name: Test shell: "docker inspect --format '{{ .NetworkSettings.IPAddress }}' instance1"
回答:
这是一个非常干净和Ansible的本机解决方法,不依赖于docker --inspect
花括号。我们假设之前我们刚刚使用 Ansible
docker模块 引用了一个容器:
- name: query IP of client container shell: "docker exec {{ docker_containers[0].Id }} hostname -I"
register: _container_query
- name: get IP of query result
set_fact:
_container_ip: "{{ _container_query.stdout | regex_replace('\\s','') }}"
现在,在Variable中具有Docker容器的IP
_container_ip
。我还在我的文章《与Docker融为一体的婚姻》中发布了此变通办法。
[更新2015-11-03]删除了容器查询标准输出的空格。
[Update
2015-11-04]顺便说一句,官方的Ansible存储库中有两个请求请求,通过恢复Docker模块返回的事实,该解决方案变得不必要。因此,您可以通过来访问Docker容器的IP
docker_containers[0].NetworkSettings.IPAddress
。因此,请为这些拉取请求投票:
- 修复了破碎的事实#1457
- 泊坞窗模块:修复f38186c和80aca4b#2093引入的回归
以上是 在Ansible中转义双花括号 的全部内容, 来源链接: utcz.com/qa/433624.html