開発環境をどうにか改善したいと考え出した際に、1つの案として仮想環境を構築することを考えました。
ただ、仮想環境を作るにしても工数がかかるだろうなと思っていたところ、Software DesignでVagrantの記事を見つけたので試してみました。
Vagrantとは
Vagrantは、Vagrantfileというコンフィグファイルを用いることで必要なソフトウェアやパッケージ、OS設定、ユーザを設定した仮想環境を構築することが可能です。
Boxというイメージファイルを使用し、仮想環境を構築します。Boxファイルは、Discover Vagrant Boxes - Vagrant Cloud に登録されているものを使用することが出来ます。
また、VagrantはMac、Linux、Windows上で動作可能です。
www.vagrantup.com
インストール方法
私は、MacBookを使用しているので、Homebrewを使ってVirtualBoxとVagrantをインストールしました。
インストール先の環境情報は次のとおりです。
ProductName: Mac OS X ProductVersion: 10.13.6 BuildVersion: 17G65
VirtualBoxとVagrantのインストールは次のように実施しました。
$ brew cask install virtualbox $ brew cask install vagrant
BoxファイルのインストールからゲストOSの起動まで
ubuntuのboxイメージを使用して仮想環境を構築してみます。
まず、boxファイルをローカル環境に追加します。
vagrant box listを実行し、ローカル環境にboxが追加されたことを確認します。
$ vagrant box add ubuntu/trusty64 $ vagrant box list ubuntu/trusty64 (virtualbox, 20180824.0.13)
次に作業用ディレクトリを作成し、Vagrantfileを作成します。
Vagrantfileを開き、35行目のconfig.vm.networkのコメントアウトを外し、仮想環境の固定IPを設定します。
$ mkdir ubuntu $ cd ubuntu $ vagrant init ubuntu/trusty64 $ vi Vagrantfile vagrant.vm.newtorkのコメントアウトを外す
次に、VagrantfileをベースにゲストOSの作成、設定をします。
ゲストOSの作成が完了したら、vagrant sshで環境にログインします。
$ vagrant up Bringing machine 'default' up with 'virtualbox' provider... ==> default: Importing base box 'ubuntu/trusty64'... ==> default: Matching MAC address for NAT networking... ==> default: Checking if box 'ubuntu/trusty64' is up to date... ==> default: Setting the name of the VM: ubuntu_default_1537188260766_64982 ・・・・・(省略) default: Guest Additions Version: 4.3.36 default: VirtualBox Version: 5.2 ==> default: Configuring and enabling network interfaces... ==> default: Mounting shared folders... default: /vagrant => /Users/xxxxx/Vagrant/ubuntu
ゲストOSの作成完了、ゲストOSにログイン。
$ vagrant ssh Welcome to Ubuntu 14.04.5 LTS (GNU/Linux 3.13.0-158-generic x86_64) * Documentation: https://help.ubuntu.com/ System information as of Mon Sep 17 12:44:42 UTC 2018 System load: 0.96 Processes: 81 Usage of /: 3.6% of 39.34GB Users logged in: 0 Memory usage: 25% IP address for eth0: 10.0.2.15 Swap usage: 0% Graph this data and manage this system at: https://landscape.canonical.com/ 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. New release '16.04.5 LTS' available. Run 'do-release-upgrade' to upgrade to it. vagrant@vagrant-ubuntu-trusty-64:~$
以上で、ゲストOSにログインすることができました。
ゲストOSの停止
起動したゲストOSを停止するには、vagrant haltコマンドを実行します。
$ vagrant halt
==> default: Attempting graceful shutdown of VM...
$
ゲストOSの削除
作成したゲストOSを削除するには、vagrant destoryコマンドを実行します。
削除するゲストOSのVagrantfileのあるディレクトリでコマンドを実行します。
$ vagrant destroy default: Are you sure you want to destroy the 'default' VM? [y/N] y ==> default: Destroying VM and associated drives... $
Boxファイルの削除
不要なboxファイルは、vagrant box remove [boxファイル名] で削除できます。
$ vagrant box list ubuntu/trusty64 (virtualbox, 20180824.0.13) $ vagrant box remove ubuntu/trusty64 Removing box 'ubuntu/trusty64' (v20180824.0.13) with provider 'virtualbox'... $ vagrant box list $