Ansible 未设置在WSL2下运行的流浪者箱

Ansible 未设置在WSL2下运行的流浪者箱,ansible,vagrant,windows-subsystem-for-linux,vagrant-provision,Ansible,Vagrant,Windows Subsystem For Linux,Vagrant Provision,流浪版 Vagrant 2.2.10 主机操作系统 Windows 10(200452020年5月) 来宾操作系统 Ubuntu 18.04(在16.04、20.04中试用) 流浪汉档案 Vagrant.configure("2") do |config| config.vm.box = "ubuntu/trusty64" config.vm.synced_folder ".", "/vagrant", di

流浪版

Vagrant 2.2.10
主机操作系统

Windows 10(200452020年5月)

来宾操作系统

Ubuntu 18.04(在16.04、20.04中试用)

流浪汉档案

Vagrant.configure("2") do |config|
 config.vm.box = "ubuntu/trusty64"

 config.vm.synced_folder ".", "/vagrant", disabled: true

 config.vm.provider "virtualbox" do |vb|
        vb.memory = "4024"
        vb.cpus = "1"
end

config.vm.provision "ansible" do |ansible|
       ansible.become = true
       ansible.verbose = "v"
       ansible.playbook = "roles/firewall.yml"
       ansible.galaxy_roles_path = "./roles"
end end
错误:

U9HRRBMV:/mnt/c/Users/KeithJames/firewall-role-ak$ vagrant up --provision
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Checking if box 'ubuntu/trusty64' version '20190514.0.0' is up to date...
==> default: Running provisioner: ansible...
    default: Running ansible-playbook...
PYTHONUNBUFFERED=1 ANSIBLE_FORCE_COLOR=true ANSIBLE_ROLES_PATH='/mnt/c/Users/KeithJames/firewall-role-ak/roles' ANSIBLE_HOST_KEY_CHECKING=false ANSIBLE_SSH_ARGS='-o UserKnownHostsFile=/dev/null -o IdentitiesOnly=yes -o ControlMaster=auto -o ControlPersist=60s' ansible-playbook --connection=ssh --timeout=30 --limit="default" --inventory-file=/mnt/c/Users/KeithJames/firewall-role-ak/.vagrant/provisioners/ansible/inventory --become -v roles/firewall.yml
Using /etc/ansible/ansible.cfg as config file

PLAY [all] *********************************************************************

TASK [Gathering Facts] *********************************************************
fatal: [default]: UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh: ssh: connect to host 127.0.0.1 port 2222: Connection refused", "unreachable": true}

PLAY RECAP *********************************************************************
default                    : ok=0    changed=0    unreachable=1    failed=0    skipped=0    rescued=0    ignored=0

Ansible failed to complete successfully. Any error output should be
visible above. Please fix these errors and try again.
预期行为

VirtualBox虚拟机应该启动,Vagrant应该能够连接到它(而不是

default: Warning: Connection refused. Retrying...
一遍又一遍,我无法通过SSH连接)

实际行为

WSL2内部的Vagrant无法连接到刚刚启动的VM

U9HRRBMV:/mnt/c/Users/KeithJames/防火墙角色ak$服务ssh状态 *sshd正在运行

