VagrantのSSH config

表題の件について。何の気なしに`vagrant ssh-config`を実行してみて、普段使用している自身のものと何が違うかを見てみた。

■ 環境

  • Vagrant 2.0.3
  • macOS High Sierra

■ vagrant ssh-config

$ vagrant ssh-config
Host default
  HostName 127.0.0.1
  User vagrant
  Port 2200
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no
  PasswordAuthentication no
  IdentityFile /Users/withsin/path/to/VM/.vagrant/machines/default/virtualbox/private_key
  IdentitiesOnly yes
  LogLevel FATAL

$

気になるところとしては下記くらいであろうか。

  • UserKnownHostsFile /dev/null
  • PasswordAuthentication no
  • IdentitiesOnly yes
  • LogLevel FATAL

■ UserKnownHostsFile

AWSでインスタンスを再構築した際にこれが邪魔になることもあるが…社外に繋ぐ時はあってくれても問題ない。頻度は少ないのでこれといって問題にしていない。

■ PasswordAuthentication

クライアント側ではこれは記載していないな。サーバに準ずる、という感じでいる。

■ IdentitiesOnly

これは指定するとどういう動きになるのだろう?defaultは”no“であるようだが…。”IdentityFile“での接続を必須とするかどうかはサーバに準ずると思っているのだが…。とりあえず無くても問題ないだろう。

■ LogLevel

これも特に指定しなくて良い気がする。問題に感じることは今までに無い。

特に目新しいものはなかった。

以上。

vagrant box update/add

Vagrantにおいて表題の件について。

■ 環境

  • Vagrant 2.0.3
  • macOS High Sierra

■ vagrant box update

boxの新しいversionが出ていると気がつくのは大抵`vagrant up`した後なのだが、いざ使おうと言う時に言われてもなぁ…と思うことが多々ある。事前にupdateがあるか確認してから`vagrant up`したいなと思うのだが、`vagrant box update`はVMが起動している時でないと実行できないようで悶々としていた。

■ vagrant box add

`vagrant box add`で先にupdateがあるかを確認できるようである。

$ vagrant box list
bento/centos-6.7 (virtualbox, 2.2.7)
centos/6         (virtualbox, 1707.01)
centos/6         (virtualbox, 1708.01)
centos/6         (virtualbox, 1710.01)
centos/7         (virtualbox, 1707.01)
centos/7         (virtualbox, 1802.01)
  :
$

上記の環境で”centos/6″を使いたいのだが、これも新しいboxがあるよな…と思い実行してみる。

$ vagrant box add centos/6
==> box: Loading metadata for box 'centos/6'
    box: URL: https://vagrantcloud.com/centos/6
This box can work with multiple providers! The providers that it
can work with are listed below. Please review the list and choose
the provider you will be working with.

1) hyperv
2) libvirt
3) virtualbox
4) vmware_desktop

Enter your choice: 3
==> box: Adding box 'centos/6' (v1802.01) for provider: virtualbox
    box: Downloading: https://vagrantcloud.com/centos/boxes/6/versions/1802.01/providers/virtualbox.box
    box: Download redirected to host: cloud.centos.org
==> box: Successfully added box 'centos/6' (v1802.01) for 'virtualbox'!
$

追加されたのを確認できる。

$ vagrant box list
bento/centos-6.7 (virtualbox, 2.2.7)
centos/6         (virtualbox, 1707.01)
centos/6         (virtualbox, 1708.01)
centos/6         (virtualbox, 1710.01)
centos/6         (virtualbox, 1802.01)
centos/7         (virtualbox, 1707.01)
centos/7         (virtualbox, 1802.01)
  :
$

再度`vagrant box add`をやろうとするとエラーとなる。

$ vagrant box add centos/6
==> box: Loading metadata for box 'centos/6'
    box: URL: https://vagrantcloud.com/centos/6
This box can work with multiple providers! The providers that it
can work with are listed below. Please review the list and choose
the provider you will be working with.

1) hyperv
2) libvirt
3) virtualbox
4) vmware_desktop

Enter your choice: 3
==> box: Adding box 'centos/6' (v1802.01) for provider: virtualbox
The box you're attempting to add already exists. Remove it before
adding it again or add it with the `--force` flag.

Name: centos/6
Provider: virtualbox
Version: 1802.01
$

途中までは、またダウンロードを最初からやるのか?と思ったがしっかり弾いてくれた。満足である。

以上。

Vagrant upgrade

久しぶりに表題の通り。

■ 環境

  • Vagrant 2.0.1 → 2.0.3
  • macOS High Sierra

■ vagrant version

何の気なしに`vagrant version`を実行した。

$ vagrant version
Installed Version: 2.0.1
Latest Version: 2.0.3

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/v2.0.3/CHANGELOG.md
$

新しいversionが出ているようなのでupgradeすることにした。dmgをダウンロードしてきてインストールして、再度`vagrant version`を確認しようとしたところ下記のようなエラーが。

$ 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

Or you may want to try updating the installed plugins to their latest
versions:

  vagrant plugin update

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

とりあえず`vagrant plugin repair`を実施。

$ vagrant plugin repair
Repairing currently installed plugins. This may take a few minutes...
Fetching: vagrant-share-1.1.9.gem (100%)
Fetching: micromachine-2.0.0.gem (100%)
Fetching: vagrant-vbguest-0.15.1.gem (100%)
Installed plugins successfully repaired!
$

`vagrant version`も問題なくなった。

$ vagrant version
Installed Version: 2.0.3
Latest Version: 2.0.3

You're running an up-to-date version of Vagrant!
$

以上。

VagrantCloud

表題についてのメモ。

■ 環境

  • Vagrant 2.0.1
  • Mac OSX El Capitan

■ Vagrant

Boxを探そうとして以前のまま下記にアクセスしてしまった。

https://atlas.hashicorp.com/

そういえばVagrantCloudに変わったはずだよな…と思ったものの、どのURLにアクセスすれば良いのだ?と思い出せず。しばし考えてアクセスすると下記に飛ばされた。

https://vagrantcloud.com/
https://app.vagrantup.com/boxes/search

移行されたのはもう結構前のようであった。

https://pocketstudio.net/2017/06/01/vagrant-cloud-migration0announcement-translate.md/

確かに「あー変わったんだな」とか「アカウントが移行なのか」と思った記憶もある。

vagrant plugin repair

表題のコマンドを実行する羽目になった。

■ 環境

  • Vagrant 2.0.1
  • Mac OSX El Capitan

■ Error

下記のようなエラーが出ていた。

$ vagrant status
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

Or you may want to try updating the installed plugins to their latest
versions:

  vagrant plugin update

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

変なタイミングでVagrantをupgradeしたせいだろうか。とりあえずメッセージにある通りにやってみる。

■ plugin repair

$ vagrant plugin repair
Repairing currently installed plugins. This may take a few minutes...
Fetching: vagrant-share-1.1.9.gem (100%)
Fetching: micromachine-2.0.0.gem (100%)
Fetching: vagrant-vbguest-0.15.0.gem (100%)
Installed plugins successfully repaired!
$

これで一応問題は解決できたようだ。`vagrant status`が正常に返ってくるようになった。

■ plugin update

念のため書きも実施しておく。

$ vagrant plugin update
Updating installed plugins...
Updated 'vagrant-share' to version '1.1.9'!
Updated 'vagrant-vbguest' to version '0.15.0'!
$

以上。