特定のホストで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}}"
ただし、コマンドモジュールで実行されているdocker cmdがまだ存在し、次のエラーが発生します。
TemplateSyntaxError: unexpected char u'\\' at 23
line 1
私がきちんと脱出できないようですが?
ベストアンサー1
コマンドに必要なテンプレートdocker
とAnsibleで使用されるJinja2テンプレートの2つの競合するテンプレートがあります。 Jinja2はどちらが無効かを説明しようとします{{ .Names }}
。これがエラーメッセージのソースです。
一般的な経験則は、テンプレートシンボルを有効なJinja2式に変換してDockerテンプレートをエスケープすることです。
command: docker ps --format "{{ '{{' }} .Names {{ '}}' }}"