【VirtualBox】開発環境を作る – OS編 【CentOS】

web

こんにちは、なかだ(@newNakata)です。

今回は仮想環境構築を纏めてログに残していきたいと思います。
本稿は仮想化ソフト、OSのインストールと最小限の設定までを記載します。
環境ということもあり、スタートアップの方にもできるだけ真似すればできる様に記載したいと思っています。

※ 本稿に出るPCのOSはWindowsです。

開発環境とは

ここで言う開発環境とは、PCにvirtual boxを使用して仮想環境を作り、その仮想環境にweb開発に必要なOSやその他ソフトを入れ、最終的には仮想サーバとして使用できるものの事を言います。
下記に記載しますが簡単に言うとLAMP+α環境になります。
PCにインストールするのはvirtual boxのみです。
後はvirtual boxのvboxファイルが肥大していくだけです。
不要になったらフォルダ毎ファイルの削除、virtual boxのアンインストールで綺麗に消えます。

構成

  • Virtual Box 6.1.16
  • CentOS(Linux) ← 本稿はここまで
  • Apache(HTTPD)
  • MySQL(MariaDB)
  • PostgreSQL
  • PHP

Virtual Box

インストール

Download VirtualBoxを表示し以下からファイルをダウンロードします。

ダウンロードしたインストーラを実行し、VirtualBoxをインストールします。
保存したexeファイル(今回の場合はVirtualBox-6.1.16-140961-Win.exe)をダブルクリックし、セットアップウィザードを実行します。

welcomeメッセージです。
Nextボタンを押下します。

インストール先のフォルダを初期フォルダから変更したい場合はBrowseボタンを押下して変更してください。
変更する必要が無い場合、そのままNextボタンを押下します。

上から

・スタートメニューに登録
・デスクトップにショートカット作成
・クイックランチバーに登録
・ファイルの関連付けを登録

になります。
必要に合わせて選択してください。
ただし、一番下の「ファイルの関連付け」は.vboxなどvirtual boxで必要なファイルになる為、チェックは外さないでください。
特に問題が無ければそのままNextボタンを押下します。

インストール時、ネットワーク接続を一時的に切断しますがインストールしますか?
切断されたとしても一瞬なので気にせずYesボタンを押下します。

Installボタンを押下してインストールを開始します。
設定を変更する場合はBackボタン、一旦中止する場合はCancelボタンを押下してください。

Installボタンを押下するとUAC(ユーザーアカウントコントロール)警告が出ます(UACを無効にしていた場合は出ません)。
UACはwindows側のセキュリティ機能です。
警告は「このアプリがデバイスに変更を加えることを許可しますか?」と表示されますので「はい」を押下してください。

Finishボタンを押下して、セットアップウィザードを終了します。
これでインストールは完了です。
チェックボックスにチェックを入れた状態でFinishボタンを押下するとvirtual boxが起動します。

仮想マシン作成

virtual boxが起動するとマネージャーが立ち上がり、ペンギン(タックス?)が表示されます。

仮想マシンを作成する為に「新規」ボタンを押下します。

ポップアップが表示されるので、エキスパートモードをクリックします。

ポップアップが切り替わるので以下の通りに変更します。

・名前
 作成する仮想マシンの名前ですので何でも構いません。
・マシンフォルダー
 作成する仮想マシン(.vbox)関連のファイルを置くフォルダーです。
 場所が気にならなければ初期設定から変更しなくても大丈夫です。
 画像はcドライブの直下にwork、その下にVirtualBox VMsフォルダを作成し
 指定しています。
・タイプ
 仮想マシンに入れるOSはCentOSを予定しているのでLinuxを選択します。
・バージョン
 タイプでLinuxを選択したので、RedHat(64-bit)を選択します。
・メモリーサイズ
 仮想マシンで使用できるメモリサイズになります。
 個人的には2G(画像は2G)、PCが低スペックの場合は1Gにします。
 設定は後で変えられるのでお使いの環境に合わせて大丈夫です。
・ハードディスク
 仮想ハードディスクを作成するを選択。

指定が終わったら作成ボタンを押下します。

更にポップアップが表示されます。

・ファイルの場所
 先ほど設定したマシンフォルダー以下に.dviが作成されます。
・ファイルサイズ
 仮想ハードディスクサイズで、画像では20Gにしています。
 お使いのPCの環境に合わせて設定してください。
 ちなみに、今後開発で使用する事を考えている場合は20Gでは少ないです。
 後で拡張はできますが、拡張作業は少々面倒です。
 PCの容量が十分ある場合は少なくとも50G以上をお勧めします。
 ※50Gに設定したからと言ってPCのハードディスクを50G使うわけではありません。
