2

我正在尝试设计一个相对复杂的系统,使用 Vagrant 和 Salt-Stack 来处理控制和配置。 基本思想是配置一台机器,称为 master,它运行 Salt-Stack 主机,我的所有其他机器都将连接到该主机。

在之前的尝试中,我只是让 Vagrant 设置了一个 Salt minion,它被指示安装 salt master 和一个 dns 服务器包。但我想通过使用 Vagrant 的设施来简化关键传输。所以我想做的是让 Vagrant 安装一个 Salt master 和一个 minion,以便 minion 可以安装 dns 服务器,这样 Vagrant 就可以为我移动我的密钥。

这是 Vagrantfile 中 master 的配置:

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 配置中是否存在明显错误?有什么提示吗?

4

1 回答 1

2

我看到这个问题很久没有回答了。因此,我在这里发布了我个人的最小 Vagrant salt 主文件。当我忘记master: localhost在 master 上设置 salt-minion 配置的条目时,我曾经遇到过这个问题(默认情况下,它会寻找一个名为 salt 的主机)。

请注意,master 上的 minion 有自己的密钥。

这是运行 vagrant 1.7.2 并将安装 salt master 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

Master的配置文件:

# salt/master
# empty, use only defaults

Minion在master上的配置文件:

# salt/minion
master: localhost
于 2015-06-07T12:43:49.827 回答