如何通过ssh将ansible连接到两台Vagrant机器(Virtualbox Hypervisor)中?

马龙

我想通过ssh连接一台机器与另一台机器来执行ansible命令。我有一个CentOS7,想在OS内部连接到Ubuntu16 VM。

查看我的Vagrantfile和我尝试过的内容:

Vagrant.configure("2") do |config|
  config.vm.provider "virtualbox" do |vb|
     vb.gui = false
     vb.memory = "4096"
     vb.cpus = "4"
  end

  config.vm.define "centos7" do |centos7|
      centos7.vm.box = "centos/7"
      centos7.vm.hostname = "centos-vm"
      centos7.vm.network "public_network", ip: "192.168.0.105"
      #centos7.vm.network "forwarded_port", guest: 8080, host: 8888
      #centos7.vm.network "forwarded_port", guest: 22, host: 2222
      centos7.vm.provision "shell", run: "always", inline: <<-SHELL
         sudo route add default gw 192.168.0.1
         sudo yum update
         sudo yum -y install wget ntpdate net-tools nano firewalld telnet

         # Install java
         sudo yum -y install epel-release
         sudo yum install java-1.8.0-openjdk-devel
         java -version

         # isntall jenkins
         curl --silent --location http://pkg.jenkins-ci.org/redhat-stable/jenkins.repo | sudo tee /etc/yum.repos.d/jenkins.repo
         sudo firewall-cmd --permanent --zone=public --add-port=8080/tcp

         # Install ansible
         sudo yum -y install ansible

         # Install docker
         curl -fsSL https://get.docker.com/ | sh
         sudo usermod -aG docker $USER
         sudo systemctl start docker
         sudo systemctl status docker
         sudo systemctl enable docker
         sudo ps -ef | grep dockerd
      SHELL
  end

  config.vm.define "ubuntu16" do |ubuntu16|
      ubuntu16.vm.box = "ubuntu/xenial64"
      ubuntu16.vm.hostname = "ubuntu-vm"
      ubuntu16.vm.network "public_network", ip: "192.168.0.106"
      ubuntu16.vm.provision "shell", run: "always", inline: <<-SHELL
         sudo route add default gw 192.168.0.1
         # isntall python with virtuaenv
         sudo apt-get update
         sudo apt-get install build-essential libssl-dev libffi-dev python-dev
         sudo apt install python3-pip
         sudo pip3 install virtualenv
         virtualenv -p python3 env3
         . env3/bin/activate # or source env3/bin/activate which does exactly the same thing
         # you can make sure you are now working with Python 3
         python -- version
         which python
         deactivate
         sudo apt install wget ntpdate net-tools nano default-jdk -y
         sudo apt install apt-transport-https ca-certificates curl gnupg2 software-properties-common telnet -y
      SHELL
  end
end

当我尝试通过ssh连接时出现此错误:

[root@centos-vm vagrant]# ansible -m ping all
192.168.0.105 | UNREACHABLE! => {
    "changed": false,
    "msg": "Failed to connect to the host via ssh: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).",
    "unreachable": true
}
192.168.0.106 | UNREACHABLE! => {
    "changed": false,
    "msg": "Failed to connect to the host via ssh: Permission denied (publickey).",
    "unreachable": true
}
[root@centos-vm vagrant]# ssh 192.168.0.106
Permission denied (publickey).
[root@centos-vm vagrant]# cat /etc/ansible/hosts

[servers]
192.168.0.105
192.168.0.106

vagrant@ubuntu-vm:~/.ssh$ telnet 192.168.0.105 22
Trying 192.168.0.105...
Connected to 192.168.0.105.
Escape character is '^]'.
SSH-2.0-OpenSSH_7.4
^C^C^C
Connection closed by foreign host.

[vagrant@centos-vm .ssh]$ telnet 192.168.0.106
Trying 192.168.0.106...
Connected to 192.168.0.106.
Escape character is '^]'.
SSH-2.0-OpenSSH_7.2p2 Ubuntu-4ubuntu2.8
^C^C^C
Connection closed by foreign host.

我应该在Centos VM上进行任何设置吗?或者如果我必须让原始Vagrantfile的一些默认配置。我自己研究了文档。

更新:将第二个发行版更改为Ubuntu 16 LTS,因为盒子Debian 10在从仓库中获取软件包时出现了很多错误。

马龙

我解决了为两个服务器公钥创建的问题:

做了两台服务器,

ssh-keygen -t RSA

So I connect Centos 7 to Ubuntu 16:
[vagrant@centos-vm .ssh]$ ssh 192.168.0.106
Welcome to Ubuntu 16.04.6 LTS (GNU/Linux 4.4.0-173-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage


7 packages can be updated.
7 updates are security updates.

New release '18.04.4 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Sat Feb 15 20:42:20 2020 from 192.168.0.105
vagrant@ubuntu-vm:~$

vagrant@ubuntu-vm:~/.ssh$ ssh 192.168.0.105
Last login: Sat Feb 15 20:37:28 2020 from 192.168.0.106
[vagrant@centos-vm ~]$

最后,我测试了Ansible,它运行良好!

[vagrant@centos-vm .ssh]$ ansible -m ping all

我相信第二个错误是因为ansible试图对同一主机执行ssh。

[vagrant@centos-vm .ssh]$ ansible -m ping all
The authenticity of host '192.168.0.105 (192.168.0.105)' can't be established.
ECDSA key fingerprint is SHA256:Dydts4hM79oPtDfElLzavhMw2SrNwu19YOcpd7bAUe0.
ECDSA key fingerprint is MD5:b1:2f:58:d0:59:28:a1:ab:a4:e4:9d:d7:b2:9c:b2:49.
Are you sure you want to continue connecting (yes/no)? 192.168.0.106 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python3"
    },
    "changed": false,
    "ping": "pong"
}

