Ubuntu@Vagrantにおけるubuntuユーザのパスワード

少々わかりづらいが、表題の通りである。Vagrantで起動しているUbuntu 16.04がある。`vagrant ssh`でログインされる”ubuntu“ユーザのパスワードを知りたい。

■ 環境

  • Ubuntu 16.04
  • Vagrant 1.9.4

■ Ubuntu

使用しているBoxは下記のものである。

$ vagrant box list
ubuntu/xenial64  (virtualbox, 20170331.0.0)
$

このBoxにおける”ubuntu“ユーザのパスワードについては下記のファイルに書かれていた。

$ cat ~/.vagrant.d/boxes/ubuntu-VAGRANTSLASH-xenial64/20170331.0.0/virtualbox/Vagrantfile
# 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 = "026F8338C1E5"
  config.ssh.username = "ubuntu"
  config.ssh.password = "e43b35d5be0112aeaa005902"

  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
$

この”Vagrantfile“の”config.ssh.password“である。試しにこのパスワードを用いて`su`してみると下記のようになった。

$ vagrant ssh
Welcome to Ubuntu 16.04.2 LTS (GNU/Linux 4.4.0-75-generic x86_64)

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

  Get cloud support with Ubuntu Advantage Cloud Guest:
    http://www.ubuntu.com/business/services/cloud

8 packages can be updated.
0 updates are security updates.


Last login: Thu May  11 19:17:14 2017 from 10.0.2.2
ubuntu@ubuntu-xenial:~$
ubuntu@ubuntu-xenial:~$ su - ubuntu
Password: e43b35d5be0112aeaa005902
ubuntu@ubuntu-xenial:~$

ちなみに先日のエントリでどのversionのBoxを使用しているか知りたかったのかは、今回のエントリの為である。

以上。

■ 関連

VagrantでVMが使用しているBoxのversion

VagrantでVMが使用しているBoxのversion

表題を知りたい。

■ 環境

  • Vagrant 1.9.4
  • Mac OSX El Capitan

■ vagrant box list

Boxは下記のように複数のversionをまだ持っている。

$ vagrant box list
bento/centos-6.7 (virtualbox, 2.2.7)
centos/7         (virtualbox, 1608.02)
ubuntu/trusty64  (virtualbox, 20170222.0.0)
ubuntu/trusty64  (virtualbox, 20170405.0.0)
ubuntu/xenial64  (virtualbox, 20170331.0.0)
ubuntu/xenial64  (virtualbox, 20170419.0.0)
$

現在稼動しているVMが”ubuntu/xenial64“を使用しているのであるが、どちらのversionのBoxを利用しているのかを知りたい。何か良い手段はないものだろうか?とコマンドを探るも得られそうなコマンドがない。下記のように`suspend`->`up`としてみた。

$ vagrant suspend
==> default: Saving VM state and suspending execution...
$
$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Checking if box 'ubuntu/xenial64' is up to date...
==> default: A newer version of the box 'ubuntu/xenial64' is available! You currently
==> default: have version '20170419.0.0'. The latest is version '20170508.0.0'. Run
==> default: `vagrant box update` to update.
==> default: Resuming suspended VM...
==> 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: ubuntu
    default: SSH auth method: password
==> default: Machine booted and ready!
==> default: Machine already provisioned. Run `vagrant provision` or use the `--provision`
==> default: flag to force provisioning. Provisioners marked to run always will still run.
$

現在ローカルにある最新のversionは”20170419.0.0“で、最新の”20170508.0.0“がリリースされているよと教えてくれているようであるが、確かにローカルの最新は”20170419.0.0“ではあるのだが実際に稼動しているVMが使用しているBoxは”20170331.0.0“であるようだ…。というのも下記を実行した時のメッセージによる。

$ vagrant box prune
The following boxes will be kept...
bento/centos-6.7 (virtualbox, 2.2.7)
centos/7         (virtualbox, 1608.02)
ubuntu/trusty64  (virtualbox, 20170405.0.0)
ubuntu/xenial64  (virtualbox, 20170508.0.0)

Checking for older boxes...

Box 'ubuntu/xenial64' (v20170331.0.0) with provider 'virtualbox' appears
to still be in use by at least one Vagrant environment. Removing
the box could corrupt the environment. We recommend destroying
these environments first:

default (ID: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX)

Are you sure you want to remove this box? [y/N] N
Removing box 'ubuntu/xenial64' (v20170419.0.0) with provider 'virtualbox'...
$

