2017-12-05 11 views
1

In ansible ersetzt werden, muss ich daemon.json Datei erzeugen, die mit log-setzt:"mit" mit ansible

{% if docker_log_dict is defined %} 
    "log-opts": {{ docker_log_dict.log_opts | default('[]') }}, 
{% endif %} 

Mit

log_opts: | 
     { 
     "syslog-address": "tcp://{{ my_ip_run }}:514", 
     "tag": {% raw %}"{{.Name}}/{{.FullID}}"{% endraw %} 
     } 

Aber dann, wenn ich überprüfen, die erzeugte daemon.json Datei, die ich erhalte:

... 
"log_opts": 
     { 
     'syslog-address': 'tcp://10.10.10.10:514', 
     'tag': {% raw %}'{{.Name}}/{{.FullID}}'{% endraw %} 
     } 

Sache ist, wenn ersetzt, ansible ist mit einfachem Zitat ersetzt statt Doppel Zitate.

Beim Neustart von Docker-Daemon wird es fehlschlagen, wenn ich doppelte Anführungszeichen verwende?

Ich verstehe nicht, warum das passiert.

Wer weiß, wie man es repariert ???

+0

Wie wäre es 'default ("[]")' statt 'default (‘ [] ') ' – avix

+0

ja, ok, aber das ist der Fall, wenn' docker_log_dict.log_opts' leer ist, aber in meinem Fall ist es nicht leer, also sollte es mich in diesem Fall nicht beeinflussen. Ich werde es trotzdem ändern –

Antwort