2017-09-03 5 views
0

CentOS7での責任を持つCarbon Aggregatorを有効にしようとしていますが、 "ansible_processor_cores"という可変変数でsystemctlサービスを有効にしています。そして、それは動作しません。ここで 役割の例です:{0 .. {{ansible_processor_cores}}でsystemctlサービスを有効にする可能性がありません。

- name: enable carbon-aggregator 
    service: 
    name: '[email protected]{0..{{ansible_processor_cores -3}}}' 
    enabled: yes 
    state: started 
    daemon_reload: yes 

Carbon.conf.j2:

{% for aggr in range(ansible_processor_cores -2) %} 
[aggregator:{{aggr}}] 
{% endfor %} 

エラーは次のとおりです。

が失敗しました! msg ":"開始できません サービスカーボンアグリゲータ@ {0..1}: カーボンアグリゲータ@ \ x7b0.1.1 \ x7dのジョブ。 プロセスがエラーコードで終了したため、サービスが失敗しました。\ "systemctl status \"カーボンアグリゲータ@ \ x7b0.1.1 \\ x7d.service \ "\"と\ "journalctl -xe \" 。

炭素 - アグリゲータ@ x7b0..1の\のx7d.service

:\詳細\ n "は}

私はここで見るように、私は尋ねたdidntのいくつかのサービスを有効にしようとしています210

どこから来たのかわかりません。 私はそれをやる場合は、手動で、それはそのように完璧に動作します:

sudo systemctl enable [email protected]{0..1} 

任意の提案ですか?

+0

このモジュールでは、1つのサービスしか指定しませんが、これはあなたの考え方と解釈されません。あなたはwith_itemsを使う必要があります。 – papey

+0

@papeyこの具体的な例がどのように見えるような例がありますか? – muzafarow

+0

これを行うためのきれいな方法を見つけるために私は掘り下げています – papey

答えて

2

多くのサービスを開始するには、with_sequenceループを使用することができます。詳細については、Loopsのドキュメントを参照してください。私はwith_sequenceのドキュメントが間違っていると思われます。上記のループは[email protected][email protected][email protected]、および[email protected]name:セットで、serviceモジュールを4回呼び出すと、4つのコアを持つシステムで

- name: enable carbon-aggregator 
    service: 
    name: '[email protected]{{ item }}' 
    enabled: yes 
    state: started 
    daemon_reload: yes 
    with_sequence: start=0 end={{ansible_processor_cores-1}} 

の例では、次のようになります。

関連する問題