gpt4 book ai didi

salt-stack - 状态文件中的函数和 saltstack 中命令行中的函数有什么区别?

转载 作者:行者123 更新时间:2023-12-04 01:01:09 26 4
gpt4 key购买 nike

当我使用 saltstack 来管理我的服务器时。我发现了一件有趣的事情:当我运行 salt '*' pkg.installed httpd 时,我收到以下消息:pkg.installed 不可用。但是我可以在我的 .sls 文件中使用 pkg.installed 函数,并且效果很好。所以,我对此感到困惑。我认为这是因为 saltstack.

谁能帮帮我?

最佳答案

这里有两个相关但不同的概念。

  1. Salt 执行模块
  2. salt 状态模块。

执行模块是大部分工作实际发生的地方,通常是您在命令行上运行的模块。例如:

salt '*' pkg.install vim

这将直接调用您操作系统的包管理器,例如 yum 或 apt,然后安装 vim。

状态模块是有状态的命令,位于执行模块的“上方”。状态模块将检查所需的结果是否已经存在,并进行任何必要的更改以获得所需的状态。它们的共轭方式与执行模块不同。例如在这个 salt 状态文件(sls 文件)中:

cat /srv/salt/vim.sls

install_vim_please:
pkg.installed:
- name: vim

然后你可以运行 state.sls 执行模块来应用这个带有 pkg.installed 状态的 sls 文件。

salt '*' state.sls vim

因为我们使用的是 pkg.installed 状态,Salt 会检查你的操作系统的包管理器,看看是否已经安装了 vim。如果包管理器说 vim 尚未安装,Salt 只会尝试安装 vim。

将您的 Salt States 保存在 sls 文件中可以很容易地将它们保存在 git 或您用来跟踪它们的任何 vcs 中。

您可以跳过 sls 文件并从命令行有状态地运行命令,如下所示:

salt '*' state.single pkg.installed name=vim

关于salt-stack - 状态文件中的函数和 saltstack 中命令行中的函数有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37253393/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com