最近、ちょっとした環境の用意はDockerで行っているのですが、それでもどうしても仮想マシン自体が欲しくなる時があり、
かといってがっつりと仮想化ソフトウェアを使う感じでもない(あくまでインストール手順の確認とか)ので、
簡単に仮想マシンを起動できて破棄できる、Vagrantを利用することにしました。
環境は、Ubuntu Linux 18.04 LTS。
$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 18.04.1 LTS Release: 18.04 Codename: bionic
Vagrantを使うための仮想化ソフトウェアとしては、VirtualBoxを利用します。
Installing Vagrant - Vagrant by HashiCorp
VirtualBoxのインストール。
$ wget https://download.virtualbox.org/virtualbox/5.2.22/virtualbox-5.2_5.2.22-126460~Ubuntu~bionic_amd64.deb $ sudo dpkg -i virtualbox-5.2_5.2.22-126460~Ubuntu~bionic_amd64.deb
自分の環境では、debファイルのインストール時に依存関係でエラーになったので、以下のパッケージを追加で
インストールする必要がありました。
$ sudo apt install libqt5opengl5 libqt5printsupport5 libqt5x11extras5
設定実行。
$ sudo /sbin/vboxconfig
こんなことをしているのは、VirtualBoxを使う時にエラーが出てたから…。
$ VBoxManage --version WARNING: The vboxdrv kernel module is not loaded. Either there is no module available for the current kernel (4.15.0-39-generic) or it failed to load. Please recompile the kernel module and install it by sudo /sbin/vboxconfig You will not be able to start VMs until this problem is fixed. 5.2.22r126460
この時、さらにこのあたりもインストールすることに…。
$ sudo apt install gcc make perl
で、VirtualBoxがセットアップできたので、次はVagrantのインストール。
Vagrantのインストーラーは、こちらのダウンロードページから取得。
Download - Vagrant by HashiCorp
インストール。
$ wget https://releases.hashicorp.com/vagrant/2.2.2/vagrant_2.2.2_x86_64.deb $ sudo dpkg -i vagrant_2.2.2_x86_64.deb
Ubuntu Linux 18.04 LTSをboxに使って、セットアップ。
$ vagrant init ubuntu/bionic64
Project Setup - Getting Started - Vagrant by HashiCorp
Boxes - Getting Started - Vagrant by HashiCorp
Vagrant box ubuntu/bionic64 - Vagrant Cloud
とりあえず、起動。
$ vagrant up
数分待つと起動するので、SSHで接続。
$ vagrant ssh Welcome to Ubuntu 18.04.1 LTS (GNU/Linux 4.15.0-39-generic x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage System information disabled due to load higher than 2.0 Get cloud support with Ubuntu Advantage Cloud Guest: http://www.ubuntu.com/business/services/cloud 0 packages can be updated. 0 updates are security updates. vagrant@ubuntu-bionic:~$
いったん、SSHを抜けてインストールされているboxの確認。
$ vagrant box list ubuntu/bionic64 (virtualbox, 20181129.0.0)
停止。
$ vagrant halt
破棄。
$ vagrant destroy
とりあえず、ここまではOKなので少しVagrantfileをカスタマイズしておきましょう。
メモリを増やして、プロビジョニング時に「apt-get update」。
config.vm.provider "virtualbox" do |vb| vb.memory = "4096" end config.vm.provision "shell", inline: <<-SHELL apt-get update -y apt-get upgrade -y apt-get autoremove -y SHELL
Configuration - VirtualBox Provider - Vagrant by HashiCorp
Provisioning - Getting Started - Vagrant by HashiCorp
Shell Scripts - Provisioning - Vagrant by HashiCorp
簡単な確認環境としては、これでOKでしょう。
あと、たまに仮想マシンをブリッジ接続にしたい時もあるので、そちらも合わせて。
Public Networks - Networking - Vagrant by HashiCorp
ネットワーク設定で、「public_network」を使用するように設定します。
config.vm.network "public_network"
ネットワークインターフェースを複数持っている場合は、次のようにインターフェースを明示します。
config.vm.network "public_network", bridge: "enp14s0"
でないと、起動時に対話形式で質問されることになります。
==> default: Available bridged network interfaces: 1) enp14s0 2) docker0 ...
ブリッジ接続で起動した仮想マシンのIPアドレスを知りたい場合は、「ip a」ででも確認しましょう。
$ vagrant ssh -c 'ip a'