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

Я создал конфиг на 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

Надо будет тоже поразбираться. Сразу вопрос. Почему у меня создается два интерфейса? 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

MX Linux 21.2 x86_64
Чем больше я работаю админом, тем больше понимаю, насколько волшебна фраза - "Нет технической возможности!"

3

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

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

4

Marley пишет:

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

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

MX Linux 21.2 x86_64
Чем больше я работаю админом, тем больше понимаю, насколько волшебна фраза - "Нет технической возможности!"

5

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

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

No Woman No Cry...

6

Marley пишет:

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

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

MX Linux 21.2 x86_64
Чем больше я работаю админом, тем больше понимаю, насколько волшебна фраза - "Нет технической возможности!"

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

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

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

Marley пишет:

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

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

MX Linux 21.2 x86_64
Чем больше я работаю админом, тем больше понимаю, насколько волшебна фраза - "Нет технической возможности!"

9 (02.09.2017 19:27:02 отредактировано Marley)

Если кому интересно.
Я взял какую-то неофициальную сборку убунты и у меня на ней заработало из коробки.

Что касается официальной с ней были какие-то проблемы. Вроде были проблемы с логином.

В общем тема, конечно интересная, но я на нее подзабил.

No Woman No Cry...

10

Заметил любовь веб разработчиков к дистрибутиву Ubuntu. На прошлой работе в основном разрабы сидели в ней, и в MacOS. Видимо инструменты для разработки в Ubuntu отлажены, и им это нравится.

11

AlfaStriker, у нас на работе тоже пользуются Ubuntu/Mint.
Кроме того, что всё отлажено, оно ещё и работает быстрее, чем Windows, а антивирусы не нужны.

ᛈᚺ'ᚾᚷᛚᚢᛁ ᛗᚷᛚᚹ'ᚾᚨᚠᚺ ᚲᛏᚺᚢᛚᚺᚢ ᚱ'lᚷᛖᚺ ᚹᚷᚨᚺ'ᚾᚨᚷᛚ ᚠᚺᛏᚨᚷᚾ

Asus Prime B460M-K, i5-10500, Intel 630 UHD, DDR4 32 GB, SSD 500GB + HDD 2TB | Linux Mint 21.3 Cinnamon + Fedora 39 MATE (Compiz) + Windows 11 + macOS 12 Monterey

12

Все необходимые для работы иснтрументы работают из коробки.
Если возникают какие-то проблемы, то скорее всего с ней уже сталкивались и имеются решения.

No Woman No Cry...

13

Но вы отвлеклись от темы.
Что с этим делать?

[Ubuntu 14 --> VirtualBox 5.1 --> Orale Linux 7.4] Отваливается сеть

No Woman No Cry...