talesleaves-dev

諸々の開発のメモ。画像は面倒

VagrantのPluginについて

Vagrantの機能の拡張

Vagrantは標準でも便利な機能が多数搭載されていますが、実際に使用するにあたって複雑な設定が必要になったり、ProviderやBox内へインストールするツール、ライブラリのバージョン管理が必要になってきます。
これらについて、VagrantではPlugin(以下プラグイン)を利用することで機能を追加したり、設定の負担を軽減することが出来ます。

Vagrantで利用できるプラグインGitHubVagrantwikiに集約されています。
Available Vagrant Plugins · hashicorp/vagrant Wiki · GitHub

プラグインサードパーティー

これらのプラグインについては、Vagrantの開発元であるHashiCorpの公式なリリースではなく、コミュニティからの提供です。
不具合の解消や長期的な提供が保証されているわけではないことには注意が必要です。*1
また、使用法や設定、既知の問題などの情報は各プラグインwikiページで十分に調べておきましょう。

プラグインのインストール、アンインストール

プラグインのインストール、アンインストールは非常にシンプルです。

#インストール
$ vagrant plugin install plugin-name

#アンインストール
$ vagrant plugin uninstall plugin-name

プラグインに関するコマンドは下記に集約されていますので参照してください。
vagrant plugin - Command-Line Interface - Vagrant by HashiCorp

プラグインの一部の紹介

vargrant-vbguestプラグインVirtualBox必須)

VirtualBoxを使用する場合、仮想マシンのOSにVirtualBox Guest Additionsというツールをインストールする必要があります。
この作業がインストールディスクのイメージをダウンロードして仮想マシンにインストールをするという手順であり、かなりの手間となります。
vagrant-vbguestプラグインはこの作業を肩代わりしてくれます。
その分初回のvagrant upに時間がかかるようになりますが、バージョンの管理やイメージのダウンロードを肩代わりしてくれるのは非常に便利です。
是非インストールしておきましょう。

各種Provider用プラグイン

VagrantのデフォルトではProviderはVirtualBoxとなっていますが、プラグインで対応できるものも含めるとかなり広範囲の環境を構築できます。
AWSのEC2や、Microsoft Azureなどのクラウド環境も対応できますので、目的に合わせてインストールしておくとよいかと思います。

Provisioner

Vagrant仮想マシンを起動させた後、OS内へツールやライブラリーをインストールする作業を行うのがProvisioningです。
これらのProvisioningの設定や作業を肩代わりしてくれるプラグインも提供されています。
標準でもChefやDockerが存在していますが、Docker ComposeやAnsibleなども利用できます。

プラグインのまとめ

Vagrantでは環境の構築をVagrantfileで管理します。
このVagrantfileへの記述を減らす、肩代わりしてくれるものがプラグインと言ってよいでしょう。
プラグインへの設定のカスタマイズなどにはVagrantfileの知識が必要になってきますので、最初はプラグインなしでVagrantfileを記述してみるのがいいかもしれません。*2

*1:逆にVagrantの標準機能に取り込まれたプラグインも多い

*2:私もDockerをシェルからインストールしてました