しかしvirtualboxでLinux等のOSを利用するのにそれほど手間がかかったり不便を感じることはありません。
自力で必要な環境を設定出来るのであれば、不便を感じることが無いのはその通りだと思います。
(Docker等のコンテナベースの仮想環境でも同様でしょう。)
実際にご利用されたことがある方、vagrantを利用するメリット、デメリット等について教えていただけないでしょうか?virtualboxのみで利用する場合と何が大きく違ってくるのでしょうか?
メリット
- 自力でLinuxを設定出来ない人からすると、vagrant up だけで(成功すれば)設定が全て完了すること(「仮想マシンの作成やセットアップ、管理、共有を簡単にするための便利な機能を提供するオープンソースのツールです」の部分)
- 自力でLinuxを設定出来る人にとってのメリットとしては、複数の環境間での冪等性の確保が容易になること(イメージのダウンロードや設定等が全て同じになる事が保証される)
等が挙げられます。
特にチームで開発する際に後者は重要です。
(ある人の環境でしか発生しないエラー
が出てしまうとOS設定から問題を切り分ける必要がある場合がある)
冪等性
を確保しようとした場合、ネットワーク設定や各ソフトウェアの細かいバージョンの設定などを完全に合わせるのはかなり面倒臭い(巨大なVirtualBoxのエクスポートファイルを共有するなりの力業が必要)ので大きなメリットとなります。
そういう意味ではVagrantは
「複数の環境間で仮想マシンの冪等性を確保するための便利なインターフェイス」
と表現することも出来ます。
デメリット
- Vagrant自体の不具合やVirtualbox(やその他の仮想環境)とのバージョンアップ、ホストOSとのバージョンアップ等で問題が発生した際に、問題の切り分けが困難になったり対応コストが発生する
- Vagrant自体の学習コストが発生する
- Vagrantfileの管理運用コストが発生する
- Linuxそのものを理解しなくても環境構築が出来る一方で、問題発生時のトラブルシュートをするための基本的な知識が身につかない(どこにログがあるか、ログをどうやって確認するかが分からない等についての質問はteratailでも見かけます)
と言ったところでしょうか
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。