2017-05-09 7 views
0

minionのホスト名を取得するための鉱山機能を追加します。saltstackのカスタムmine_functionに関する問題が発生しました

pillar/custom.sls

mine_functions: 
    custom: 
    - mine_function: grains.get 
    - nodename 

I手動 salt '*' saltutil.refresh_pillar

を実行し、salt '*' mine.get '*' custom出力を実行するときによりピラーデータを更新予想通り、すべての下にノード名データと手先のリストを示しています。私は、テンプレートファイルに次のthewをしようとすると

問題は、次のとおりです。

{%- set custom_nodes = [] %} 
bootstrap.servers={% for host, custom in salt['mine.get']('role:foo', 'custom', expr_form='grain').items() %} 
    {% do hosts.append(custom + ':2181') %} 
{% endfor %}{{ custom_nodes|join(',') }} 

私はちょうどサーバーのノード名の私のリストがあるべき空きスペースを取得します。

誰かが私が間違っていることを指摘できたと思っていましたか?

答えて

0

これは私のために正常に動作します:

pillar/custom.sls

mine_functions: 
    id_list: 
    mine_function: grains.get 
    key : nodename 

templete.sls

{% for server in salt['mine.get']('*', 'id_list') | dictsort() %} 
server {{ server }} {{ addrs[0] }}:80 check 
{% endfor %} 
0

実は答えは非常に簡単でした。私は、地雷データにアクセスする前に既存のミニオンを再起動する必要があることを知らなかった。

3

リストをhostsに追加していますが、その後にcustom_nodesを使用しているようです。

これは目的にあったのですか?

私はあなたが実際にしたいことは

{%- set custom_nodes = [] %} 
bootstrap.servers={% for host, custom in salt['mine.get']('role:foo', 'custom', expr_form='grain').items() %} 
    {% do custom_nodes.append(custom + ':2181') %} 
{% endfor %}{{ custom_nodes|join(',') }} 
だと思います
関連する問題