この表記によると、現在はまだ”v20170331.0.0“で動いているからこいつを先に停止してからにしろよ、と理解した。しかし現時点ではまだ`destroy`したくはないVMである。`vagrant reload`を実行しても変化はなかった。作り直すのが手っ取り早いのであろう…。VMであるからそれは当然といえば当然なのだが…さてどうしたものか。

というわけで本題のBoxのversionを知りたいのだが、まだ解決できずである。

VMのあるディレクトリ配下の下記ファイルを確認したがパッと見ではよくわからない。

$ ls -1 .vagrant/machines/default/virtualbox/
action_provision
action_set_name
creator_uid
id
index_uuid
private_key
synced_folders
$

今後に持ち越しである。

以上。

■ 関連

VagrantのBOXをupdate

Ubuntu@Vagrantにおけるubuntuユーザのパスワード

/vagrantのマウントに失敗 – その2

表題の通り。また最近使っていて同じ現象(?)に当たったので、以前にも書いたのと似たようなものだけど書いておく。

■ 環境

  • Vagrant 1.9.1
  • Mac OSX El Capitan

■ bento/centos-6.7

CentOS 6“のVMを使いたくて下記boxを利用している。

Vagrant box bento/centos-6.7 | Atlas by HashiCorp
https://atlas.hashicorp.com/bento/boxes/centos-6.7

このboxを起動すると、いつも下記のような黄色いメッセージと最後に赤いメッセージで起動に失敗となってしまう。複数のVMを起動しようとしてるときは、最初のVMで失敗してしまうので後続が起動してくれない。

$ vagrant up centos67
  :
[cent67] GuestAdditions versions on your host (5.1.16) and guest (5.0.20) do not match.
  :
Installing Virtualbox Guest Additions 5.1.16 - guest version is 5.0.20
  :
Got different reports about installed GuestAdditions version:
Virtualbox on your host claims:   5.0.20
VBoxService inside the vm claims: 5.1.16
Going on, assuming VBoxService is correct...
Got different reports about installed GuestAdditions version:
Virtualbox on your host claims:   5.0.20
VBoxService inside the vm claims: 5.1.16
Going on, assuming VBoxService is correct...
Got different reports about installed GuestAdditions version:
Virtualbox on your host claims:   5.0.20
VBoxService inside the vm claims: 5.1.16
Going on, assuming VBoxService is correct...
Restarting VM to apply changes...
  :
Vagrant was unable to mount VirtualBox shared folders. This is usually
because the filesystem "vboxsf" is not available. This filesystem is
made available via the VirtualBox Guest Additions and kernel module.
Please verify that these guest additions are properly installed in the
guest. This is not a bug in Vagrant and is usually caused by a faulty
Vagrant box. For context, the command attempted was:

mount -t vboxsf -o uid=500,gid=500 vagrant /vagrant

The error output from the command was:

/sbin/mount.vboxsf: mounting failed with the error: No such device

$

/vagrant“はもちろんマウントできていない。VM側の”Guest Addition“が古いのが原因のようである。しかし”bento/centos-6.7“のversionはこれ以上新しいものはリリースされていない。

$ vagrant box list
bento/centos-6.7 (virtualbox, 2.2.7)
centos/7         (virtualbox, 1608.02)
ubuntu/trusty64  (virtualbox, 20170222.0.0)
ubuntu/xenial64  (virtualbox, 20170331.0.0)
$

状況を確認する。プラグイン。

$ vagrant plugin list
vagrant-share (1.1.6, system)
vagrant-vbguest (0.13.0)
$

vbguest“のプラグインが新しくなっていないか?と思い確認。

$ vagrant plugin update vagrant-vbguest
Updating plugins: vagrant-vbguest. This may take a few minutes...
All plugins are up to date.
$

`update`対象は無いようである。”vbguest“の状態を確認する。

$ vagrant vbguest cent67 --status
[cent67] No installation found.
$
$ vagrant vbguest cent67
[cent67] No installation found.
Loaded plugins: fastestmirror
Setting up Install Process
Loading mirror speeds from cached hostfile
 * base: ftp.riken.jp
 * extras: mirror.qoxy.com
 * updates: mirror.vodien.com
