如何使一个自定义状态依赖于另一个?

Jef*_*uer 6 salt-stack

如何使用sls文件中的必备项使一个自定义状态依赖于另一个自定义状态?

例如: 两个自定义状态一个在_states/seuss.py模块:

# seuss.py
def green_eggs():
    return {'name': 'green_eggs', 'result': True, 'comment': '', 'changes': {}}

def ham():
    return {'name': 'ham', 'result': True, 'comment': '', 'changes': {}}
Run Code Online (Sandbox Code Playgroud)

我想要ham依赖green_eggs:

# init.sls

have_green_eggs:
  seuss.green_eggs:
  - require:
    - user: seuss

have_ham:
  seuss.ham:
  - require:
    - ???
Run Code Online (Sandbox Code Playgroud)

如何???依赖成功完成green_eggs

Dan*_*ins 8

你会想要:

have_ham:
  seuss.ham:
    - require:
      - seuss: have_green_eggs
Run Code Online (Sandbox Code Playgroud)

但是,您当前正在定义seuss资源的两种状态,这意味着a seuss.ham或被seuss.green_eggs调用者have_green_eggs都可以满足该要求.

如果您不想这样,那么您将必须在单独的文件中定义状态(例如seuss_ham.existsseuss_green_eggs.exists).