[jinja2] .j2テンプレートファイルのifはスペースを空けないとエラーになる
rundeck用のymlファイルを書いていて、通知のところだけ環境ごとに分けたいなーって思ってこんな感じに設定しました。
{{ rundeck.jobs.is_notification }}
に、本番環境ならtrueが、その他ならfalseが返ってきて通知の分を出し分けたいって感じです
- description: '15分毎にhogeを実施'
name: hoge_job
nodesSelectedByDefault: true
{% if rundeck.jobs.is_notification %}
notification:
onfailure:
plugin:
configuration:
webhook_url: {{ rundeck.jobs.notification.slack_webhook }}
type: SlackNotification
notifyAvgDurationThreshold: null
{% endif %}
schedule:
month: '*'
time:
hour: '*'
minute: '*/15'
seconds: '0'
weekday:
day: '*'
year: '*'
実行してみるとエラー。 なんだか前の行と一緒にされているみたいです。
TASK [hoge_jobs : exec hoge] ***************************************
fatal: [hoge_ip]: FAILED! => {
...
"stderr": "Error: Jobs Document was invalid for format yaml: mapping values are not allowed here\n in \"<reader>\", line 3, column 3:\n
"Request failed: 400 Bad Request"
...
}
解決方法
結構悩んだのですが、1行空けるだけで解決します。
- description: '15分毎にhogeを実施'
name: hoge_job
nodesSelectedByDefault: true
{% if rundeck.jobs.is_notification %}
notification:
onfailure:
plugin:
configuration:
webhook_url: {{ rundeck.jobs.notification.slack_webhook }}
type: SlackNotification
notifyAvgDurationThreshold: null
{% endif %}
schedule:
month: '*'
time:
hour: '*'
minute: '*/15'
seconds: '0'
weekday:
day: '*'
year: '*'
ymlは改行が挟まっていても読み込めるので見栄えが悪くなる以外は問題ないです。本当にこの解決方法しかないのかな。。。。
一旦これで。
Author And Source
この問題について([jinja2] .j2テンプレートファイルのifはスペースを空けないとエラーになる), 我々は、より多くの情報をここで見つけました https://qiita.com/mikene_koko/items/385d6d9cf4034d24226c著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .