実施すること
ローカルPC上にVirtualBoxでlinux(CentOS)サーバーを立ち上げる。
VirtualBoxの管理にはVagrantを利用。
サーバー系の学習をするにあたって、すぐに手元でコマンドの動きを確認できる環境が欲しかったので構築してみました。
調べてみると真っ先にVirtualBoxがヒットしましたが、それと同時にVirtualBoxを制御するのにVagrantが便利という記事もあったので、ついでにVagrantも使ってみました。
前提環境
ローカルOS:windows11
virtual box (https://www.virtualbox.org/)
VirtualBoxとは
Oracle社が提供しているフリーソフトで、1台のPC上で既存OSと異なるOSを構築することを可能にしてくれます。
以下のようなイメージです。
WindowsOSの上に1台のWindows、1台のLinux(CentOS)を構築することができます。
Vagrantとは
上でVirtualBoxの説明をしましたが、VagrantはVirtualBox等のソフトウェアからの仮想環境構築をより容易に構築/管理/配布できるソフトウェアとなります。
通常VirtualBoxで仮想環境を構築する際、GUIで1つ1つ手動で構築する、もしくはVBoxManageコマンドを使ってCUIで仮想マシンの起動等を行いますが,
VagrantはVagrantfileという1つの設定ファイルで複数の仮想マシンを管理することができます。
じゃあVirtualBoxは必要ないのでは?と最初勘違いしてしまいましたが、あくまでVagrantはVirtualBoxを代理で操作するソフトウェアですのでVirtualBoxは必要です。
Vagrant自体には仮想化機能は持っていないので、、VMwareやVirtualBoxは別途必要だということですね。
構築手順
1.virtualboxをPCにインストールします
Vagrant公式ページ
http://www.vagrantup.com/
2.vagrantをPCにインストールします
Virtualbox公式ページ
https://www.virtualbox.org/
私はVirtualbox V7を利用します
3.boxを選択します
以下からこれから構築したいVMのOSを探し、URLをCopyします。
https://www.vagrantbox.es/
私はCentOS7を利用します
このboxがこれから構築されるゲストOSに相当します。
4.PCのCLI操作し3でコピーしたboxをvagrantに追加します。
私はCLI操作はwindowsのvscodeからgit bashを利用します。
vagrant box add {title} {url}
{title}は任意ですが、OSが分かりやすい名前とすることをお勧めします
{url}は3のURLを利用します。
コマンド例
vagrant add box centos7.2 https://github.com/CommanderK5/packer-centos-template/releases/download/0.7.2/vagrant-centos-7.2.box
5.PC環境で仮想環境を生成
PCのCLIから以下コマンドを実行
vagrant init
しばらくするとVagrantfileファイルがvagrant init実行したディレクトリ内に生成されます。
6.Vagrantfileの編集
ここで生成されたVagrantfileがVagrantから構築するVMを管理するファイルとなります。
viコマンド もしくはvscodeなどで編集します。
私は以下に編集しました.
config.vm.define "vm1" do |vm1|
vm1.vm.box = "centos/7"
vm1.vm.hostname = "vm1"
vm1.vm.network "private_network", ip: "192.168.50.4"
end
それぞれの編集の意図を伝えると
config.vm.define "vm1" do |vm1|
→vm1の部分は任意の名前になります。
これ以降今回構築するvmのパラメータはvm1.vm.**と定義していくことになります。
vm1.vm.box = "centos/7"
→"centos/7"は4で出てきた{title}を利用します。
vm1.vm.hostname = "vm1"
→これから構築するVMのhostnameを定義
vm1.vm.network "private_network", ip: "192.168.50.4"
→固定のプライベートIPアドレスを定義
7.vagrantでデプロイ
Vagrantfileで編集した内容を以下コマンドでデプロイ
vagrant up
8.デプロイしたVMにログイン
vagrant ssh vm1
vm1にログインが確認出来たらデプロイ成功となります。
実際に触ってみて
今回は1台だけ構築しましたが、もう一台VMを構築するとなった場合
Vagrantfileでconfig.vm.define "vm1" do |vm1|~endまでをコピーして
IPアドレスやホスト名などの固有値を変更してvagrant upするだけなので、確かにvirtualboxの手動操作よりかは管理しやすいのかと思います。
今回は私自身初めてということもあり、基本的な機能のみVagrantfileに定義しましたが、実際シェルスクリプトの利用やPCのディレクトリをVMのディレクトリにマウントする事など色々出来るようなので、より機能を理解すると、より便利に感じるかもしれません。
以上です。