土. 10月 8th, 2022

はじめに

AnsibleのTemplateモジュールはファイルの中身に変数を入れたいときなどにとても便利。
なお、Templateモジュールの使い方については、あだちんさんのブログが非常にわかりやすい。

Ansible’s Template module is very useful when you want to put variables in the contents of a file.
About how to use Template module, His blog is very easy to understand.

https://blog.adachin.me/archives/5526  

問題 problem

AnsibleでTemplateの転送に失敗する

Template transfer fails with Ansible

TASK [setup-hosts/development/web : Add Template user-setting files] ********
failed: [dev-web] (item={u'owner': u'cron', u'path': u'home/cron/script/backupcp.sh', u'group': u'cron', u'mode': u'755'}) => {"changed": false, "item": {"group": "cron", "mode": "755", "owner": "cron", "path": "home/cron/script/backupcp.sh"}, "msg": "AnsibleError: template error while templating string: Missing end of comment tag. String: ` '<<<<<'\n"}

特定の文字列がファイル内に存在しているとAnsibleに失敗するようだ

Ansible seems to fail if a specific string exists in the file

対処 deal

処理の最初、最後をそれぞれ、“` {% raw %} “` 、“` {% endraw %} “` で挟む。以下のようなイメージ

Insert “` {% raw%}  “` and “` {% endraw%} “` at the beginning and end of processing. The following image

{% raw %}
#!/bin/sh

echo "done"
{% endraw %}