VagrantとVirtualBoxで仮想環境構築してみた
【結論】
仮想環境を構築する上でVirtualBoxは現場責任者的な立ち位置。
昔の開発者は、VirtualBoxと直接やり取りすることで仮想環境を構築していた。
現場責任者とやり取りする必要があるので、仮想環境構築はかなり面倒だった。
しかし、Vagrantという仲介役の登場で、コマンドを数回叩くだけで環境構築をできるようになった。
【目次】
はじめに
Docker人気なのになぜ、VagrantとVirtualBoxを使って仮想環境を構築するんだろう🤔
と疑問に思う方もいるかもしれません。
正直って特に理由はないです💦
Ansibl学習環境を構築するにあたって、会社の先輩がVagrantを使って学習してたから使ってみるかー🤪的なノリでしかありません。
というか、ここ2ヶ月で環境が変化しすぎて、開発言語とかツールに拘るのがバカらしくなってきたというのもあります🤪
開発言語の変化
PC環境の変化
Windows10(ツールは好きなの入れて良い🎉)
シンクラ端末からWindowsServer2008にログインして操作。
(ツールインストールNG🤮な上に、メモリ不足でChromeが動かないことが🤮)
ツールのインストール
インストールできたかは、⌘+スペース
で表示される画面にVirtualBoxと入力していき、以下の画面が表示されればOK
次のコマンドが通ればインストール成功
$ vagrant --version Vagrant 2.2.5
Vagrantの操作:boxを探す
vagrantではboxという概念を用いて仮想環境を管理しており、用意されている仮想環境は以下のサイトから検索することができます。
https://app.vagrantup.com/boxes/search
centosで検索すると、次のような結果が表示されます。
上図の赤枠で囲った部分がbox名を表し、vagrantで仮想環境を構築するのに必要な情報はこれだけになります。
Vagrantの操作:box環境の取得
PC環境にインストールしてあるboxの一覧を確認します。
$ vagrant box list There are no installed boxes! Use `vagrant box add` to add some.
ボックス名を指定して、PC環境にboxをインストールします。
# vagrant box add [ボックス名] $ vagrant box add centos/7
下図はvagrant box add centos/7
の実行結果になります。
boxは仮想環境ごとに用意されており、自分のPC環境にあった仮想環境を選択する必要があります。
boxのインストールが成功すると、boxリスト一覧に出力されるようになります。
$ vagrant box list centos/7 (virtualbox, 1902.01)
Vagrantの操作:boxを使って仮想環境の構築
boxは仮想環境構築に関する手順をvagrantが理解できる形にまとめた手順書みたいなものなので、boxをインストールしただけでは仮想環境は構築されません。
よって、vagrantに対してインストールしたboxに従って仮想環境を構築するように依頼する必要があります。
と書くとと大げさですが、コマンドを数回叩くだけです。。
まず初めに、適当なフォルダを作成し仮想環境を構築する場所を用意します。
$ mkdir ~/vagrant/centos7 $ cd ~/vagrant/centos7
次に、vagrantにボックス名を指定して仮想環境構築の指示を出します。
# vagrant init [ボックス名] $ vagrant init centos/7
すると、Vagrantファイルが生成されます。
これが仮想環境の設定情報になります。
$ ls Vagrantfile
catで中身を見てみると有効な行はたった3行です。
(※| grep -v '^\s*#' | grep -v '^\s*$'
は#
と空行
を除くおまじないです)
$ cat Vagrantfile | grep -v '^\s*#' | grep -v '^\s*$' Vagrant.configure("2") do |config| config.vm.box = "centos/7" end
構築した仮想環境の状態を確認します。
$ vagrant status Current machine states: default not created (virtualbox) The environment has not yet been created. Run `vagrant up` to create the environment. If a machine is not created, only the default provider will be shown. So if a provider is not listed, then the machine is not created for that environment.
仮想環境を起動します。
$ vagrant up Bringing machine 'default' up with 'virtualbox' provider... ==> default: Importing base box 'centos/7'... ==> default: Matching MAC address for NAT networking... ==> default: Checking if box 'centos/7' version '1902.01' is up to date... ==> default: Setting the nam 〜〜省略〜〜
再度仮想環境の状態を確認すると、not created
→running
に変わっています。
$ vagrant status Current machine states: default running (virtualbox) The VM is running. To stop this VM, you can run `vagrant halt` to shut it down forcefully, or you can run `vagrant suspend` to simply suspend the virtual machine. In either case, to restart it again, simply run `vagrant up
これで、仮想環境へssh接続できます。
デフォルト設定だとルート権限のパスワードはvagrant
になります。
$ vagrant ssh Last login: Sat Jul 6 03:38:40 2019 from 10.0.2.2 [vagrant@localhost ~]$ su Password: [root@localhost vagrant]#
ちなみに、起動している仮想環境はVirtualBox上でも確認できます。
参考情報
MacにVagrantでCentOS7環境を作成 - Qiita
Discover Vagrant Boxes - Vagrant Cloud
さいごに
Vagrantファイルの先頭の記述を見て思ったこと。
「…オメェーRubyだったのか😯」
# -*- mode: ruby -*- # vi: set ft=ruby :