読者です 読者をやめる 読者になる 読者になる

Vagrant で CentOS の環境構築

Vagrant仮想マシンCUI で簡単に構築できるツールです。

設定ファイルに基いて仮想マシンを自動的に作成してくれるため、
開発環境の構築や破棄が容易に行えるという利点があります。

検証環境

VirtualBoxVMware などの仮想化ソフトウェアが別途必要です。
標準で VirtualBox仮想マシンをサポートしているので、
インストール済みの場合はすぐに使い始めることができます。

用語

Provider : VirtualBoxVMWare などの仮想化ソフト
Box : テンプレートとなる OS のイメージファイル
Vagrantfile : 仮想マシンの構成情報が書かれた設定ファイル

インストー

ブラウザから以下の公式サイトにアクセスし、
使用している OS に合わせてパッケージをダウンロードします。

インストールが完了すると vagrant コマンドが使えるようになります。

$ vagrant --version
Vagrant 1.9.3

Box の追加

以下のサイトから CentOS 7.2 の Box を探します。

vagrant box add <任意のボックス名> <ボックスのURL> で追加します。
Atlas から追加する場合は URL の代わりにボックス名指定で追加できます。

今回は Vagrantbox.ex から box を追加します。

$ vagrant box add centos7 https://github.com/CommanderK5/packer-centos-template/releases/download/0.7.2/vagrant-centos-7.2.box

追加した Box イメージを確認します。

$ vagrant box list
centos7 (virtualbox, 0)

ローカル環境に centos7 という名前で Box が追加されました。

仮想マシンの立ち上げ

初期化

仮想マシン用のディレクトリを作成し、移動します。

$ mkdir ./server01 && cd $_

先ほど追加した Box を init コマンドで適用します。

$ vagrant init centos7

$ ls
Vagrantfile

Vagrantfile が作成されました。

1つの仮想マシンに対して1つの Vagrantfile が存在します。
別のマシンを作成したい場合には別途ディレクトリの作成が必要です。

Vagrantfile 編集

そのままでも起動できますが、起動前にいくつか設定を書き換えておきます。
今回は以下の2つの設定を追加します。

  • プライベートネットワークの利用と IP アドレス固定
  • ホスト側の ../data を ゲスト側の /vagrant_data でマウント
$ vi ./Vagrantfile

Vagrant.configure("2") do |config|
  config.vm.box = "centos7"
  config.vm.network "private_network", ip: "192.168.33.11"
  config.vm.synced_folder "../data", "/vagrant_data"
end

ホスト側でマウントされるディレクトリを作成しておきます。

$ mkdir ./../data

Vagrantfile の設定を書き終えたら仮想マシンを起動します。

$ vagrant up

初回の起動には少し時間がかかりますが、数分で仮想マシンが作成されます。

仮想マシンへの接続

起動が完了したら SSH コマンドで接続します。
Windows の場合は Tera Term などから 127.0.0.1:2222 で接続が可能です。

$ vagrant ssh

[vagrant@localhost ~]$

設定の確認

仮想マシンの OS とアーキテクチャを確認します。

[vagrant@server01 ~]$ cat /etc/redhat-release 
CentOS Linux release 7.2.1511 (Core) 

[vagrant@server01 ~]$ arch
x86_64

先ほど設定ファイルに記述した2点についても確認します。

[vagrant@localhost ~]$ ip addr
[vagrant@localhost ~]$ less /etc/mtab

ホスト名変更

ついでにホスト名も書き換えておきます。

[vagrant@localhost ~]$ sudo su -
[root@localhost ~]# hostnamectl set-hostname server01
[root@localhost ~]# cat /etc/hostname
server01
[root@localhost ~]# reboot

[vagrant@server01 ~]$

仮想マシンの削除

ホスト OS から destroy コマンドで削除できます。

$ vagrant destroy

参考サイト