・ハードディスクのファイルタイプ
 初期設定のまま(VDI)で大丈夫です。
・物理ハードディスクにあるストレージ
 初期設定(可変サイズ)で大丈夫です。

指定が終わったら作成ボタンを押下します。

仮想マシン作成に時間はかかりません。
作成が完了すると画像の様な表示になります。

次はCentOSのダウンロードからですので、右上にある×ボタンで閉じてもいいですし、続けて作業を行うのであれば開きっぱなしでも大丈夫です。

CentOS

インストール

CentOS Downloadを表示し以下からファイルをダウンロードします。

この度はCentOS7にするので7(2009)のタブを押下し、ISOからx86_64を押下します。

どこからダウンロードするかを選択します。
どこでも大丈夫ですので一番上を選択します。

色々ありますが、メインのisoファイルをダウンロードします。
本稿はこれ以外は使いません。

ダウンロードが完了したらvirtual boxを起動し、設定ボタンを押下します。

左メニューのストレージ項目を押下します。
中央画面ストレージデバイスのコントローラー:IDEの「空」を押下します。
右画面の属性が変わりますので、ディスクアイコンを押下し、その状態でディスクファイルを選択…を押下します。

ファイル選択ポップアップが開きますので、先ほどダウンロードしたファイルを選択します。
本稿では「CentOS-7-x86_64-DVD-2009.iso」になります。

ファイルを選択すると画像の青枠の表示になります。
選択が終わったらOKボタンを押下します。

ディスクイメージ(iso)をセットしたら仮想マシンを起動します。

初回起動時だけ画像のように表示されます。
先ほどせっとしたディスクイメージ名が表示されているのを確認して起動を押下します。
ちなみに、インストール途中でインストール作業を中断した場合、ディスクイメージが外れています。
再度セットしてから仮想マシンを起動してください。

この様な感じで立ち上がります。
個人的にはこの起動画面はいつもかっこいいなと思ってしまいます。

仮想マシンの起動が終わると、次はセットしていたディスクイメージが実行され、画像のような画面になります。
初期選択としてTest this media & install CentOS7が選択されています。
このまま放置すると画面下に表示されている様に60秒後には上記が実行されます。
media(ディスクイメージ)のTestですが、ダウンロードしたファイルが余程不安で無い限り不要です。
更に、60秒も待ってられないと言う方は仮想マシンに移って初期選択の上のInstall CentOS 7を選択し、エンターを押下してください。
仮想マシンに移る時に以下の画面が表示されます。

先ほど、仮想マシンに移ると書きましたが、virtual boxではキャプチャーと表示しています。
簡単に言うと

仮想マシンを操作したい時は仮想マシンの画面をクリックしてね。
仮想マシンの操作から抜けたい場合はホストキー(キーボード右側のCtrlキー)を押してね。


と言う事。
次回から不要であればチェックボックスにチェックを入れてキャプチャーボタンを押下すると仮想マシンに入れます。

わちゃわちゃ文字が流れ始めますのでしばらく見守ります。

ちなみに画面上の方に帯が表示されています。
これが不要な場合は帯の右端にある吹き出しに斜め線のアイコンを押下してください。

黒い文字の画面から一転、画面が切り替わり言語一覧が表示されます。
インストール時に使用する言語を選択します。
青枠の項目に j と入力すると画像の様に絞り込まれますので日本語を選択して続行ボタンを押下します。

色々項目が出てきます。
ここで設定できる事は後からでももちろん設定できます。
1つずつ見て行きましょう。

必要最低限の設定(3箇所)

ソフトウェアの選択(S)

ソフトウェアの選択(S)を押下すると上の画像のような画面が表示されます。
ここでは「パッケージは必要になった時に入れればいいや」の精神で「最小限のインストール」を選択し、アドオンとして右ペーンに表示されている開発ツールを選択します。
一般的(?)には下にあるインフラストラクチャーサーバーを選択する事が多いです。
内部の話をちょっとするとcoreだけかbaseも入れるのかの違いなのですが、ここでは割愛します。
インフラストラクチャーサーバを選択すると最小限のインストールよりもアドオンが多く表示されます。
よくわからない場合は最小限のインストール同様に開発ツールにチェックを入れておけばよいと思います。
ちなみに、最小限のインストールやインフラストラクチャーサーバーはGUIは使えません。
コマンドラインで操作するのが嫌な方は更に下の方にある”GNOME Desktop”や”KDE Plasma Workspaces”を選択すると良いかと思います。

