【问题标题】:Vagrant to deploy Salt masterVagrant 部署 Salt Master
【发布时间】:2014-04-03 13:47:03
【问题描述】:

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

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

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

【问题讨论】:

  • salt.seed_master = {master: "salt/keys/master.pub"}...你的奴才 ID == master?
  • 是的,通过设置 master.vm.hostname = "master"。我最终将盐供应步骤拆分为对 vm.master.provision 的两个调用。一个安装 salt minion 并运行 high_state,下一个安装 master 和 keys。
  • 啊,没看到那行。那是唯一看到的东西……把它分开有用吗?
  • salt-minion 是否已安装并正在运行?如果/var/log/salt/minion 为空,则可能意味着安装了salt-minion 后尚未运行。
  • 您确定不要run_highstate=false

标签: vagrant salt-stack


【解决方案1】:

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

请注意master上的minion有自己的key。

这是运行 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多