1 (12.02.2017 18:22:47 отредактировано Marley)

Тема: [Vagrant] Нужна помощь с конфигом на 8 узлов.

Я создал конфиг на 8 узлов.

// Ставлю плагин для hosts

Консоль
$ vagrant plugin install vagrant-hosts

Vagrant.require_version ">= 1.9.1"


VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|

  config.vm.boot_timeout = 900

  config.ssh.insert_key = false
  config.ssh.forward_agent = true


  config.vm.provider :virtualbox do |v|
      # On VirtualBox, we don't have guest additions or a functional vboxsf
      # in CoreOS, so tell Vagrant that so it can be smarter.
      v.check_guest_additions = false
      v.functional_vboxsf     = false
    end



  config.vm.provision :hosts do |provisioner|

      provisioner.add_host '192.168.56.101', ['client']
      provisioner.add_host '192.168.56.102', ['ca']
      provisioner.add_host '192.168.56.103', ['manager1']
      provisioner.add_host '192.168.56.104', ['manager2']
      provisioner.add_host '192.168.56.105', ['manager3']
      provisioner.add_host '192.168.56.106', ['node1']
      provisioner.add_host '192.168.56.107', ['node2']
      provisioner.add_host '192.168.56.108', ['node3']

    end




  config.vm.define "client" do |myVm|
    myVm.vm.box = 'debian/jessie64'
    myVm.vm.hostname = 'client'

    myVm.vm.network :private_network, ip: "192.168.56.101"
    myVm.vm.network :forwarded_port, guest: 22, host: 10122, id: "ssh"


    myVm.vm.provider :virtualbox do |v|
      v.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
      v.customize ["modifyvm", :id, "--memory", 512]
      v.customize ["modifyvm", :id, "--name", "client"]
    end
  end





  config.vm.define "ca" do |myVm|
    myVm.vm.box = 'debian/jessie64'
    myVm.vm.hostname = 'ca'

    myVm.vm.network :private_network, ip: "192.168.56.102"
    myVm.vm.network :forwarded_port, guest: 22, host: 10222, id: "ssh"

    myVm.vm.provider :virtualbox do |v|
      v.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
      v.customize ["modifyvm", :id, "--memory", 512]
      v.customize ["modifyvm", :id, "--name", "ca"]
    end
  end



  config.vm.define "manager1" do |myVm|
    myVm.vm.box = 'debian/jessie64'
    myVm.vm.hostname = 'manager1'

    myVm.vm.network :private_network, ip: "192.168.56.103"
    myVm.vm.network :forwarded_port, guest: 22, host: 10322, id: "ssh"

    myVm.vm.provider :virtualbox do |v|
      v.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
      v.customize ["modifyvm", :id, "--memory", 512]
      v.customize ["modifyvm", :id, "--name", "manager1"]
    end
  end



  config.vm.define "manager2" do |myVm|
    myVm.vm.box = 'debian/jessie64'
    myVm.vm.hostname = 'manager2'

    myVm.vm.network :private_network, ip: "192.168.56.104"
    myVm.vm.network :forwarded_port, guest: 22, host: 10422, id: "ssh"

    myVm.vm.provider :virtualbox do |v|
      v.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
      v.customize ["modifyvm", :id, "--memory", 512]
      v.customize ["modifyvm", :id, "--name", "manager2"]
    end
  end



  config.vm.define "manager3" do |myVm|
    myVm.vm.box = 'debian/jessie64'
    myVm.vm.hostname = 'manager3'

    myVm.vm.network :private_network, ip: "192.168.56.105"
    myVm.vm.network :forwarded_port, guest: 22, host: 10522, id: "ssh"

    myVm.vm.provider :virtualbox do |v|
      v.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
      v.customize ["modifyvm", :id, "--memory", 512]
      v.customize ["modifyvm", :id, "--name", "manager3"]
    end
  end



  config.vm.define "node1" do |myVm|
    myVm.vm.box = 'debian/jessie64'
    myVm.vm.hostname = 'node1'

    myVm.vm.network :private_network, ip: "192.168.56.106"
    myVm.vm.network :forwarded_port, guest: 22, host: 10622, id: "ssh"

    myVm.vm.provider :virtualbox do |v|
      v.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
      v.customize ["modifyvm", :id, "--memory", 512]
      v.customize ["modifyvm", :id, "--name", "node1"]
    end
  end



  config.vm.define "node2" do |myVm|
    myVm.vm.box = 'debian/jessie64'
    myVm.vm.hostname = 'node2'

    myVm.vm.network :private_network, ip: "192.168.56.107"
    myVm.vm.network :forwarded_port, guest: 22, host: 10722, id: "ssh"

    myVm.vm.provider :virtualbox do |v|
      v.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
      v.customize ["modifyvm", :id, "--memory", 512]
      v.customize ["modifyvm", :id, "--name", "node2"]
    end
  end



  config.vm.define "node3" do |myVm|
    myVm.vm.box = 'debian/jessie64'
    myVm.vm.hostname = 'node3'

    myVm.vm.network :private_network, ip: "192.168.56.108"
    myVm.vm.network :forwarded_port, guest: 22, host: 10822, id: "ssh"

    myVm.vm.provider :virtualbox do |v|
      v.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
      v.customize ["modifyvm", :id, "--memory", 512]
      v.customize ["modifyvm", :id, "--name", "node3"]
    end
  end


