Vagrantプラグイン

コンピュータ
コンピュータ

Vagrantにはさまざまな便利なプラグインがあります。

使い方

プラグイン一覧

vagrant plugin list

プラグインインストール

vagrant plugin install <プラグイン名>

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

vagrant plugin uninstall <プラグイン名>

プラグインアップデート

vagrant plugin update <プラグイン名>

※プラグイン名の入力無しですべてのプラグインをアップデート

プラグイン

vagrant-vbguest

vagrant-vbguestは、ホストOSのVirtualBox Guest AdditionsをゲストOSに自動的にインストールするプラグインです。

vagrant plugin install vagrant-vbguest

Guest Additionsは、ホストOSとゲストOS間の連携をスムーズにするソフトウェアです。
ホストOSとの時刻同期やフォルダーの共有などが行えるようになります。

Guest Additionsをインストールする際に、kernelなどのパッケージ更新も行われます。

sahara

ゲストOSをロールバックして元の状態に戻すことができるようになるプラグインです。

vagrant plugin install sahara

仮想マシンを起動後、sandboxモードをonにします。

vagrant sandbox on

roolbackすることにより、onにした状態へ戻ります。

vagrant sandbox rollback

commitすることにより、その時点の状態を記憶します。
rollbackするとcommitした時点に戻ります。

vagrant sandbox commit

sandboxモードをoffにすると、commitした時点、もしくは、sandboxモードをonにした時点へ戻ります。

vagrant sandbox off

vagrant-disksize

仮想マシンのディスク容量を増やすことができます。

vagrant plugin install vagrant-disksize
Vagrant.configure("2") do |config|
  config.vm.box = "ubuntu/bionic64"

  config.disksize.size = "100GB"
end

ディスク容量は減らすことができません。
Boxによってはディスク容量が増えても、パーティションの設定が必要になる場合があります。

パーティションの設定が必要な場合は、Gpartedというパーティション操作ツールを使うとよいです。
https://gparted.org/livecd.php

VirtualBox側からLive CDで起動して使えます。

debianのBoxはパーティションの操作が必要になります。
ubuntuのBoxの場合はパーティションが1つなので、パーディション操作は不要です。

vagrant-hostmanager

ホストOS・ゲストOSのhostsに設定を行ってくれます。

vagrant plugin install vagrant-hostmanager
Vagrant.configure(2) do |config|

  config.vm.box = "debian/buster64"

  config.vm.network "private_network", ip: "192.168.33.10"

  config.vm.hostname = "hostmanager.test"

  config.hostmanager.enabled = true
  config.hostmanager.manage_host = true
  config.hostmanager.manage_guest = true
end

DHCPで動的にIPアドレス割り当照られる場合でも、ゲストOSからIPアドレスを取得して設定することも可能です。

Vagrant.configure(2) do |config|

  config.vm.box = "debian/buster64"

  config.vm.network "private_network", type: "dhcp", ip: "192.168.33.0"

  config.vm.hostname = "hostmanager.test"

  config.hostmanager.enabled = true
  config.hostmanager.manage_host = true
  config.hostmanager.ip_resolver = proc do |vm, resolving_vm|
    ip_address = ''
    if hostname = (vm.ssh_info && vm.ssh_info[:host])
      vm.communicate.execute("/bin/ip addr show dev eth1 | grep 'inet ' | tail -n 1 | egrep -o '[0-9\.]+' | head -n 1 2>&1") do |type, contents|
        ip_address = contents.split("\n").first
      end
    end
    ip_address
  end
end

vagrant-env

.envファイルから環境変数を読み込みます。

vagrant plugin install dotenv
HOST_NAME=hostmanager.test
Dotenv.load

Vagrant.configure(2) do |config|

  config.vm.box = "debian/buster64"

  config.vm.network "private_network", ip: "192.168.33.10"

  config.vm.hostname = ENV['HOST_NAME']

  config.hostmanager.enabled = true
  config.hostmanager.manage_host = true
  config.hostmanager.manage_guest = true
end

Dotenv.load.envから読み込みます。

vagrant-envというプラグインもあるのですが、設定ファイルにひらがなが入っているとエラーになります。

vagrant-docker-compose

ゲストOSにDocker・Docker Composeをインストールします。
コンテナをdocker-compose.ymlから起動させることも可能です。

vagrant plugin install vagrant-docker-compose
Vagrant.configure(2) do |config|
  config.vm.box = "debian/buster64"

  config.vm.provision :docker
  config.vm.provision :docker_compose
end

docker-compose.yml起動例

  config.vm.provision :docker_compose, yml: "/vagrant/docker-compose.yml", run: "always"

コメント

タイトルとURLをコピーしました