Ansibleリストドッカーコンテナ

Ansibleリストドッカーコンテナ

特定のホストで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 {{ '}}' }}"

おすすめ記事