Vagrantについてハマりにハマりまくったメモ
本稿について
VagrantとVirtualBoxについてハマりにハマりまくったので
調べてわかったことを書き連ねます。
参考になりそうな方
- VagrantとVirtualBox使っていて同じくハマった方
- 新入社員の方などで、新しい開発環境をboxで渡されて自PC上に構築する必要のある方
環境
ホストPC: Win10 Pro 64bit
VirtualBox: バージョン 6.1.12
Vagrant: 2.2.10
※なお、今回は事前に利用するbox環境を配布してもらっている状態を前提とします。
Vagrant経由でVirtualBoxにつなげる手順
下記の記事を特に参考にさせていただきました。
https://qiita.com/isotai/items/c83640b0a2194db49b3e
http://vdeep.net/vagrant-package
-
vagrant box add 任意のボックス名 package.boxへのパス
で、package.boxを登録する
例:vagrant box add My_BOX ./package.box -
vagrant box list
で登録したBoxを一覧表示で確認 -
vagrant init 登録したBox名
で初期化する。
例:vagrant init My_BOX
Vagrantfileが生成されることを確認。
-
vagrant up
で起動 -
vagrant ssh
で接続
上記の一連の流れで、vagrant経由でのbox環境の構築が完了します。
2回目以降接続時にエラーが出てしまった。。。原因と対処
上記の対応で1度はVagrant経由でVirtualBOX上の環境にアクセスすることができたのですが、
その後2回目以降接続下記の様な、ネットワークエラーが起きてしまいました。
>vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Checking if box 'bento/centos-6.8' is up to date...
==> 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: vagrant
default: SSH auth method: private key
Timed out while waiting for the machine to boot. This means that
Vagrant was unable to communicate with the guest machine within
the configured ("config.vm.boot_timeout" value) time period.
If you look above, you should be able to see the error(s) that
Vagrant had when attempting to connect to the machine. These errors
are usually good hints as to what may be wrong.
If you're using a custom box, make sure that networking is properly
working and you're able to connect to the machine. It is a common
problem that networking isn't setup properly in these boxes.
Verify that authentication configurations are also setup properly,
as well.
If the box appears to be booting properly,you may want to increase
the timeout ("config.vm.boot_timeout") value.
vagrant側の問題か切り分けるためにVirtualBoxで直接起動をかけたところ同様のエラーが出てしまったため、
VirtualBox側の問題と判断しました。
ちなみにVirtualBox上では下記のようなエラー表示が出ていました。
調べる内にこちらの記事を参考にさせていただき解決しました。
https://qiita.com/ExA_DEV/items/ae80a7d767144c2e1992
やったこと1つめ
- コントロールパネル → ネットワークと共有センター → アダプターの設定の変更
-
VirtualBox Host-Only Network #N
のプロパティを開く -
VirtualBox NDIS6 Bridged Networking Driver
にチェックを入れる -
インターネットプロトコル バージョン6(TCP/IPv6)
のチェックを外し、
[OK] を押し、プロパティウィンドウを閉じる
-
VirtualBox Host-Only Network #N
の右クリックメニューで「無効」にする 再度、「有効」にし直す
やったこと2つめ
- VirtualBoxのGUI画面から
設定
→ネットワーク
を開く。 - 対象のアダプターの
ポートフォワーディング
を押してポートフォワーディングルール
を開く。 - ポートフォワーディングルールの接続時のポートを削除
こちらでうまくつなげることできましたが、2つ目の対処法は根本的な解決になっていない
(ルール削除するだけで繋げられるって単に別でポート使ってるだけなんじゃ・・・)と思うので、
後からなにかわかったことがあれば追記したいと思います。
環境も用意できたので帰ろうとShutdownしたその時
・・・ひえっ
VirtualBox Interface がシャットダウンを妨げることがあります。
実際これはどうやって消したらいいの?と思いますが、こちらの2記事を参考にさせていただきました。
https://www.nahema.net/virtualbox-diturb-shutdown
https://itojisan.xyz/trouble/19045
タスクマネージャーから消すやり方などもおすすめに載っておりますが、
裏でVirtualBoxを利用するエミュレータアプリなどを完全に終了したりするのが先ですので、
こちらをしてもうまくいかない場合の止むを得ずの対応 くらいに思っておく方がよいかと。
おまけ1 Vagrant経由でアクセスする際の接続情報を取得する。
>vagrant ssh-config
Host default
HostName 127.0.0.1
User hogehoge
Port 2222
UserKnownHostsFile /dev/null
StrictHostKeyChecking no
PasswordAuthentication no
IdentityFile C:/Users/hogehoge/.vagrant.d/boxes/hogehoge/0/virtualbox/vagrant_private_key
IdentitiesOnly yes
LogLevel FATAL
vagrant ssh-config
を実行することで、Vagrant経由でアクセスする際の接続情報を取得することができます。
こちら参考にすればTeraTermやVSCodeなどのでのssh設定しておいてbox環境へのssh接続する際もとてもやりやすいです。
おまけ2 最終手段としてVagrantもVirtualBoxも消し去りたい
端末のOSの容量など、いろいろな事情でVirtualBox削除することなどもあるかもしれません。
VirtualBox削除
VirtualBox削除するときはレジストリファイル消したり、Driversのファイル消したりと苦労します。あとめっちゃ怖いです。。
https://ts0818.hatenablog.com/entry/2020/03/07/224428
加えて、あまり他のブログなどに書かれてない印象なのですがWindows環境だとVirtualBox Host-Only Ethernet Adapter
がVirtualBoxインストールの都度自動で出来上がるので、こちらもアンインストール時に削除しておかないと、再インストールなどした際にまた自動で作られて管理が煩雑になると思います。
下記ご参考ください
https://www.it-swarm.dev/ja/vagrant/windows-10%E3%81%A7vagrant%E3%81%AB%E3%82%88%E3%81%A3%E3%81%A6%E4%BD%9C%E6%88%90%E3%81%95%E3%82%8C%E3%81%9F%E4%BD%99%E5%88%86%E3%81%AA%E3%83%9B%E3%82%B9%E3%83%88%E3%81%AE%E3%81%BF%E3%81%AE%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%95%E3%82%A7%E3%82%A4%E3%82%B9%E3%82%92%E5%89%8A%E9%99%A4%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/1054176396/
※↓のように、私の端末では2つも邪魔なネットワーク設定作成されてしまっています。。
Vagrant削除
Vagrantの公式サイトを見るとコンパネからアンインストールするだけでOK、再度利用する場合も気にせずインストールしてくださいと書いてあります。またいつでもインストールしてね。
https://www.vagrantup.com/docs/installation/uninstallation
ただ、いきなりアンインストールしてももともとvagrant up等して作成していた設定は消えないので、
先にvagrant destroyしてから
アンインストールすることおすすめします。
>vagrant halt
>vagrant destroy
参考にさせていただいた記事まとめ
https://muoilog.xyz/web-development/vagrant%E3%81%8Cssh-auth-method-private-key%E3%81%A7%E6%AD%A2%E3%81%BE%E3%82%8B%E5%95%8F%E9%A1%8C/
https://qiita.com/ExA_DEV/items/ae80a7d767144c2e1992
https://gyagya1111.blogspot.com/2015/05/vagrantvirtualbox.html
https://qiita.com/centipede/items/8891a8f033fe2ac788b9
https://ts0818.hatenablog.com/entry/2020/03/07/224428
Author And Source
この問題について(Vagrantについてハマりにハマりまくったメモ), 我々は、より多くの情報をここで見つけました https://qiita.com/pnskh112/items/25b115e03677b8ee8ce8著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .