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

Как я могу указать среду для файла top.sls соли из Vagrant?

Я хочу использовать Vagrant для развертывания ряда ящиков с солью.

Я просмотрел все доступные варианты соли Vagrant, доступные в salty-vagrant (теперь встроенные), и я не вижу ни одного, что позволило бы мне указать, какую «среду» использовать, как указано в salt.sls

dev:
  'webserver*dev*':
    - webserver
  'db*dev*':
    - db
qa:
  'webserver*qa*':
    - webserver
  'db*qa*':
    - db

Я хочу иметь один и тот же солевой каталог для всех моих типов машин и использовать разные файлы Vagrant (или даже параметры для vagrant), чтобы определить, создаю ли я блок разработчика, блок qa, блок db и т. Д.

Есть ли способ передать эту информацию от Vagrant к соли?

Самый простой способ передать информацию миньону в Vagrant - это файл минона. Ты можешь определить зерна в файле миньонов, но также ID минона.

Я сам установил набор ящиков Vagrant, используя следующий подход. Вот несколько выдержек:

# top.sls (excerpt)
base:
  'webserver*':
    - webserver
  'db*':
    - db

В этом примере webserver* и db* записи - это имена хостов. Я обнаружил, что Vagrant очень поздно устанавливает имя хоста (по крайней мере, когда я это пробовал), поэтому я передал файл minon с жестко закодированным именем minon в vagrant:

# Vagrantfile (excerpt)
config.vm.synced_folder "salt/roots/", "/srv/"
config.vm.provision :salt do |salt|
  salt.minion_config = "salt/minion"
  salt.run_highstate = true
end

И файл миньонов:

# minion (excerpt)
id: webservertest

Вы также можете определить информацию о зерне в файле миньонов.

Надеюсь, это поможет.

Бр, Александр.