如何在Ansible 1.9.2中转义双花括号?
例如,如何在以下shell命令中转义大括号?
- name: Test shell: "docker inspect --format '{{ .NetworkSettings.IPAddress }}' instance1"
这是一个非常干净和Ansible的本机解决方法,不依赖于docker --inspect花括号。我们假设之前我们刚刚使用 Ansible docker模块 引用了一个容器:
docker --inspect
- 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融为一体的婚姻》中发布了此变通办法。
_container_ip
[更新2015-11-03]删除了容器查询标准输出的空格。
[Update 2015-11-04]顺便说一句,官方的Ansible存储库中有两个请求请求,通过恢复Docker模块返回的事实,该解决方案变得不必要。因此,您可以通过来访问Docker容器的IP docker_containers[0].NetworkSettings.IPAddress。因此,请为这些拉取请求投票:
docker_containers[0].NetworkSettings.IPAddress