Vagrant для развертывания Salt master

Я пытаюсь разработать относительно сложную систему, используя Vagrant и Salt-Stack для управления и обеспечения. Основная идея состоит в том, чтобы выделить машину, называемую мастером, на которой работает мастер Salt-Stack, к которому будут подключаться все остальные мои машины.

В предыдущей попытке сделать это я только что просил Vagrant настроить миньона Salt, которому было приказано установить мастер соли и пакет DNS-сервера. Но я хотел бы упростить ключевой транспорт, используя возможности Vagrant. Поэтому я хотел бы, чтобы Vagrant установил мастер соли и миньона, чтобы миньон мог установить DNS-сервер, и чтобы Vagrant мог перемещать мои ключи для меня.

Вот как выглядит конфигурация мастера в Vagrantfile:

config.vm.define :master do |master|
  master.vm.provider "virtualbox" do |vbox|
    vbox.cpus = 1
    vbox.memory = 384
  end

  master.vm.network "private_network", ip: "10.47.94.2"
  master.vm.network :forwarded_port, guest: 53, host: 53
  master.vm.hostname = "master"
  master.vm.provision :salt do |salt|
    salt.verbose = true
    salt.minion_config = "salt/master"
    salt.run_highstate = true

    salt.install_master = true
    salt.master_config = "salt/master"    
    salt.master_key = "salt/keys/master.pem"
    salt.master_pub = "salt/keys/master.pub"
    salt.minion_key = "salt/keys/master.pem"
    salt.minion_pub = "salt/keys/master.pub"
    salt.seed_master = {master: "salt/keys/master.pub"}
    salt.run_overstate = true
  end
end

Но я получаю сообщение:

Executing job with jid 20140403131604825601
-------------------------------------------

Execution is still running on master
Execution is still running on master
Execution is still running on master
Execution is still running on master
master:
    Minion did not return

и когда я смотрю master:/var/log/salt/minion, он пуст.

Есть ли очевидная ошибка в моей конфигурации Vagrantfile? Любые подсказки?


person nomen    schedule 03.04.2014    source источник
comment
salt.seed_master = {master: salt/keys/master.pub}... Ваш ID миньона == master?   -  person Keenan    schedule 23.04.2014
comment
Да, установив master.vm.hostname = master. В итоге я разделил этап подготовки соли на два вызова vm.master.provision. Один устанавливает солевой миньон и запускает high_state, а следующий устанавливает мастер и ключи.   -  person nomen    schedule 23.04.2014
comment
А, не видел эту строчку. Это было единственное, что видел... Разделение сработало?   -  person Keenan    schedule 23.04.2014
comment
Солевой миньон установлен и работает? Если /var/log/salt/minion пусто, это может означать, что солевой миньон не запущен, если он установлен.   -  person nmadhok    schedule 22.05.2014
comment
Вы уверены, что не хотите run_highstate=false?   -  person nsfyn55    schedule 24.05.2014


Ответы (1)


Я вижу, что на этот вопрос нет ответа в течение длительного времени. Поэтому я размещаю здесь свой личный минимальный мастер-файл соли Vagrant. Эта проблема возникла у меня однажды, когда я забыл настроить запись master: localhost в конфигурации соли-миньона на мастере (по умолчанию он ищет хост с именем соль).

Обратите внимание, что миньон на мастере имеет свой ключ.

Это работает vagrant 1.7.2 и установит мастер соли 2015.5.0.

# Vagrantfile
# -*- mode: ruby -*-
# vi: set ft=ruby :

# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|

  config.vm.box = "chef/centos-7.0"

  # Deployment instance salt master
  config.vm.define :master do |master|
    master.vm.network :private_network, ip: "192.168.22.12"
    master.vm.hostname = 'master'

    master.vm.synced_folder "salt/roots/", "/srv/"

    master.vm.provision :salt do |config|
      config.install_master = true
      config.minion_config = "salt/minion"
      config.master_config = "salt/master"
      config.minion_key = "salt/keys/minion.pem"
      config.minion_pub = "salt/keys/minion.pub"
      config.master_key = "salt/keys/master.pem"
      config.master_pub = "salt/keys/master.pub"
      config.seed_master =
        {
          master: "salt/keys/minion.pub"
        }
      config.run_highstate = true
    end
  end

end

Конфигурационный файл мастера:

# salt/master
# empty, use only defaults

Конфигурационный файл миньона на мастере:

# salt/minion
master: localhost
person ahus1    schedule 07.06.2015