【问题标题】:SaltStack: "require: previous_state" needed?SaltStack:需要“要求:previous_state”吗?
【发布时间】:2019-09-02 09:23:00
【问题描述】:

我有一个由大学编写的 sls 脚本。下一个状态总是需要前一个状态。

例子:

apache:
  service.running:
    - name: apache2
    - enable: True
    ...

apache_modules:
  apache_module.enabled:
    ...
    - require:
      - pkg: apache

server.conf:
  file.managed:
    - name: /etc/apache2/sites-available/server.conf
    ...
    - require:
      - pkg: apache

apache_sites_enabled:
  apache_site.enabled:
    - names:
      - server
    - require:
      - file: server.conf

问题:需要这个“要求”吗?

我想这不是必需的,因为 salt 会一个接一个地执行状态。

我关心可读性,并希望文件尽可能小。

【问题讨论】:

    标签: salt-stack readability


    【解决方案1】:

    通常,Salt 按照指定的顺序执行状态,即“命令式”顺序。在同一个文件中,就是从上到下的意思。

    Require/Watch/Require_in/Watch_in 和其他可用于确保某些状态之间的特定顺序并更改此默认“线性”顺序。这是“声明性”命令。

    https://docs.saltstack.com/en/latest/ref/states/ordering.html#ordering-stateshttps://docs.saltstack.com/en/getstarted/config/requisites.html

    当需要特定顺序时,我倾向于在独立状态之间绝对使用必备条件(如公式),有时我也会在同一个状态文件中编写必备条件。

    【讨论】:

    • 抱歉吹毛求疵,但我不明白“'命令'命令”。我理解“隐式顺序”。但也许我对此了解的不够多。你说“有时我也在同一个状态文件中写必要条件”。在我读到的几行之间:大多数情况下,您为每个状态文件编写一个必要条件。这是真的?到目前为止,每个状态文件通常有大约十个必备条件。
    • “命令式”是 salt doc 使用的术语。它让我想起“命令式语言”(如 C)与“OO 语言”(如 Java、Ruby),我是这样理解的。另外:在同一个状态文件中,如果第一步是“pkg.installed”,第二步是“service.running”,我会让第二步需要第一步,因为没有安装 pkg 没有意义。
    • 但是“命令式”(= 从上到下)并不是绝对必要的,它是“安全带和大括号”类型的安全 :)
    猜你喜欢
    • 2015-02-10
    • 2011-09-11
    • 1970-01-01
    • 2021-06-08
    • 2022-11-03
    • 1970-01-01
    • 2011-09-15
    • 2012-08-15
    • 2010-11-28
    相关资源
    最近更新 更多