インストール先(D)

インストール先(D)を押下すると上の画像のような画面が表示されます。
既に選択済の状態ですが、この画面を1回開いて完了ボタンを押下しないとメニュー画面下のインストール開始(B)ボタンが押下できません。
仮想マシンの作成時に指定した20Gのディスクが選択されている状態を確認して完了ボタンを押下してください。
今回は特にパーティション構成は変更しません。

ネットワークとホスト名(N)

ネットワークとホスト名(N)を押下すると上の画像のような画面が表示されます。
インストール直後から外部のネットワークにアクセスできる様に、ネットワークアダプタをオン(起動)に変更します。
ここをオンにしておかないとインストール直後にサーバにログインし手動で変更する必要がでてきます。
画面右のオフを押下しオンに変更し、完了ボタンを押下します。
上記ネットワークアダプタのオンも含め、ここの設定は必要であれば後から都度変更する事になるので、ここでは変更しません。

その他の設定

日付と時刻(T)
最初から”アジア/東京 タイムゾーン”が選択されている状態になっていると思うのでここでは変更しません。
PCのハードウェアクロックから時間を拾っているはずですので、時間もあっているかと思います。
この項目を押下して設定できるNTP(chrony)は後からでももちろん変更できますし、使う使わないに限らずchronyは一緒に起動します。

キーボード(K)
“日本後”が選択されているかと思います。
英語キーボードを使う事は想定していないため、ここでは変更しません。

言語サポート(L)
“日本語(日本語)”が選択されているかと思います。
必要であれば追加変更して頂くと言う事でここでは変更しません。

インストールソース(I)
“ローカルメディア”が選択されているかと思います。
ここではローカルメディア(=DVDイメージ)で事足りるので変更しません。
またレポジトリの追加などは必要になった場合に都度行います。

KDUMP
KDUMPはカーネル(K)がクラッシュした時、その時点でのメモリの内容をファイルに出力(DUMP)する機能です。
本稿の使用目的はあくまでもローカル開発環境になります。
バックアップはvmのイメージをエクスポートすれば知識なく取れますし、OSがクラッシュした時のdumpファイルの解析が必要な場面はない(と言うより少ない)と思いますので必要であれば無効にしてください。
※必要最低限の設定に含めていませんが本稿では無効にします。

セキュリティポリシー(S)
必要であればURLを入力して頂くとして、ここでは変更しません。

インストール(続き)

ソフトウェアの選択とインストール先を変更したあたりから押下できる様になっていたかと思いますので、大体の設定が終わったらインストール開始(B)を押下します。

インストールが走りながら、ユーザー設定が行えます。
本稿では環境作りがメインですのでユーザーの作成(U)は行いませんが、ROOTパスワード(R)を設定するために押下します。

任意でrootパスワードを入力し、完了ボタンを押下します。

インストールが完了するまで暫く待ち、完了すると再起動ボタンが押下できる様になるため、押下します。

VM再起動後はログイン待ち状態になります。
この時点で無事仮想LINUXサーバのインストールは完了し、サーバ起動状態になっています。

早速ログインしてみましょう。
現時点でこのサーバはrootユーザーしかいません。
login:の箇所にroot、Password:の箇所にインストール時に入力したパスワードを入力(入力した文字は表示されませんがちゃんと入力されています)しエンターキーを押下します。
[root@localhost ~]# となれば無事ログイン完了です。

仮想サーバを終了するには内部(CeontOS側)からは以下のコマンドを入力

shutdonw -h now

するか、または外部(Virtual Box側)からは画面右上の×ボタンを押下すると

が表示される為、仮想マシンの電源オフ(P)を選択しOKボタンを押下すると終了する事ができます。

Virtual Boxの設定

ネットワーク

本稿の通りに作業を進めると、ネットワークの設定はアダプター1にNATが割り当てられており、それ以外の設定はありません。
このままでは以後の作業が面倒になるのでSSHクライアント(TeraTarmを想定)接続ができる様に設定を行いたいと思います。
サーバ側のネットワークアダプタ情報を表示するために、Virual Boxから仮想サーバにログインした状態で

ip addr

コマンドを使って確認します。

ひとまず1のloは置いておいて、2のenp0s3を確認します。
これがNAT接続されているアダプターでinetとしてIPアドレスの10.0.2.15が割り当てられています。
このIPアドレスを使用してteratarmから接続を行っても接続できません。

