仮想環境VirtualBoxにVagrantを使ってCentOSをインストールしてみましょう。CentOSはWEBシステムで高い評価のあるRed Hat Enterprise Linuxとの互換性を重視したクローン製品です。

公開日時:2021/05/03 16:29 最終更新:2021/06/09 22:16   サーバー
CentOS Linux Vagrant VirtualBox VM 仮想マシン 仮想環境

Vagrantを使ってVirtualBox上にゲストOSとしてCentOSをインストールする

はじめに

この記事では、Vagrantを使って仮想環境であるVirtualBox上にCentOSをインストールしてみます。まだVagrantとVirtualBoxの準備が整っていない方は、あらかじめ『VagrantとVirtualBoxで、システム開発のための勉強環境を構築する』を参照して環境を整えてください。

CentOSは、WEBシステム用のサーバOSとして高い評価のあるRed Hat Enterprise Linuxとの互換性を重視したクローン製品です。『poor's RHEL(貧乏人のためのRed Hat Enterprise Linux)』とも言われ、有償サポートを必要としないような中小規模の企業やサービスで頻繁に利用されています。

これからWEBシステム開発をしていきたいのであれば、CentOSについて勉強しておく事は非常に有意義でしょう。

CentOS公式サイト

公式サイト:The CentOS Project

CentOSは8まではCentOS ProjectとしてRHELのクローン製品の扱いで提供されていましたが、2020年12月8日を以って終了、以後はCentOS Streamという新たな形態へと変更されました。

CentOS Streamは位置づけとしてRHELの『開発ブランチ』となっており、CentOS Streamで行われた変更や新機能が煮詰まった段階で本家のRHELに取り込まれるという形をとる事になっています。

面白い事に、最新ヴァージョンであるCentOS 8のサポート終了は本年2021年12月31日なのに対し、1つ前のヴァージョンであるCentOS 7のサポート終了は2024年6月30日と、まだずいぶん猶予があります。

CentOS Streamは始まったばかりなのでどうなるか不確定な要素が多いですから、現在、勉強のためにCentOSを導入するのであれば、情報が多く枯れた技術として使えるCentOS 7を選ぶのがよさそうです。

CentOS 7のBoxファイルを入手する

Vagrantのサイトでは、VirtualBoxにインストールするOSのテンプレートとなるイメージファイルが沢山公開されており、これらを利用する事で、簡単にゲストOSを構築できます。

Boxファイルの検索

公式サイト:Discover Vagrant Boxes - Vagrant Cloud

検索窓に『centos』と入力して検索してみると、次のような画面になる筈です。

centosで検索

一番上にリストされたcentos/7はダウンロード数500万件と桁違いですがCentOS 7.8で構成されており、現在の最新版であるCentOS 7.9用のカーネルと異なっているため、インストールが上手く行きません。

ですから、2番目のgeneric/centos7を選択します。

クリックすると、Vagrantでのインストール方法が記された画面が表示されます。

centos7のbox

Vagrantを利用するにあたってこの画面で重要なのは赤字の箇所のみです。

VagrantでVirtualBoxに対して、BoxファイルからCentOS 7をインストールする

さて、それではVagrantを使って、実際にVirtualBox上にCentOSをインストールしてみましょう。

まず、VirtualBoxを起動します。ショートカットはこれですね。

VirtualBoxショートカット

VirtualBox画面

ゲストOSを管理するディレクトリ(フォルダ)を作成する

まず、ゲストOSをVagrantで管理するためのディレクトリを作成します。場所はアクセスが制限されるC:\Program Files等でなければ自分の好きな場所で構いません。フォルダ名も好きなようにつけてください。

Vagrantディレクトリ

このフォルダ内に、今回インストールするCentOS 7用のディレクトリ(フォルダ)を作ります。フォルダ名は何でも構いません。

CentOS 7用ディレクトリ

このフォルダ内に入ったら、ようやくVagrantでのゲストOSインストールを開始です。

BoxファイルからCentOS 7をインストールする

/Vagrant/centos7フォルダ内で、Shiftキーを押しながらマウスを右クリックしてコンテキストメニューを開き、『PowerShellウィンドウをここで開く』を選びます。(※環境によっては『コマンドプロンプトをここで開く』の場合もあります。)

コンテキストメニュー

PowerShellウィンドウが開きます。

PowerShell

ここで、vagrantのinitコマンドと先ほど調べたBoxファイルの情報を使って仮想マシン構成を記述するファイルであるVagrantfileを作成します。

vagrant init generic/centos7

コマンドが成功すると以下のようなメッセージが出て、現在のカレントディレクトリ(現在のフォルダ)内にVagrantfileという名のファイルが作られます。

イニシャライズ完了

作成されたVagrantfile

そうしたら、このファイルをテキストエディタで開いてください。

