LinuxForum.Fans
Тема

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

Автор: Marley 13 сообщений 2367 просмотров
12.02.2017 18:20 · отредактировано #420201

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

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

[console]$ vagrant plugin install vagrant-hosts[/console]

text

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

[console]$ ssh-add ~/.vagrant.d/insecure_private_key
$ vagrant up
[/console]


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

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

[console]

==> 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

[/console]

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

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

[console]Permission denied (publickey)[/console]

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

12.02.2017 23:35 #420209

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

[console]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
[/console]

12.02.2017 23:46 #420210

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

text

"--natdnshostresolver1", "on"

12.02.2017 23:53 #420211
"Marley" написал:
Вот же в конфиге прописано.
(если я все правильно понимаю)

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

12.02.2017 23:57 #420212

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

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

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

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

13.02.2017 00:07 · отредактировано #420214

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

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

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

13.02.2017 00:10 #420215
"Marley" написал:
Гугл говорит:
eth0 as NAT is a fundamental requirement of Vagrant in its current state.
https://github.com/mitchellh/vagrant/issues/2093

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

30.08.2017 22:19 · отредактировано #424894

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

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

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

02.09.2017 16:28 #424938

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

02.09.2017 19:07 #424940

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

02.09.2017 19:18 #424941

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

Войдите или зарегистрируйтесь, чтобы ответить.