192.168.0.105 | UNREACHABLE! => {
    "changed": false,
    "msg": "Failed to connect to the host via ssh: Host key verification failed.",
    "unreachable": true
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将两台台式机连接到多节点集群Cassandra中

来自分类Dev

在Windows中,如何使用一个以太网插槽将两台计算机连接到Internet?

来自分类Dev

如何使我的HyperVisor运行?

来自分类Dev

如何通过 SSH 从一个 Raspberry PI 连接到在 VirtualBox 中运行的 Raspberry PI

来自分类Dev

远程连接AKKA中的两台机器,连接被拒绝

来自分类Dev

如何在两个不同位置的子网中连接两台PC?

来自分类Dev

在VMWare vSphere Hypervisor中启用管理API

来自分类Dev

在VMWare vSphere Hypervisor中启用管理API

来自分类Dev

Oracle Coherence的新增功能,试图将数据放入缓存中,两台机器一台服务器一个客户端

来自分类Dev

如何将两台电脑连接到一台显示器?

来自分类Dev

在hypervisor的启动过程中无法进行病毒安装

来自分类Dev

Docker conatiner中的Ansible无法通过SSH连接到Hetzner主机

来自分类Dev

无法让kubernetes节点连接到Vagrant / Ansible中的主节点

来自分类Dev

Java中通过SSH连接到MongoDB

来自分类Dev

Java中通过SSH连接到MongoDB

来自分类Dev

是否可以通过macvlan将Ubuntu Virtualbox中的Docker容器连接到物理网络?

来自分类Dev

如何将JMX从主机连接到Docker机器中的Docker容器?

来自分类Dev

SSH进入同一网络中的两台不同的计算机

来自分类Dev

家庭网络中的两台计算机失去连接

来自分类Dev

联网。不同局域网中两台计算机之间的连接

来自分类Dev

在Ansible中,如何连接到Windows主机?

来自分类Dev

Ansible 尝试通过 SSH 连接到 Windows 机器(失败)

来自分类Dev

Ansible 无法通过 ssh 连接到 Vagrant 创建的 VM

来自分类Dev

通过 SSH 隧道将 PHP 连接到 PhpStorm 中托管的数据库

来自分类Dev

如何将两台计算机连接到一个外部硬盘驱动器?

来自分类Dev

如何将两台交换机连接到华硕RT-AC88U路由器

来自分类Dev

两台机器之间的SSH隧道只能SSH到第三台机器,而不能直接到另一台机器

来自分类Dev

如果您通过ssh连接到LAN中的另一台设备,是否可以通过不那么直接的路径(WAN)意外连接?

来自分类Dev

如何通过SSH连接到位于不同WLAN中的计算机?

Related 相关文章

  1. 1

    将两台台式机连接到多节点集群Cassandra中

  2. 2

    在Windows中,如何使用一个以太网插槽将两台计算机连接到Internet?

  3. 3

    如何使我的HyperVisor运行?

  4. 4

    如何通过 SSH 从一个 Raspberry PI 连接到在 VirtualBox 中运行的 Raspberry PI

  5. 5

    远程连接AKKA中的两台机器,连接被拒绝

  6. 6

    如何在两个不同位置的子网中连接两台PC?

  7. 7

    在VMWare vSphere Hypervisor中启用管理API

  8. 8

    在VMWare vSphere Hypervisor中启用管理API

  9. 9

    Oracle Coherence的新增功能,试图将数据放入缓存中,两台机器一台服务器一个客户端

  10. 10

    如何将两台电脑连接到一台显示器?

  11. 11

    在hypervisor的启动过程中无法进行病毒安装

  12. 12

    Docker conatiner中的Ansible无法通过SSH连接到Hetzner主机

  13. 13

    无法让kubernetes节点连接到Vagrant / Ansible中的主节点

  14. 14

    Java中通过SSH连接到MongoDB

  15. 15

    Java中通过SSH连接到MongoDB

  16. 16

    是否可以通过macvlan将Ubuntu Virtualbox中的Docker容器连接到物理网络?

  17. 17

    如何将JMX从主机连接到Docker机器中的Docker容器?

  18. 18

    SSH进入同一网络中的两台不同的计算机

  19. 19

    家庭网络中的两台计算机失去连接

  20. 20

    联网。不同局域网中两台计算机之间的连接

  21. 21

    在Ansible中,如何连接到Windows主机?

  22. 22

    Ansible 尝试通过 SSH 连接到 Windows 机器(失败)

  23. 23

    Ansible 无法通过 ssh 连接到 Vagrant 创建的 VM

  24. 24

    通过 SSH 隧道将 PHP 连接到 PhpStorm 中托管的数据库

  25. 25

    如何将两台计算机连接到一个外部硬盘驱动器?

  26. 26

    如何将两台交换机连接到华硕RT-AC88U路由器

  27. 27

    两台机器之间的SSH隧道只能SSH到第三台机器,而不能直接到另一台机器

  28. 28

    如果您通过ssh连接到LAN中的另一台设备,是否可以通过不那么直接的路径(WAN)意外连接?

  29. 29

    如何通过SSH连接到位于不同WLAN中的计算机?

热门标签

归档