# -*- mode: ruby -*-
# vi: set ft=ruby :
 
# All Vagrant configuration is done below. The "2" in Vagrant.configure
# configures the configuration version (we support older styles for
# backwards compatibility). Please don't change it unless you know what
# you're doing.
Vagrant.configure("2") do |config|
  # The most common configuration options are documented and commented below.
  # For a complete reference, please see the online documentation at
  # https://docs.vagrantup.com.
 
  # Every Vagrant development environment requires a box. You can search for
  # boxes at https://vagrantcloud.com/search.
  config.vm.box = "centos/7"
 
         :
 
  # Create a private network, which allows host-only access to the machine
  # using a specific IP.
  # config.vm.network "private_network", ip: "192.168.33.10"
 
  # Create a public network, which generally matched to bridged network.
  # Bridged networks make the machine appear as another physical device on
  # your network.
  # config.vm.network "public_network"
 
         :
 
  # Enable provisioning with a shell script. Additional provisioners such as
  # Ansible, Chef, Docker, Puppet and Salt are also available. Please see the
  # documentation for more information about their specific syntax and use.
  # config.vm.provision "shell", inline: <<-SHELL
  #   apt-get update
  #   apt-get install -y apache2
  # SHELL
end

Rubyという言語で書かれたファイルで、ほとんどがコメントアウトされた行(#で始まる行)です。

これからインストールする予定のcentos/7はひとまずLANに公開しない事にするため、以下の行のコメントを外してprivate_networkを使ってホストOS(お使いのコンピュータのOS)に対してだけ公開します。

\Vagrant\centos7\Vagrantfile
  # Create a private network, which allows host-only access to the machine
  # using a specific IP.
  # config.vm.network "private_network", ip: "192.168.33.10"
 
            ↓
 
  # Create a private network, which allows host-only access to the machine
  # using a specific IP.
  config.vm.network "private_network", ip: "192.168.33.10"

これで、ホストOSからゲストOSに対してIPアドレス:192.168.33.10でアクセスできるようになります。Vagrantファイルを保存してファイルを閉じてください。(IPアドレスはお望みであれば、適宜変更して構いません。)

そうしたら、先ほど開いていたシェルから以下のコマンドを実行します。

vagrant up

ゲストOSインストール中(1)

ゲストOSインストール中(2)

VirtualBox上で状態が『➡実行中』となり、プレビューを見ると、仮想マシン上でインストール処理が進んでいるのが分かります。

ゲストOSインストール中(3)

ゲストOSインストール中(4)

以上のようにシェルにコマンドプロンプトが戻ってきたらインストール完了です。

インストール状況確認

開いているシェルからvagrantを使ってssh接続でゲストOSにログインしてみます。

vagrant ssh

ssh接続

vagrant@localhostとしてコマンドプロンプトが表示されれば、ssh接続成功です。

インストールしたのはCentOSなので、CentOS 7でのバージョン確認コマンドを使ってみましょう。

cat /etc/redhat-release

catコマンドは「con-cat-enate(つなぐ、連結する)」が語源のようで、ファイルを連結するためのコマンドですが出力先を指定しないと標準出力に内容が表示されるため、簡単にファイル内容を確認するために頻繁に用いられます。

つまり、/etc/redhat-releaseの内容が標準出力に出力されるので、それがそのままシェルに表示されます。

ヴァージョン確認

OSのバージョンが確認できればインストールは無事成功しています。シェルで以下のコマンドを入力して、ゲストOSからログアウトしてください。

exit

ssh接続からログアウト

インストール直後のスナップショットを作成

最後に、初期状態のCentOS 7のスナップショットを作成し、いつでもこの状態に戻れるようにしましょう。

スナップショットメニュー

仮想マシンの右端にあるアイコンをクリックするとコンテキストメニューが開きます。ここから『スナップショット』をクリックします。

『作成(T)』というカメラのアイコンのボタンをクリックすると、『仮想マシンのスナップショット作成』ダイアログが開きます。ここで、自分が理解しやすいスナップショットの名前と説明を入力し、OKを押してください。

スナップショットの名前と詳細の入力

スナップショットが作成されると、ツリー構造で表現されます。

スナップショット作成完了

以上で、スナップショットの作成は終了です。

仮想マシンを停止して終了

シェルに戻って、以下のコマンドで仮想マシンを停止できます。

vagrant halt

halt

仮想マシンの状態が『電源オフ』になります。

電源Off状態

まとめ

以上がVagrantを使ってVirtualBox上に仮想マシンを構築し、スナップショットを作成するまでの手順です。 次は、『CentOS上にPHPの開発環境を作成する』で、今回作成した仮想マシン上にApache、PHP、MySQL等をインストールする手順をご紹介します。

記事リンク