end

Консоль
$ ssh-add ~/.vagrant.d/insecure_private_key
$ vagrant up


У меня 2 проблемы.

1) Переодически зависает старт на каком-нибудь из узлов. Вот именно на этом шаге.

Консоль

==> manager3: Waiting for machine to boot. This may take a few minutes...
    manager3: SSH address: 127.0.0.1:10522
    manager3: SSH username: vagrant
    manager3: SSH auth method: private key

Впринципе, можно пережить. Достаточно руками перестартовать виртуалку, где зависло.

2) Не удается с одного узла подкючиться к другому по SSH. Точнее с одного на другой может получиться, а обратно уже нет. Получаю ошибку:

Консоль
Permission denied (publickey)

3) Приму рекомендации по улчшению скрипта.

No Woman No Cry...

2

Re: [Vagrant] Нужна помощь с конфигом на 8 узлов.

Надо будет тоже поразбираться. Сразу вопрос. Почему у меня создается два интерфейса? NAT и Bridge. Мне нужен только второй.

Консоль
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|

        config.vm.boot_timeout = 900
        config.ssh.insert_key = false
        config.ssh.forward_agent = true

        config.vm.provider :virtualbox do |v|
        # On VirtualBox, we don't have guest additions or a functional vboxsf
        # in CoreOS, so tell Vagrant that so it can be smarter.
                v.check_guest_additions = false
                v.functional_vboxsf     = false
        end

        config.vm.define "client" do |myVm|
           myVm.vm.box = 'kja/netbsd-7-amd64'
           myVm.vm.hostname = 'client'

           #myVm.vm.network :public_network, bridge: "wlp0s18f2u2", use_dhcp_assigned_default_route: true
           myVm.vm.network :public_network, bridge: "wlp0s18f2u2"

           myVm.vm.provider :virtualbox do |v|
              v.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
              v.customize ["modifyvm", :id, "--memory", 512]
              v.customize ["modifyvm", :id, "--name", "client"]
           end
        end

end

Чем больше я работаю админом, тем больше понимаю, насколько волшебна фраза - "Нет технической возможности!"
=====================================================================================================
Mageia 5 x86_64 MATE Mageia Russian Community

3

Re: [Vagrant] Нужна помощь с конфигом на 8 узлов.

Вот же в конфиге прописано.
(если я все правильно понимаю)

"--natdnshostresolver1", "on"
No Woman No Cry...

4

Re: [Vagrant] Нужна помощь с конфигом на 8 узлов.

Marley пишет

Вот же в конфиге прописано.
(если я все правильно понимаю)

Я тоже так думал =) Не оно.

Чем больше я работаю админом, тем больше понимаю, насколько волшебна фраза - "Нет технической возможности!"
=====================================================================================================
Mageia 5 x86_64 MATE Mageia Russian Community

5

Re: [Vagrant] Нужна помощь с конфигом на 8 узлов.

Тогда, предположение N2.

По умолчанию виртуальная машина VirtualBox создается как раз с 1 Nat интерфейсом.

No Woman No Cry...

6

Re: [Vagrant] Нужна помощь с конфигом на 8 узлов.

Marley пишет

Тогда, предположение N2.
По умолчанию виртуальная машина VirtualBox создается как раз с 1 Nat интерфейсом.

Не понял, что поменять?

Чем больше я работаю админом, тем больше понимаю, насколько волшебна фраза - "Нет технической возможности!"
=====================================================================================================
Mageia 5 x86_64 MATE Mageia Russian Community

7 (13.02.2017 00:09:19 отредактировано Marley)

Re: [Vagrant] Нужна помощь с конфигом на 8 узлов.

Гугл говорит:

eth0 as NAT is a fundamental requirement of Vagrant in its current state.
https://github.com/mitchellh/vagrant/issues/2093

Правда, может что и поменялось уже с тех времен.

No Woman No Cry...

8

Re: [Vagrant] Нужна помощь с конфигом на 8 узлов.

Marley пишет

Гугл говорит:
eth0 as NAT is a fundamental requirement of Vagrant in its current state.
https://github.com/mitchellh/vagrant/issues/2093

Так не интересно. Мало того, что нельзя править ВМ с самого виртуалбокса, так им еще и нат подавай в обязаловке.

Чем больше я работаю админом, тем больше понимаю, насколько волшебна фраза - "Нет технической возможности!"
=====================================================================================================
Mageia 5 x86_64 MATE Mageia Russian Community