如何使用 salt stack 安装 vim?

如何使用 salt stack 安装 vim?

我有在 centos7 上运行的 salt-stack maser 和 minion 服务器。我想在 minion 服务器中安装 vim 包。为此,我在 etc 下创建了 srv 目录和 vim.sls 文件。

我的 vim.sls 文件看起来像这样。

vim:
  pkg:
    - installed

当我运行使用时 salt '*' state.sls vim出现错误。

192.168.94.155:
    Data failed to compile:
----------
    No matching sls found for 'vim' in env 'base'
ERROR: Minions returned with non-zero exit code

如何解决此错误?

答案1

srv 目录的结构应该是:

/srv/
 - salt
 - pillar

您的 vim.sls 应该在 salt 目录中,而不是在 /srv 目录中。

此外,请注意对于 vim,根据操作系统系列(Redhat 和其他系统),软件包名称并不总是相同的。为此,使用 pillars 可能会非常有帮助:

{% if grains['os_family'] == 'RedHat' %}
apache: httpd
git: git
gvim: vim-X11
vim: vim-enhanced
{% elif grains['os_family'] == 'Debian' %}
apache: apache2
{% else %}
apache: apache2
git: git
gvim: gvim
vim: vim
{% endif %}

通过这样做,你可以做以下事情

deploy editors:
  pkg.installed:
    - pkgs:
      - {{ pillar['vim'] }}
      - {{ pillar['gvim'] }}

并且无论您的 minion 位于哪个操作系统系列,都会部署正确的软件包。

编辑:这是我使用支柱的方式:在 /srv/pillars 中我有一个包含以下内容的 top.sls 文件

base:
  '*':
    - packages

然后,在与 top.sls 相同的级别上,我有一个 packages.sls 文件,其中包含我之前发布的内容。例如,可以在我的盐配方中使用 {{ pillar['vim'] }}。但在你的情况下,它不是必需的。这只是处理各种 Linux 风格(RHEL、Debian 等)的简单方法,如果我想添加更多变量数据,我仍然可以在同一级别添加另一个 sls

相关内容