Ich muss Einzel- und doppelte Anführungszeichen in einem ansible Playbook ordnungsgemäß entkommen, um die Umgebungsvariable festzulegen. Keines dieser Werke:Wie doppelten und einfachen Anführungszeichen in YAML innerhalb der gleichen Zeichenfolge zu entkommen
- name: Set environment variable
command: >
export EXTRA_CONFIG=“'”{"client": {"subscriptions": ["DIND-Worker"], "cluster": "internal"}}“'”
- name: Set environment variable
command: >
export EXTRA_CONFIG=''{"client": {"subscriptions": ["DIND-Worker"], "cluster": "internal"}}''
- name: Set environment variable
command: >
export EXTRA_CONFIG=''{\"client\": {\"subscriptions\": [\"DIND-Worker\"], \"cluster\": \"internal\"}}''
auf diese Sah:
http://yaml.org/spec/current.html#id2532720
https://github.com/dotmaster/toYaml/issues/1
Die Fehlermeldung ich erhalte, ist:
fatal: [ip.address]: FAILED! => {"changed": false, "cmd": "export 'EXTRA_CONFIG={\"client\":' '{\"subscriptions\":' '[\"DIND-Worker\"],' '\"cluster\":' '\"internal\"}}'", "failed": true, "msg": "[Errno 2] No such file or directory", "rc": 2}
Können Sie versuchen, die 'Shell' anstelle des' Befehls' Moduls zu verwenden? Sie können dann einfach durch '\" 'entkommen. Wenn Sie nur die env vars auf einer Taskbasis benötigen, können Sie auch' shell' '' environment' 'Feature verwenden wie beschrieben [hier] (http://stackoverflow.com)/questions/31775099/how-to-set-environmental-variables-using-ansible) – fishi