Таким образом, я создал в своей хост-машине (Ubuntu 17.10) виртуальную машину с VirtualBox + Бродяга + Ansible.
Vagrant.configure("2") do |config|
config.vm.box = "centos-7.3-x86_64_latest.box"
config.vm.box_url = "http://nas.my-compamy.intern/centos-7.3-x86_64_latest.box"
config.vm.hostname = "login.my-cloud.dev"
config.vm.network "private_network", ip: "192.168.33.240"
# enable to use synced folders
# config.vm.synced_folder "/my/local/path", "/var/www/cce_login", disabled: true
config.ssh.forward_agent = true
config.ssh.keep_alive = true
config.ssh.username = "vagrant"
config.ssh.password = "vagrant"
config.vm.provider :virtualbox do |v|
# workaround as some virtualbox version seem to disconnect the NAT adapter
v.customize ['modifyvm', :id, '--cableconnected1', 'on']
v.memory = 1024
v.cpus = 2
v.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
v.customize ["modifyvm", :id, "--name", "login.cce-cloud.dev"]
v.customize ["modifyvm", :id, "--accelerate3d", "off"]
v.customize ["modifyvm", :id, "--accelerate2dvideo", "off"]
v.customize ["modifyvm", :id, "--cpuexecutioncap", "75"]
v.customize ["modifyvm", :id, "--largepages", "on"]
end
config.vm.provision "ansible" do |ansible|
ansible.playbook = "ansible/site.yml"
ansible.verbose = "vvv"
end
end
Я поднимаю эту машину через
$ vagrant up --provision
В конце концов, это сделано, я могу войти в SSH через Бродягу как это.
$ vagrant ssh
но когда я хочу использовать его от MySQL Workbench, доступа FTP или прямого SSH, я получаю ошибку. Я не могу даже проверить с помощью ping-запросов машину.
$ ping 192.168.33.240
PING 192.168.33.240 (192.168.33.240) 56(84) bytes of data.
From 192.168.33.1 icmp_seq=1 Destination Host Unreachable
From 192.168.33.1 icmp_seq=2 Destination Host Unreachable
From 192.168.33.1 icmp_seq=3 Destination Host Unreachable
Так как у меня нет разрешения изменить Vagrantfile от команды DevOps, я полагал, что ошибка должна быть где-нибудь в том, как моя хост-машина настроена, но я, может казаться, не вижу, какова проблема.
$ ifconfig
enxdc9b9cee07b2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.111.198 netmask 255.255.255.0 broadcast 192.168.111.255
inet6 fe80::f0ad:1d52:8e55:7fc7 prefixlen 64 scopeid 0x20<link>
ether dc:9b:9c:ee:07:b2 txqueuelen 1000 (Ethernet)
RX packets 11159 bytes 4878538 (4.8 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 8289 bytes 2106425 (2.1 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 1607 bytes 173261 (173.2 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1607 bytes 173261 (173.2 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
vboxnet0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.33.1 netmask 255.255.255.0 broadcast 192.168.33.255
inet6 fe80::800:27ff:fe00:0 prefixlen 64 scopeid 0x20<link>
ether 0a:00:27:00:00:00 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 170 bytes 18067 (18.0 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Как я мог изменить конфигурацию своего хоста ОС, так, чтобы это достигло виртуального?
Примечание: enxdc9b9cee07b2
мое проводное соединение. Я знаю, что это обычно eth0
но я использую адаптер для USB-порта
Обновление
Подробнее
Я нашел в конце решение сам.
По-видимому, версией, которая прибывает предварительно установленная с Ubuntu, не является официальный DEB от оракула.
То, что я сделал, должно сохранить мои виртуальные машины во временной резервной папке, затем удалить Vagrant и Virtualbox, и затем загрузить официальный deb с их веб-сайта.
После того как я запустил машины, они работали без любой проблемы.
Единственные конфигурации сети, которые позволяют Хост коммуникации VM, являются Хостом Только и Режимами моста. Существует таблица здесь, которая показывает различные типы сети и если она может получить доступ к хосту, другому VMs, Интернету, и т.д. Только режим моста получает Вас полный доступ к сети, но обычно вытягивает IP от Вашего DHCP, который Вы, вероятно, не хотите в этой ситуации.
Можно обойти это при наличии 2 сетей для выполнения потребностей, NAT и Хоста Только.