Vagrant 流浪设置错误

Vagrant 流浪设置错误,vagrant,ansible,provisioning,vagrantfile,Vagrant,Ansible,Provisioning,Vagrantfile,我正在尝试使用ansible创建并提供一个多机器的流浪环境 我的流浪汉档案如下: # -*- 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|

我正在尝试使用ansible创建并提供一个多机器的流浪环境

我的流浪汉档案如下:

# -*- 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|
    # All Vagrant configuration is done here. The most common configuration
    # options are documented and commented below. For a complete reference,
    # please see the online documentation at vagrantup.com.

    config.vm.box_url = "https://cloud-images.ubuntu.com/vagrant/trusty/current/trusty-server-cloudimg-amd64-vagrant-disk1.box"

    (1..3).each do |i|
        config.vm.define "db#{i}" do |node|
            node.vm.box = "trusty64"
            node.vm.network "public_network", ip: "192.168.253.20#{i}", bridge: 'en0: Wi-Fi (AirPort)'
            node.vm.provider "virtualbox" do |v|
                v.customize ["modifyvm", :id, "--memory", 512]
                v.name = "db#{i}_box"
                v.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
                v.customize ["modifyvm", :id, "--natdnsproxy1", "on"]
            end
        end
    end

    (1..1).each do |i|
        config.vm.define "es#{i}" do |node|
            node.vm.box = "trusty64"
            node.vm.network "public_network", ip: "192.168.253.21#{i}", bridge: 'en0: Wi-Fi (AirPort)'
            node.vm.provider "virtualbox" do |v|
                v.customize ["modifyvm", :id, "--memory", 1024]
                v.name = "es#{i}_box"
                v.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
                v.customize ["modifyvm", :id, "--natdnsproxy1", "on"]
            end
        end
    end

    config.vm.define "emailchecker" do |node|
        node.vm.box = "trusty64"
        node.vm.network "public_network", ip: "192.168.253.205", bridge: 'en0: Wi-Fi (AirPort)'
        node.vm.provider "virtualbox" do |v|
            v.customize ["modifyvm", :id, "--memory", 1024]
            v.name = "emailchecker_box"
            v.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
            v.customize ["modifyvm", :id, "--natdnsproxy1", "on"]
        end
    end

    config.vm.define "smartrouter" do |node|
        node.vm.box = "trusty64"
        node.vm.network "public_network", ip: "192.168.253.206", bridge: 'en0: Wi-Fi (AirPort)'
        node.vm.provider "virtualbox" do |v|
            v.customize ["modifyvm", :id, "--memory", 1024]
            v.name = "smartrouter_box"
            v.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
            v.customize ["modifyvm", :id, "--natdnsproxy1", "on"]
        end
    end


    config.vm.define "web" do |node|
        node.vm.box = "trusty64"
        node.vm.network "public_network", ip: "192.168.253.204", bridge: 'en0: Wi-Fi (AirPort)'
    node.vm.provider "virtualbox" do |v|
            v.customize ["modifyvm", :id, "--memory", 1024]
            v.name = "web_box"
            v.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
            v.customize ["modifyvm", :id, "--natdnsproxy1", "on"]
        end

        ####
        #
        # Note Provisioning is included here to ensure it only gets run once on all the boxes.
        #
        ####
        node.vm.provision "ansible" do |ansible|
            ansible.playbook = "ansible_playbook/playbook.yml"
            ansible.verbose = "vvvv"
            ansible.limit = 'all'
            ansible.inventory_path = "ansible_playbook/vagrant_inventory"
    end
  end
结束

我可以通过执行vagrant up来创建这些机器——无需设置,我可以通过执行vagrant ssh web(例如)来登录这些机器

但是,当我尝试配置计算机时,会收到以下错误消息:

fatal: [web] => SSH encountered an unknown error. The output was:
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /Users/smcgurk/.ssh/config
debug1: Reading configuration data /etc/ssh_config
debug1: /etc/ssh_config line 20: Applying options for *
debug1: auto-mux: Trying existing master
debug1: Control socket "/Users/smcgurk/.ansible/cp/ansible-ssh-192.168.253.204-22-vagrant" does not exist
有人知道这里可能发生了什么,或者对我如何调试/纠正这一点有什么建议吗

谢谢


塞恩

我以前见过这个错误,它通常是由空格引起的

似乎当SSH密钥的路径包含空格时,这些空格没有正确转义,从而有效地破坏了Ansible

我在这里可能完全不按常规办事,但我在过去重新检查过流浪者档案,发现情况就是这样


另一个想法是,如果您有任何对localhost的引用,而不是127.0.0.1

那么,如果您尝试逐个配置机器,它是否有效?e、 g.流浪者提供网络?我怀疑在多个vmHmmm上分配的ssh端口中可能存在冲突。。。仍然是相同的问题:
任务:[主机文件|为流浪者部署主机]******************************************致命:没有匹配的主机或所有主机都已失败--中止播放重播***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************,用法:--limit@/Users/smggurk/playbook.retry web:ok=0 changed=0 Unreable=1 failed=0
但感谢您的建议@Frédérichenrin根本原因与此完全相同。您确定vagrant up同时启动了web和db吗。在像您这样的多机设置中,您可能需要漫游up web和漫游up db,类似地,漫游ssh web和漫游ssh db。。