ssh - Vagrant 设置 ssh 主机名以匹配私有 IP 失败
问题描述
我正在尝试通过单个 Vagrantfile 调出 2 个 Vagrant VM。当我尝试将 ssh 主机名与该 VM 的私有 IP 匹配时,我收到以下错误:
Progress: 90%
==> controller: Matching MAC address for NAT networking...
==> controller: Checking if box 'fedora/32-cloud-base' version '32.20200422.0' is up to date...
==> controller: Setting the name of the VM: pki_controller_1597975375714_9403
==> controller: Clearing any previously set network interfaces...
==> controller: Preparing network interfaces based on configuration...
controller: Adapter 1: nat
controller: Adapter 2: hostonly
==> controller: Forwarding ports...
controller: 22 (guest) => 2222 (host) (adapter 1)
==> controller: Running 'pre-boot' VM customizations...
==> controller: Booting VM...
==> controller: Waiting for machine to boot. This may take a few minutes...
controller: SSH address: 192.168.33.10:22
controller: SSH username: root
controller: SSH auth method: private key
controller: Warning: Host appears down. Retrying...
controller: Warning: Host appears down. Retrying...
controller: Warning: Host appears down. Retrying...
controller: Warning: Host appears down. Retrying...
controller: Warning: Host appears down. Retrying...
controller: Warning: Host appears down. Retrying...
controller: Warning: Host appears down. Retrying...
controller: Warning: Host appears down. Retrying...
controller: Warning: Host appears down. Retrying...
controller: Warning: Host appears down. Retrying...
controller: Warning: Host appears down. Retrying...
虽然它一直在重试,但我尝试 ping192.168.33.10
并收到以下响应:
$ ping 192.168.33.10
PING 192.168.33.10 (192.168.33.10) 56(84) bytes of data.
From 192.168.33.1 icmp_seq=1 Destination Host Unreachable # <-- NOTE THIS!
From 192.168.33.1 icmp_seq=2 Destination Host Unreachable
From 192.168.33.1 icmp_seq=3 Destination Host Unreachable
$ ifconfig
vboxnet1: 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:1 prefixlen 64 scopeid 0x20<link>
ether 0a:00:27:00:00:01 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1094 bytes 78483 (76.6 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
$ traceroute 192.168.33.10
traceroute to 192.168.33.10 (192.168.33.10), 30 hops max, 60 byte packets
1 localhost.localdomain (192.168.33.1) 1010.646 ms !H 1010.583 ms !H 1010.538 ms !H
以下是我的内容Vagrantfile
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
config.ssh.username = "root"
config.vm.box = "fedora/32-cloud-base"
config.vm.synced_folder "./", "/vagrant"
config.ssh.port = 22 # ENABLE ONLY IF ssh.host is specified
config.vm.provider :virtualbox do |domain, override|
# Defaults for masters and clone
# WARNING: Do not overcommit CPUs, it causes issues during
# provisioning, when RPMs are installed
domain.cpus = 1
domain.memory = 2750
end
config.vm.define "controller" , primary: true do |controller|
config.vm.provider :virtualbox do |domain, override|
# Less resources needed for controller
domain.memory = 950
end
controller.vm.provision "shell", inline: "pip3 install pyyaml && pip3 install -r /vagrant/path/to/requirements.txt"
controller.vm.provision :ansible do |ansible|
# Disable default limit to connect to all the machines
ansible.limit = "all"
ansible.playbook = "path/to/playbook.yml"
ansible.groups = {
"localhost" => ["controller"],
"master" => ["master"]
}
end
controller.vm.network :private_network, ip: "192.168.33.10"
controller.ssh.host = "192.168.33.10" # DOES NOT WORK
end
config.vm.define "master" do |master|
master.vm.network :private_network, ip: "192.168.33.20"
master.ssh.host = "192.168.33.20" # DOES NOT WORK
end
end
如果我评论*.ssh.host
并尝试ssh root@<ip> -i <path to private key>
,它会起作用。我确信我犯了一个非常小的错误。但是,我无法确定它。
解决方案
推荐阅读
- regex - 在 2 个子字符串之间选择一个子字符串
- typescript - 在ionic 4中打开带有图像和选择图像的模态?
- reactjs - 使用另一个函数中的更新状态作为参数
- python - networkx:有向图计算任何边的指标
- ruby-on-rails - rails 迁移生成随机表。这是从哪里来的?
- reactjs - 如何知道数组是否为空?
- html - 如何更改基本按钮以适合我的下拉菜单的背景
- c# - 将 C# Web 应用程序与 Survey Monkey API 集成
- javascript - getBoundingClientRect 的负数是什么意思?
- python-3.x - 用多个情节做动画的问题