dej*_*dej 6 linux ansible docker
我有一本剧本,其中一个任务收集有关在特定主机上运行 docker 容器的信息。
- name: Gather info
hosts: "{{ hosts }}"
gather_facts: no
tasks:
- name: Check all running containers
become: yes
command: docker ps --format "{{ \.Names }}"
register: dkr_ps
- debug: msg="{{dkr_ps}}"
Run Code Online (Sandbox Code Playgroud)
但不知何故,由命令模块运行的 docker cmd 仍然存在,并抛出以下错误:
TemplateSyntaxError: unexpected char u'\\' at 23
line 1
Run Code Online (Sandbox Code Playgroud)
我想我没有正确逃脱?
您有两个相互冲突的模板:命令所需的模板docker和 Ansible 中使用的 Jinja2 模板。Jinja2 正在尝试解释{{ .Names }}哪个 \xe2\x80\x99t 有效;错误消息来自\xe2\x80\x99s。
一般经验法则是通过将模板符号转换为有效的 Jinja2 表达式来转义 Docker 模板:
\ncommand: docker ps --format "{{ '{{' }} .Names {{ '}}' }}"\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
5011 次 |
| 最近记录: |