ネットワークの設定については全て解説するととてつもなく長くなるのでここでは凄く簡単に纏めますが、主に以下の3つがります。

NAT
ホスト(今回の場合はwindowsが接続しているネットワーク)のIPアドレスを共有(Virtual Box側は自動変換)して外部と通信する方法。
ホストOSの下にVirturl Boxがぶら下がっているイメージ。
その為、立ち上げているVirtual Box以外(teratermなどのSSHクライアントなど)からは容易に接続できない。

ブリッジ
ホストと同じネットワークに接続してVirtual Boxが直接外部と通信する方法。
セキュリティなど考えないでよいのであれあ一番手っ取り早い。

ホストオンリー
ホストOSとVirutual Boxでプライベートネットワークとして通信する方法。
Virtual Boxは外部と通信できない。

この度はセキュリティ的にも一般的に一番良いと言われている(思っている)NAT+ホストオンリーでネットワークの設定を行いたいと思います。
NATの設定はデフォルトで行われているため、ホストオンリーアダプターを追加します。

サーバを起動中の場合は終了してください。

小窓が表示されるので続いて

左メニューからネットワークを押下します。
右ペーンの上部、アダプター2を選択し、ネットワークアダプターを有効化にチェックを入れます。
割り当て項目欄にはホストオンリーアダプターを選択し、下部のOKボタンを押下してください。
次に再度仮想サーバを起動し、ログインの後に先ほどのコマンドでネットワークアダプター情報を表示してください。

2までしかなかったアダプターに3のenp0s8が追加され、IPアドレスに192.168.56.102(ここはお使いの環境で多少違います)が当たっているのが確認できます。
これでこのIPアドレスを使ってSSHクライアントから仮想サーバに接続する事ができます。
このIPアドレスの変更方法は別の機会にお知らせするとして、TeraTarmから接続してみましょう。

TeraTarmを立ち上げ、ホストに先ほどのIPアドレスを入力し、OKボタンを押下します。

初めてのホスト(IPアドレス)の場合はセキュリティ警告が出ますが、このホストをKnow Hostsリストに追加する(A)にチェックを入れて続行ボタンを押下します。

Virtual Boxでのログインと同じ様にユーザ名にroot、パスフレーズは自身で設定したものを入力し、OKボタンを押下します。
Virtual Boxと同じ様に [root@localhost ~]# と表示されログインされた状態となればログイン成功です。

CentOSの設定

と書きましたが、細かな設定は別の機会に纏めてお知らせするとして、ここではインストールパッケージのアップデートを行っておきます。
パッケージのアップデートではyum(ヤム)を使って行います。
yumはLinuxディストリビューションで言うところのパッケージ管理ソフトでCentOSではyamとrpmと言う2種類があり、簡単に言うと以下の通りになります。

yum
基本的に使うのはこちら。
rpmの機能に加え、自動アップデートやパッケージインストール時、依存関係を解消(関連パッケージを同時にインストール)してくれる。

rpm
パッケージ単体を扱うイメージ。
ダウンロードしたrpmパッケージ(.rpmファイル)をインストールする場合や、インストール済パッケージの検索などの時に使用する。

この度はOSインストール直後のインストールパッケージの全アップデートなので

yum -y update

コマンドを入力してエンターを押下します。
パッケージ管理ソフト(yum)を使って強制的(-y)にパッケージをアップデート(update)すると言うコマンドです。
-yについては強制的と書きましたが、このオプションが無い場合、更新および依存関係でインストールされるパッケージ一覧が表示され一旦問い合わせ(入力待ち)状態で止まります。
その場合yを入力する事で-yと同様にインストールが開始され、nを入力するとそこで処理が止まります。
パッケージをインストールする時、何がインストールされるか調べたり確認する必要がある場合は-yは不要です。

更新パッケージ(依存パッケージのインストールも含め)は結構な数あるためしばらくかかり最後に”完了しました!”と表示されると完了です。

kernel(カーネル)関連のパッケージも更新(またはインストール)される為、1度終了または再起動してください。
再起動は以下のコマンドで実行可能で、コマンド入力後は1度teratermの画面も閉じられます。

reboot

まとめ

本稿はここまでとなります。
ひとまずは環境作り優先の為、細かな箇所は端折っていますが端折った部分などは随時纏めてお知らせできればと思います。
逆に、これくらいで仮想サーバ自体は用意できるのか、全然難しくないなと思って貰えると嬉しいです。

参考サイト