Ansible if文が構文エラーになる

実現したいこと

サービスの状態がrunningでない場合、起動させたい
その際、リトライ数3回、1回につき10秒の待ち時間を設定

インデントの問題だと考えて調整してみましたが解消しません。
何かお気づきのことがありましたらご教授頂けないでしょうか。
宜しくお願い致します。

発生している問題・エラーメッセージ

Syntax Error while loading YAML. found character that cannot start any token The error appears to be in 'test.yml': line ??, column ?, but may be elsewhere in the file depending on the exact syntax problem. The offending line appears to be: var: chk_hoge {% if chk_hoge.status.SubState != "running" retries:3 delay:10 %} ansible.builtin.service: name: hoge state: started ^ here

該当のソースコード

test.yml

1- name: Chefk running of hoge 2 ansible.builtin.systemd: 3 name: "hoge.service" 4 register: chk_telegraf 5- name: Check result 6 ansible.builtin.debug: 7 var: chk_hoge 8 {% if chk_hoge.status.SubState != "running" retries:3 delay:10 %} 9- name: Start hoge when not running 10 ansible.builtin.service: 11 name: hoge 12 state: started 13 {% endif %}

試したこと

nameディレクティブを外してもエラーになります

{% if chk_hoge.status.SubState != "running" retries:3 delay:10 %} ansible.builtin.service: name: hoge state: started {% endif %}

%にハイフンを付けても解消しませんでした

{%- if chk_hoge.status.SubState != "running" retries:3 delay:10 -%} ansible.builtin.service: name: hoge state: started {%- endif -%}

当初は下記のuntilを使いましたが、lintでif文を促されました

- name: Check result ansible.builtin.debug: var: chk_hoge - name: Start hoge when not running ansible.builtin.service: name: hoge state: started until: chk_hoge.status.SubState != "running" retries:3 delay:10

コメントを投稿

0 コメント