Назад | Перейти на главную страницу

Как установить vim с помощью соляного стека?

У меня есть серверы мазеров и миньонов, работающие на centos7. Я хочу установить пакет vim на сервер миньонов. Для этого я создал каталог 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

Как устранить эту ошибку?

Структура каталога srv должна быть:

/srv/
 - salt
 - pillar

Ваш vim.sls должен находиться в каталоге salt, а не в каталоге / srv.

Кроме того, помните, что для vim, в зависимости от семейства ОС (Redhat и др.), Имя пакета не всегда одно и то же. и для этого может быть очень полезно использование столбов:

{% 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'] }}

И независимо от того, в каком семействе ОС находится ваш миньон, будет развернут правильный пакет.

Изменить: вот как я использую свои столбы: в / srv / pillars у меня есть файл top.sls с этим в нем

base:
  '*':
    - packages

Затем на том же уровне, что и top.sls, у меня есть файл packages.sls с содержимым, которое я размещал в нем ранее. Что, например, можно использовать {{pillar ['vim']}} в моих рецептах соли. Но в вашем случае это не нужно. Это просто простой способ справиться с различными вариантами Linux (RHEL, Debian и др.). И если я хочу добавить больше переменных данных, я все равно могу добавить еще один sls на том же уровне.