7

Saltstack には、次のユース ケースがあります。

他の状態に含めることができる状態 redis.sls があります。redis.sls の結果は、redis.sls が含まれている状態に応じて、異なる構成にする必要があります。

例えば:

redis.sls:
--------
{% if x==1 %}
   #do something
{% else %}
   #do something else
{% endif %}


state_a.sls
-----------
{% set x=1 %}
include:
  - redis

state_b.sls
-----------
{% set x=2 %}
include:
  - redis

しかしxは *state_a* と *state_b* では認識されません

私はまた、次のようなもので柱の値を設定しようとしました:

{{salt['pillar.set']('x', 1)}}

しかし、それもうまくいきませんでした。

他のアイデアはありますか?

4

4 に答える 4

0

依存するもの、または使用される場所に基づいて、状態をパラメーター化したいようです。redis.sls 状態が変化するはずのパラメーターを設定しているものは何でも、redis の特定の構成に依存するように聞こえます。

私には、redis が存在する可能性のある複数の異なる状態があり、いくつかの状態は redis の 1 つの状態に依存し、他の状態は redis の他の状態に依存しているように思えます。

したがって、redis のインストールに 1 つの状態を与えると、redis の特定の構成はそれぞれ独自の状態になります。あなたのstate_aはredis_state_1に依存し、あなたのstate_bredis_state_2に依存する可能性があります。redis_state_1redis_state_2の両方がredisに依存します。あなたが求めているパラメーターの受け渡しはあまり明示的ではないように思えます。

于 2014-04-03T01:03:21.627 に答える
-1

SALT.STATES.ENVIRONはあなたのために働くかもしれません:

set_secret_key:
  environ.setenv:
    - name: SECRET_KEY
    - value: ABC123!@#abc
    - update_minion: True

[..]

settings_secret_key:
  file.replace:
    - name: {{ salt['pillar.get']('data:source_folder') }}superlists/settings.py
    - pattern: "SECRET_KEY =.+$"
    - repl: 'SECRET_KEY = os.environ["SECRET_KEY"]'
于 2016-05-07T11:29:55.460 に答える