No package kernel-devel-2.6.32-573.el6.x86_64 available.
Package gcc-4.4.7-18.el6.x86_64 already installed and latest version
Package binutils-2.20.51.0.2-5.47.el6_9.1.x86_64 already installed and latest version
Package 1:make-3.81-23.el6.x86_64 already installed and latest version
Package 4:perl-5.10.1-144.el6.x86_64 already installed and latest version
Package bzip2-1.0.5-7.el6_0.x86_64 already installed and latest version
Nothing to do
Copy iso file /Applications/VirtualBox.app/Contents/MacOS/VBoxGuestAdditions.iso into the box /tmp/VBoxGuestAdditions.iso
Installing Virtualbox Guest Additions 5.1.16 - guest version is unknown
Verifying archive integrity... All good.
Uncompressing VirtualBox 5.1.16 Guest Additions for Linux...........
VirtualBox Guest Additions installer
Removing installed version 5.1.16 of VirtualBox Guest Additions...
vboxadd.sh: Stopping VirtualBox Additions.
Copying additional installer modules ...
Installing additional modules ...
vboxadd.sh: Building Guest Additions kernel modules.
Failed to set up service vboxadd, please check the log file
/var/log/VBoxGuestAdditions.log for details.

$
$ vagrant vbguest cent67 --status
[cent67] No installation found.
$

状況は変わらない。以前のエントリの通りログインして操作することにする。

$ vagrant ssh cent67
[vagrant@cent67 ~]$ sudo yum update

VMを再起動してみる。

$ vagrant reload cent67
  :
[cent67] No installation found.
  :
Installing Virtualbox Guest Additions 5.1.16 - guest version is unknown
  :
$

気になるメッセージはまた表示されているが、マウントはしてくれた。

一度起動して対応して…と、最初の起動時からは解決できていないので根本解決にはなっていないが仕方が無い。

以上。

■ 関連

VirtualBoxの/vagrantがマウントに失敗

Vagrantのアップグレードとプラグイン

表題の通り。

■ 環境

  • Vagrant 1.8.5 -> 1.9.1
  • Mac OSX El Capitan

■ version

現状を確認したところ、下記のようにあったので`upgrade`した。

$ vagrant version
Installed Version: 1.8.5
Latest Version: 1.9.1

To upgrade to the latest version, visit the downloads page and
download and install the latest version of Vagrant from the URL
below:

https://www.vagrantup.com/downloads.html

If you're curious what changed in the latest release, view the
CHANGELOG below:

https://github.com/mitchellh/vagrant/blob/v1.9.1/CHANGELOG.md
$

■ plugin

`upgrade`終了後に再度確認してみたところ、下記のようにエラーが発生。

$ vagrant version
Vagrant failed to initialize at a very early stage:

The plugins failed to initialize correctly. This may be due to manual
modifications made within the Vagrant home directory. Vagrant can
attempt to automatically correct this issue by running:

  vagrant plugin repair

If Vagrant was recently updated, this error may be due to incompatible
versions of dependencies. To fix this problem please remove and re-install
all plugins. Vagrant can attempt to do this automatically by running:

  vagrant plugin expunge --reinstall

Error message given during initialization: Unable to resolve dependency: user requested 'vagrant-vbguest (> 0)'
$

使用しているプラグイン”vagrant-vbguest“が古いようである。表記されていたコマンドをそのまま実行した。

$ vagrant plugin expunge --reinstall

This command permanently deletes all currently installed user plugins. It
should only be used when a repair command is unable to properly fix the
system.

Continue? [Y/N]:Y

All user installed plugins have been removed from this Vagrant environment!

Vagrant will now attempt to reinstall user plugins that were removed.
Installing the 'vagrant-vbguest' plugin. This can take a few minutes...
Fetching: micromachine-2.0.0.gem (100%)
Fetching: vagrant-vbguest-0.13.0.gem (100%)
Installed the plugin 'vagrant-vbguest (0.13.0)'!
$

これで正常に使用できるようになったようである。

以上。

Vagrantfileを最小で初期化

表題の通り。知らなかったのでメモ。

■ 環境

  • Vagrant 1.8.5
  • Mac OSX El Capitan

■ vagrant init

最初に`Vagrantfile`を作成するときは、いつも下記のように実行していた。

$ vagrant init centos/7

その後、`Vagrantfile`の中身で不要なコメントを消して…と。この不要な設定例を毎回消しているのが面倒だなと思っていたのだが、どうやらこれを最初から出力させないようにできるらしい。

$ vagrant init -m centos/7

上記で作成された`Vagrantfile`は下記の通りである。

$ cat Vagrantfile
Vagrant.configure("2") do |config|
  config.vm.box = "centos/7"
end
$

こざっぱりした。

`-m`は`–minimal`の短い形式である。

以上。