У меня есть серверы мазеров и миньонов, работающие на 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 на том же уровне.