当前位置: 首页>>技术教程>>正文


ubuntu xenial64盒子密码?

, ,

问题描述

可能是一个愚蠢的问题但是

我之前使用过trustd64盒子并且正在尝试使用xenial64盒子,但是它不接受通常的用户:vagrant密码:vagrant login?

最佳解决方案

正如用户@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 to ubuntu及迄今为止no [...] decision has been made yet相同的讨论。

次佳解决方案

昨天我把头撞到墙上半天,直到我意识到我正在运行旧版Virtualbox(5.0.x)和Vagrant(1.8.0)

更新到VirtualBox 5.1.x和Vagrant 1.8.7并获得了更好的结果

基本上ubuntu/xenial32ubuntu/xenial64图像存在缺陷,因为它们没有开箱即用的vagrant用户。

这是针对Vagrant specifications

我最终按照this bug report中的建议使用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用户的脚本,那么它们将会中断

第三种解决方案

它已被修复(2018/01/13):https://bugs.launchpad.net/cloud-images/+bug/1569237/comments/111

您可能想要运行vagrant box update,然后运行vagrant destroy

第四种方案

一种方法是安装expect并启动密码更改。下面的示例将密码ubuntu设置为用户ubuntu。

Vagrant.configure("2") do |config|
    apt-get install -y expect
    echo '#!/usr/bin/expect
      set timeout 20
      spawn sudo passwd ubuntu
      expect "Enter new UNIX password:" {send "ubuntu\\r"}
      expect "Retype new UNIX password:" {send "ubuntu\\r"}
      interact' > change_ubuntu_password
    chmod +x change_ubuntu_password
  ./change_ubuntu_password
end

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/2925.html,未经允许,请勿转载。