[CentOS7:初心者向け]①仮想マシンを作る

##▽ はじめに
サーバのお勉強をするにしても可能な限りタダで出来る方がハードル低いよね、という事で"CentOSサーバをたてる"のが基本的だけど、商用で作業をする際にも生きてくる大事なことなのでメモ。

まず、たてるCentOSサーバの環境情報は
サーバ：Oracle VM VirtualBoxの仮想マシン
OS：CentOS 7.5
とする。

そして、手順全体の工程は大まかに3つ。
〇準備
　CentOSインストーラダウンロード
〇サーバ構築
　仮想マシン作成 ← **全部ここに載せると長いので、本記事ではここまで！**
　OSインストール
〇初期設定
　NW設定
　SW最新化
　SSH接続許可設定

##▽ 準備
####1.CentOSインストーラのダウンロード
CentOSのインストールイメージはここ↓からダウンロードできます。(最小限のSWインストールにしたいのでMinimal版※1)
"The following mirrors in your region should have the ISO images available:"と書いてある直下のURL群の中からお好みのものをクリックすればダウンロードが始まります。(私は山形大学とか理研によくお世話になっている)

〇CentOSインストールイメージ ダウンロードサイト
http://isoredirect.centos.org/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1804.iso
<img src="https://qiita-image-store.s3.amazonaws.com/0/281165/ca71e66b-995b-9e09-3cd3-5ad3e609dee4.png" width=40%>

##▽ サーバ構築
####1.仮想マシンの作成
　①Oracle VM VirtualBoxを起動し、トップ画面で「新規」ボタンを押す。
<img src="https://qiita-image-store.s3.amazonaws.com/0/281165/8729d198-aedd-1fd2-c67e-3a32d655a47d.png" width=40%>
②「仮想マシンの作成」画面で下記項目を入力/指定して「作成」を押す。
　※最初は「ガイド付きモード」になっているので「エキスパートモード」ボタンをまず押す。
　　名前：**svr_test**
　　タイプ：**Linux**
　　バージョン：**Red Hat(64-bit)**
　　メモリーサイズ：**1,024MB(デフォルト)**
　　ハードディスク：**仮想ハードディスクを作成する(デフォルト)**
<img src="https://qiita-image-store.s3.amazonaws.com/0/281165/e8521080-b679-268e-4767-36901e670bca.png" width=40%>
③「仮想ハードディスクの作成」画面で下記項目を入力して「作成」を押す。
　　ファイルの場所：**svr_test(デフォルト)**
　　ファイルサイズ：**20GB※デフォルトの8GBは心許ないので20GBにしてみる。**
　　ハードディスクのファイルタイプ：**VMDK(Virtual Machine Disk)※ESXi形式が好きなので。**
　　物理ハードディスクにあるストレージ：**可変サイズ※固定サイズにすると、指定したサイズのハードディスクファイルを最初に確保(作成?)する挙動をするので仮想マシン構築処理に凄く時間が掛かる。**
<img src="https://qiita-image-store.s3.amazonaws.com/0/281165/8bf896b9-c320-488c-394d-bec4234a592b.png" width=40%>

####2.仮想マシン初期設定：ネットワーク(必要に応じて他項目も設定変更してみれば良いと思う)
①赤い帽子アイコンの「svr_test」を選択し、「設定」を押す。
<img src="https://qiita-image-store.s3.amazonaws.com/0/281165/6e0026f1-f49c-0c52-1cc7-c63e68d28116.png" width=40%>
②「設定」画面左エリアの一覧から「ネットワーク」を選択し、右エリアの「アダプタ1」タブをクリックし、「割り当て」を「NAT」※2にする。
③「アダプタ1」タブの「高度」を選択し、「アダプタータイプ」を「準仮想化ネットワーク(virtio-net)」※3を選択して「OK」を選択する。(デフォルトはIntel PRO/1000 MT Desktop(82540EMになっているはず)
<img src="https://qiita-image-store.s3.amazonaws.com/0/281165/7eec7438-c01a-ed10-2799-76861e630504.png" width=40%>
④VirtualBox画面右エリアの「ネットワーク」の項目が「アダプター1:準仮想化ネットワーク(NAT)」となっていれば、"仮想マシンを作る"工程は完了。
<img src="https://qiita-image-store.s3.amazonaws.com/0/281165/499612a2-7c84-6750-dffe-2e44492d021f.png" width=40%>

**～「[②CentOSをインストールする](https://qiita.com/spurheads/items/b5363d3771b4d3f1834b)」に続く**

##▽ 注釈
####※1：Minimal版：
サーバを作るにあたり、仕事で色んな現場を経て形成された私の基本的な考え方は下記の2つ。
**・必要最小限のソフトウェア(以下、SW)のみ導入された状態にしたい。**
　理由①：不要なSWにセキュリティホールが見つかった時に是正対応するのが嫌。
　理由②：そもそも使っていないのにサーバのリソース(CPU/メモリ/ディスク)を消費するのが許せない。

**・SWを追加した後も、使ったインストーラは残しておきたい。**
　理由①：インストールしたSWがその後ある程度期間が経って、障害で壊れちゃった時に
　　　　　インストール当時のバージョンのSWにリストアしたくても手に入らない場合があるから。
　　　　　(関連SWのバージョン上げちゃうと動かなくなるとかサポートしないとか謳ってる
　　　　　レガシーアプリケーションってあるじゃないですか...)
　理由②：検証環境と本番環境のSWバージョンを全く一緒にしたい時とかに
　　　　　検証環境はインターネットの接続ルール緩いけど、本番環境は
　　　　　インターネット接続の接続ルールが厳しすぎてyumが使えない、という場合があるから。
　　　　　(仮想マシンのエクスポート/インポートすれば？という声は聞こえません)

よって本手順での個人的ポイント(趣味ともいうかな)は下記2つです。
**①CentOSインストール時のSWインストールオプションは「最小限のインストール」にする。**
**②yumコマンドでインターネットからサーバのローカルにダウンロードしてから、別途rpmコマンドでインストールする。**←これは今回の記事には関係ないが、次工程のCentOSインストール以後で関わってくる。

####※2：NATとは：
Oracle VM VirtualBoxをインストールした端末のIPアドレスと仮想マシンのIPアドレスを変換してくれる設定。仮想マシンのIPアドレスと他の端末のIPアドレスが競合してしまうのを避けたいので、NATにする。

####※3：準仮想化ネットワークとは：
仮想マシンに最適化されたネットワークアダプタの規格(としか言えない)。別にデフォルトに指定されているIntel製のネットワークアダプタと同じ通信挙動を求めているとかじゃなければ、大概これを指定する事になるはず。VMware ESXiとかであればVMXNETとかがほぼ同義になる。