复制步骤

  • 使用UbuntuBash在Windows10(2004)上安装WSL2

  • 创建一个包含上述文件的目录

  • 在WSL2环境中下载并安装Vagrant for Linux(无论它是否安装在Windows中)

  • 流浪汉

  • 我还尝试:

    在WSL2中运行vagrant ssh

    U9HRRBMV:/mnt/c/Users/KeithJames/firewall-role-ak$ vagrant ssh
    U9HRRBMV:/mnt/c/Users/KeithJames/firewall-role-ak$
    
    然后我尝试使用原始SSH:

    U9HRRBMV:/mnt/c/Users/KeithJames/firewall-role-ak$ ssh -p 2222 vagrant@127.0.0.1
    ssh: connect to host 127.0.0.1 port 2222: Connection refused
    
    
    U9HRRBMV:/mnt/c/Users/KeithJames/firewall-role-ak$ vagrant up
    Bringing machine 'default' up with 'virtualbox' provider...
    ==> default: Importing base box 'ubuntu/trusty64'...
    ==> default: Matching MAC address for NAT networking...
    ==> default: Checking if box 'ubuntu/trusty64' version '20190514.0.0' is up to date...
    ==> default: Setting the name of the VM: firewall-role-ak_default_1602247434343_82880
    ==> default: Clearing any previously set forwarded ports...
    ==> default: Clearing any previously set network interfaces...
    ==> default: Preparing network interfaces based on configuration...
        default: Adapter 1: nat
    ==> default: Forwarding ports...
        default: 22 (guest) => 2222 (host) (adapter 1)
    ==> default: Running 'pre-boot' VM customizations...
    ==> default: Booting VM...
    ==> default: Waiting for machine to boot. This may take a few minutes...
        default: SSH address: 127.0.0.1:2222
        default: SSH username: vagrant
        default: SSH auth method: private key
        default: Warning: Connection refused. Retrying...
        default: Warning: Connection refused. Retrying...
        default: Warning: Connection refused. Retrying...
        default: Warning: Connection refused. Retrying...
        default: Warning: Connection refused. Retrying...
        default: Warning: Connection refused. Retrying...
        default: Warning: Connection refused. Retrying...
        default: Warning: Connection refused. Retrying...
        default: Warning: Connection refused. Retrying...
        default: Warning: Connection refused. Retrying...
        default: Warning: Connection refused. Retrying...
        default: Warning: Connection refused. Retrying...
        default: Warning: Connection refused. Retrying...
        default: Warning: Connection refused. Retrying...
        default: Warning: Connection refused. Retrying...
        default: Warning: Connection refused. Retrying...
        default: Warning: Connection refused. Retrying...
        default: Warning: Connection refused. Retrying...
        default: Warning: Connection refused. Retrying...
        default: Warning: Connection refused. Retrying...
        default: Warning: Connection refused. Retrying...
        default: Warning: Connection refused. Retrying...
        default: Warning: Connection refused. Retrying...
        default: Warning: Connection refused. Retrying...
        default: Warning: Connection refused. Retrying...
        default: Warning: Connection refused. Retrying...
        default: Warning: Connection refused. Retrying...
        default: Warning: Connection refused. Retrying...
        default: Warning: Connection refused. Retrying...
        default: Warning: Connection refused. Retrying...
    
    等待机器启动时超时。这意味着 Vagrant无法与内的来宾计算机通信 配置的(“config.vm.boot\u timeout”值)时间段

    如果你看上面,你应该能够看到错误 流浪汉在试图连接到机器时发生了意外。这些错误 通常是关于可能出错的好提示

    如果您使用的是自定义框,请确保网络已正确连接 正在工作,您可以连接到机器。这是一个常见的问题 问题是这些框中的网络设置不正确。 验证身份验证配置也已正确设置, 还有

    如果该框看起来启动正常,您可能需要增加 超时(“config.vm.boot\u timeout”)值

    Ansible未能成功完成。任何错误输出都应该是 可见上面。请修复这些错误,然后重试


    您是否确实看到虚拟机在virtualbox中运行?是的,我看到它在VBI中运行,但在您的日志中没有看到机器正在启动。您是否在
    up
    之前尝试过
    vagrant销毁
    ,以确保从头开始?是的,我先进行了vagrant销毁,然后又进行了vagrant up,但仍然无法连接。我已经添加到上面的帖子中。
    U9HRRBMV:/mnt/c/Users/KeithJames/firewall-role-ak$ vagrant up --provision
    Bringing machine 'default' up with 'virtualbox' provider...
    ==> default: Checking if box 'ubuntu/trusty64' version '20190514.0.0' is up to date...
    ==> default: Running provisioner: ansible...
        default: Running ansible-playbook...
    PYTHONUNBUFFERED=1 ANSIBLE_FORCE_COLOR=true ANSIBLE_ROLES_PATH='/mnt/c/Users/KeithJames/firewall-role-ak/roles' ANSIBLE_HOST_KEY_CHECKING=false ANSIBLE_SSH_ARGS='-o UserKnownHostsFile=/dev/null -o IdentitiesOnly=yes -o ControlMaster=auto -o ControlPersist=60s' ansible-playbook --connection=ssh --timeout=30 --limit="default" --inventory-file=/mnt/c/Users/KeithJames/firewall-role-ak/.vagrant/provisioners/ansible/inventory --become -v roles/firewall.yml
    Using /etc/ansible/ansible.cfg as config file
    
    PLAY [all] *********************************************************************
    
    TASK [Gathering Facts] *********************************************************
    fatal: [default]: UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh: ssh: connect to host 127.0.0.1 port 2222: Connection refused", "unreachable": true}
    
    PLAY RECAP *********************************************************************
    default                    : ok=0    changed=0    unreachable=1    failed=0    skipped=0    rescued=0    ignored=0