这可能是一个愚蠢的问题,但是
我之前曾在 vagrant 中使用过 trusty64 框,并且尝试过 xenial64 框,但它不接受通常的用户:vagrant 密码:vagrant login?
答案1
正如用户 @prometee 在此启动板讨论中提到的那样#1569237,您可以在以下位置找到密码:
~/.vagrant.d/ubuntu-VAGRANTSLASH-xenial64/20161221.0.0/virtualbox/Vagrantfile
或者:
~/.vagrant.d/boxes/ubuntu-VAGRANTSLASH-xenial64/20161221.0.0/virtualbox/Vagrantfile
取决于你的 Vagrant 版本。(请注意,20161221.0.0
路径部分将根据下载框的时间而有所不同。此外,你的目录中可能有多个。)
这是我的(第 8 行):
# Front load the includes
include_vagrantfile = File.expand_path("../include/_Vagrantfile", __FILE__)
load include_vagrantfile if File.exist?(include_vagrantfile)
Vagrant.configure("2") do |config|
config.vm.base_mac = "022999D56C03"
config.ssh.username = "ubuntu"
config.ssh.password = "fbcd1ed4fe8c83b157dc6e0f"
config.vm.provider "virtualbox" do |vb|
vb.customize [ "modifyvm", :id, "--uart1", "0x3F8", "4" ]
vb.customize [ "modifyvm", :id, "--uartmode1", "file", File.join(Dir.pwd, "ubuntu-xenial-16.04-cloudimg-console.log") ]
end
end
仅供参考,用户@racb 在同一讨论中提到this bug report having been filed
到 ubuntu到目前为止no [...] decision has been made yet
。
答案2
昨天我绞尽脑汁想了半天,才意识到自己运行的是旧版本的 Virtualbox (5.0.x) 和 Vagrant (1.8.0)
更新至 VirtualBox 5.1.x 和 Vagrant 1.8.7 并获得更好的结果
基本上,ubuntu/xenial32
和ubuntu/xenial64
图像是有缺陷的,因为它们不是随vagrant
用户开箱即用的。
这是针对 Vagrant规格
我最终v0rtex/xenial64
按照建议使用了此错误报告。不知道为什么canonical
不修复这个问题
我的流浪文件如下
# -*- mode: ruby -*-
# vi: set ft=ruby :
# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "v0rtex/xenial64"
config.vm.network :private_network, ip: "10.10.10.10"
config.ssh.username = 'vagrant'
config.ssh.password = 'vagrant'
config.vm.provider :virtualbox do |vb|
vb.name = "supercool"
vb.customize ["modifyvm", :id, "--memory", "768"]
vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
end
end
如果您仍想使用canonical
提供的图像,可以使用以下方法
# -*- mode: ruby -*-
# vi: set ft=ruby :
# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "ubuntu/xenial64"
config.vm.network :private_network, ip: "10.10.10.10"
config.ssh.insert_key = true
config.ssh.forward_agent = true
config.vm.provider :virtualbox do |vb|
vb.name = "supercool"
vb.customize ["modifyvm", :id, "--memory", "768"]
vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
end
end
如果你这样做,/vagrant
文件夹将归ubuntu:ubuntu
而不是所有vagrant:vagrant
。如果你的脚本依赖于vagrant
用户,它们将会中断
答案3
已于最后修复(2018/01/13):https://bugs.launchpad.net/cloud-images/+bug/1569237/comments/111
您可能想要运行vagrant box update
然后vagrant destroy
。
答案4
新ubuntu/xenial64
镜像没有默认用户名和密码。但是,您可以使用在 vagrant 文件夹中生成的 ssh-key 进行 ssh 连接。
假设你的 Vagrantfile 位于/vagrant/vm01/Vagrantfile
,则 ssh-key 位于/vagrant/vm01/.vagrant/machines/..../private_key
你可以使用这个登录到你的 vagrant vm private_key
。如果客户机要求输入密钥的密码,只需点击ENTER
(指定一个空白密码)。例如,在我的 Mac 上:
ssh -i /vagrant/vm01/.vagrant/..../private_key <your vm ip> <your vm port>
如果你还是想使用用户名和密码登录,在使用 private_key 登录后,你可以添加自己的用户,以便稍后登录:
# create a user for log in
sudo useradd yourusername
# specify a password
sudo passwd yourusername
# then type your password when prompted
# add the user to sudo group
sudo adduser yourusername sudo
# create a home folder for your user
sudo mkdir /home/yourusername
# add a shell command for your user (normally /bin/bash)
sudo vim /etc/passwd
# find yourusername line, and add /bin/bash to the end.
# the end result would look like this:
yourusername:x:1020:1021::/home/yourusername:/bin/bash
现在您可以使用新的用户名和密码进行 ssh。