【发布时间】:2019-05-26 13:11:19
【问题描述】:
我目前正在尝试使用 ansible,对于该用例,我使用 VirtualBox 和 Vagrant 设置了一个由 3 个 VM 组成的集群。现在我的 VM-Setup 看起来像这样
流浪文件
$inline_m1 = <<SCRIPT
yum -y update
yum install -y git
yum install -y ansible
SCRIPT
$inline_n1_n2 = <<SCRIPT
yum -y update
yum install -y git
SCRIPT
Vagrant.configure(2) do |config|
config.vm.define "master1" do |conf|
# conf.vm.box = "peru/my_centos-7-x86_64"
# conf.vm.box_version = "20181211.01"
conf.vm.box = "centos/7"
conf.vm.hostname = 'master1.vg'
conf.vm.network "private_network", ip: "192.168.255.100"
conf.vm.provider "virtualbox" do |v|
v.memory = 6144
v.cpus = 2
end
conf.vm.provision "shell", inline: $inline_m1
conf.vm.provision "file", source: "./etc.hosts", destination: "~/etc/hosts"
conf.vm.provision "file", source: "./master1/etc.ansible.hosts", destination: "~/etc/ansible.hosts"
end
config.vm.define "node1" do |conf|
conf.vm.box = "centos/7"
conf.vm.hostname = 'node1.vg'
conf.vm.network "private_network", ip: "192.168.255.101"
conf.vm.provision "file", source: "./etc.hosts", destination: "~/etc/hosts"
conf.vm.provision "shell", inline: $inline_n1_n2
end
config.vm.define "node2" do |conf|
conf.vm.box = "centos/7"
conf.vm.hostname = 'node2.vg'
conf.vm.network "private_network", ip: "192.168.255.102"
conf.vm.provision "file", source: "./etc.hosts", destination: "~/etc/hosts"
conf.vm.provision "shell", inline: $inline_n1_n2
end
end
所以它是 1 个主节点和 2 个节点。 master 应该安装了 ansible 并通过 ssh 访问节点。所以所有机器都启动并运行,我可以使用连接到我的主人
vagrant ssh master1
我也有我修改过的 etc/hosts,所以我可以访问 master1.vg、node1.vg 等。
但是有一个问题。我应该通过 ssh 从主机内部连接到节点。但是
ssh node1.vg
将无法工作,因为在要求输入密码后权限被拒绝。根据文档,默认密码应为“vagrant”,但此处并非如此。 (我猜因为访问方法已经设置为带有密钥的 ssh)。我已经搜索了很多,因为我认为这将是一个常见问题,但没有找到令人满意的答案。您知道如何通过 ssh 从 master1 vm 连接到其中一个节点 vm?
我还将配置上传到了一个 repo (https://github.com/relief-melone/vagrant-ansibletestingsetup)
【问题讨论】:
-
只是为了澄清,如果您尝试例如
ssh vagrant@127.0.0.1 -p {port your vagrant machine is on},您是否仍然收到被拒绝的权限? -
是的,如果我在 master 上,我会通过“ssh vagrant@127.0.0.1 -p ..”和“ssh vagrant@192.168.255.101”-p ...当我只使用“ssh 192.168.255.101”时,我会得到“无法建立身份验证 ECDSA 密钥指纹是......你确定要继续......我点击是并得到一个”权限被拒绝(公钥,gssapi -keyex.gss-with-mic)。
-
好问题,我也很困惑。尝试连接时使用
ssh -vvv跟踪连接被拒绝的错误。 -
我将把它放在不同的评论中,所以我现在能够从 vm 外部做的是在不使用 vagrant 的情况下进行连接。为此我做了“vagrant ssh-config node1”,我注意到[Port],[User]和[IdentityFile],之后会起作用的是“ssh -i [IdentityFile] -l [User] -p [Port] localhost”但只有使用 localhost 127.0.0.1 或 192.168.255.101 才会因连接被拒绝而失败。而且使用 localhost 我会收到无法建立主机真实性的消息,我必须确认我仍然想连接