CentOS 7 でサーバー構築（インストール編）

[MyContent1]:https://qiita.com/sigenyan/items/7aeceb8338bbecd87bb5
[MyContent2]:https://qiita.com/sigenyan/items/4b86f694cc3c6171d0d0
[MyContent3]:https://qiita.com/sigenyan/items/1e52b99fca0320951159
[MyContent4]:https://qiita.com/sigenyan/items/f975ae49941c64af4173

[OnamaeVPS]:https://www.onamae.com/server/vps/
[CentOS]:https://www.centos.org
[CentOS-DL]:https://www.centos.org/download
[WinSCP]:https://winscp.net


<font color="DeepPink">(2020年8月改変)
本投稿は [CentOS 7.8 (2003)][CentOS] で更新しました。
</font>

##はじめに

[CentOS 7][CentOS] を [お名前.com VPS][OnamaeVPS] にインストールしたときの手順をご紹介します。
VPSプランは２ギガメモリプランです。
１２ヶ月まとめ払いならば１ギガメモリプランとさほど金額差はありませんのでおすすめです。
記事では [CentOS 7][CentOS] インストールから各種さまざまなサーバーアプリケーションのセットアップまでを複数に渡ってご紹介したいと思います。

+ CentOS 7 でサーバー構築（インストール編）
+ [CentOS 7 でサーバー構築（論理ボリュームマウント編）][MyContent2]
+ [CentOS 7 でサーバー構築（ユーザー作成～SSH開通編）][MyContent3]
+ [CentOS 7 でサーバー構築（パッケージ管理編）][MyContent4]

さて、今回の本題に入りたいと思います。
[お名前.com VPS][OnamaeVPS] は、初期セットアップでCentOSがインストール済ですが、どのバージョンがインストールされているかは恐らく契約した時期によって違うかと思います。
現在（2020年8月）では、ゲストOSとして CentOS7.7 (1908) がインストール可能ですが、勉強のために本家サイトから 7.8 のISOイメージをダウンロードしてインストールする手順を踏むことにします。

##[CentOS 7][CentOS] ダウンロード

ブラウザーで CentOS 本家サイト ([https://www.centos.org][CentOS]) を開きましょう。
2020年8月時点では下記のようなサイトになっていました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224137/88d19c15-2139-6e72-97ce-e9853c16b910.png)

`CentOS Linux` ボタンをクリックしてください。
下記の画面が表示されます。2019年にリリースされた8系がありますが、今回は7系から目的のISOイメージを探します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224137/3f49bea2-9a3a-ddbe-e042-30af8a4dfcd9.png)

`7 (2003)` のタブをクリックしてください。
`ISO` 列にある `x86_64` リンクをクリックすると、ダウンロードするサーバーの一覧が表示されます。
どのISOイメージが必要であるかはインストールするサーバーによって違いますので、環境に合わせて選択してください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224137/fdb60bcb-842e-b6ea-531a-154c976b5fff.png)

ダウンロードするサーバーの一覧から適当なサーバーを選択してください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224137/bc6fc64d-83f0-9fc0-c314-2acfd6024dd2.png)

ファイルの一覧が表示されますので、適切なファイルを選択してダウンロードしてください。
通常版は `CentOS-7-x86_64-DVD-2003.iso` で良いと思います。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224137/8b3abef0-7261-da70-3348-b6ca06ad00cc.png)

#[CentOS 7][CentOS] ISOファイルアップロード

[お名前.com VPS][OnamaeVPS] コントロールパネルにログインし、さきほどダウンロードしたISOファイルをアップロードします。
[お名前.com VPS][OnamaeVPS] コントロールパネルのコンソール画面下の方に「ISOファイルアップロード(SFTP)」と書かれた接続先情報（下図）がありますので、この情報で SFTP 接続し、ISOファイルをアップロードします。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/224137/0e31536f-a7b4-743f-9a02-34081c0bfa6b.png)

「ISOファイルアップロード(SFTP)」接続先情報から「接続先」と「ユーザ名」をメモしておき、「SSH Key」は「SSH Private Key」リンクからダウンロードしておきましょう。SFTP 接続で鍵認証する際に必要となります。

「ISOファイルアップロード方法」というリンク先に詳しく説明がされていますので、ここでは詳しく説明しません。
SFTP 接続ができたら`images`というディレクトリがありますので、その中にISOファイルを転送してください。

##[お名前.com VPS][OnamaeVPS] ディスク構成変更
[お名前.com VPS][OnamaeVPS] ２ギガメモリプランでは、ストレージが２００ギガあります。デフォルトでは２０／１８０Ｇ構成になっていますが、ＯＳ領域を６０Ｇに変更したいと思います。残りの１４０Ｇは、次の記事で記載しますが、`/home` にマウントするための領域として活用します。

[お名前.com VPS][OnamaeVPS] コントロールパネルの「VM設定」タブを選択します。
３段目に「ディスク構成変更」がありますので、「カスタム」を選択、スライダーバーで６０／１４０Ｇに変更後、「ディスク構成の変更によって縮小するディスクは、初期化（全データ消去）されます。取得済みのスナップショットは削除されます。」チェックボックスにチェックし、「決定」ボタンを押下します。
「ディスク構成を変更すると既存データはすべて消滅しますよ～」という警告ダイアログが出ますが、「はい」を選択して変更してください。（※私は初回インストールなので迷わず実行しましたが、お手持ちの環境により自己責任でご判断ください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224137/f6c2b339-7552-5ffc-2649-9286872ae208.png)

↓ ３段目に設定があります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224137/2cb26a1e-93f6-2c30-efb4-2c103f66afa2.png)

※ディスク構成の変更は VPS が起動中だとできませんので、[お名前.com VPS][OnamaeVPS] コントロールパネルの「シャットダウンボタン」を押下し、停止させてから実施してください。

##[CentOS 7][CentOS] インストール
本題の [CentOS 7][CentOS] インストールに取り掛かります。

[お名前.com VPS][OnamaeVPS] コントロールパネルの「OS再インストール」タブを選択します。
「OS」にアップロード済のISOファイルを選択します。（リストの最後に出ているはずです。）
「確認」ボタンを押下してください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224137/727d368b-9266-d8d0-1caa-256effdf39d5.png)

内容確認画面を確認のうえ、「実行」ボタンを押下してください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224137/7b184739-e16e-27a2-6b10-320931e1c2cc.png)

以下のとおり表示されましたら、OS再インストールの準備完了です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224137/74f6b84d-cdf5-bd6c-0095-07b5b9a1fd64.png)

「コンソール画面」タブを選択してください。
VPSの仮想ドライブには先程挿入したISOイメージファイルが表示されています。
「起動」ボタンを押下して、VPSを起動してください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224137/7f98ae14-2d19-476b-d970-727a91bbabfc.png)

VPS起動後にコンソール画面の「クリックして開始」領域をクリックすると、コンソール画面が表示されます。
または、右上の四角アイコンをクリックすると、別画面でコンソールが表示されます。

インストーラメニュー画面が表示されますので「Install CentOS 7」を選択します。（↑↓キー操作でEnterを押下して決定します。）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224137/d4ad5112-c35b-cf74-acd4-f984dd5d5a6d.png)

言語選択の画面が表示されるので、自身に適切な言語を選択してください。
ここでは「日本語」を選択しています。
「続行」を押下して次に進めます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224137/b0c2ca2d-0e5b-26c3-1336-ee09596866f2.png)

インストールの概要では、「インストール先」の項目のみ「！」マークが出ていますので、ここを設定する必要があります。
それ以外の項目はそのままで良いので、「インストール先」を押下してください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224137/78723bf7-8aee-a76a-dc7f-6a0617775dbb.png)

インストール先のパーティションを選択します。
６０Ｇのパーティションを選択してください。（チェックが付いている状態であればOKです。）
画面下の方にある「追加の空き領域を利用できるようにする」にチェックをつけておいてください。
以前にインストール済のOSが存在している場合、空き領域が減っていますので、このチェックを入れておくことで完了後に表示されるデバイス領域の確保ダイアログで不要な領域を削除することができます。
「完了」ボタンを押下してください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224137/c11213bc-253d-d4c5-e4e9-46e995324406.png)

デバイス領域の確保ダイアログが表示されます。
すでに領域が使用されている場合は６０Ｇ領域の下に確保済のパーティションがツリー形式で表示されます。この画像では未使用なので、６０Ｇ領域の下は「空き領域」のみの表示となります。
すべて空き領域となっている場合はこの操作は必要ありませんが、説明のために一度削除してみます。
６０Ｇの領域を選択した状態で「すべて削除」を押下します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224137/1eecab29-111c-2097-dcec-2225d3bea739.png)

↓ アクション項目がすべて「保存」から「削除」に変わりますので、「領域の再利用」ボタンを押下してください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224137/3663a2cc-2f3c-c99b-2769-2668f83553bb.png)

インストールの概要に戻りますが、さきほど表示されていた「！」は消えています。
「インストールの開始」ボタンを押下してください。インストールが始まります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224137/18cb8205-5ef4-0923-a6d3-82a58d21e9aa.png)

インストールがバックグラウンドで開始され、ユーザーの設定画面が表示されます。
rootパスワードを設定します。「ROOTパスワード」を押下してください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224137/e6640ef3-410f-3332-f3d8-96f921977b1a.png)

rootパスワードを入力し、「完了」ボタンを押下してください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224137/759cdbf9-55ac-f520-49e9-15b55d17fd19.png)

ユーザーの作成はここでは行いません。イントール後に１４０Ｇのストレージを `/home` にマウントしたあとで作成します。
「CentOSは正しくインストールされましたが、設定が必要な項目が残っています。（以下省略）」といった表示が出ていますが、気にせずにそのまま「設定完了」を押下します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224137/2d1b5db3-4277-37b1-2845-1024401436cb.png)

インストールがすべて完了すると、「再起動」ボタンが表示されますので、押下してください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224137/190dd580-4970-0500-d946-a9e4374a8ace.png)

OS が再起動され、ログインプロンプトが表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224137/de7b0971-5f99-3b4d-6592-5fd8c38c8bfc.png)

[CentOS 7][CentOS] のインストールはこれで完了なので、[お名前.com VPS][OnamaeVPS] コントロールパネルの「取り出す」ボタンを押下し、VPSの仮想ドライブに挿入された [CentOS 7][CentOS] ISOファイルを取り出してください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224137/56db4cc3-c283-2e49-2464-dfbcb7835035.png)

## シリアルコンソールの設定

[お名前.com VPS][OnamaeVPS] は、ブラウザー越しにサーバーをメンテナンスできるようにコンソール画面がコントロールパネルに備わっています。
しかし、ブラウザーのコンソール画面では文字列のコピー＆ペースト等ができず、このまま作業を続けていくには不便です。
なので、シリアルコンソールを設定することにします。
[お名前.com VPS][OnamaeVPS]は、ssh越しにシリアルコンソールに接続するための機能を提供していますので、この機能を利用できるようにします。


`root` ユーザーでログインします。
`/etc/default/grub` を変更します。下記のとおりバックアップを取ってから作業を行います。

```
[root@localhost ~]# cp /etc/default/grub /etc/default/grub.org
[root@localhost ~]# vi /etc/default/grub
```

```config:/etc/default/grub（変更前）
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet"
GRUB_DISABLE_RECOVERY="true"
```
```config:/etc/default/grub（変更後）
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet console=tty0 console=ttyS0,115200"
GRUB_DISABLE_RECOVERY="true"
GRUB_ENABLE_BLSCFG=true
GRUB_TERMINAL="console serial"
GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"
```

下記のコマンドで設定を反映します。

```
[root@localhost ~]# /usr/sbin/grub2-mkconfig -o /boot/grub2/grub.cfg
```

特にエラーがでなければOKです。
シリアルコンソールの設定自体はこれでOKで、`reboot` してしまえば反映されますが、画面サイズがデフォルトの `24 x 80` となりますので、先に設定を変更しておきます。
シリアルコンソール接続するのは `root` のみで行い想定として、`root` の `.bash_profile` を変更します。

```
[root@localhost ~]# vi /root/.bash_profile
```

最後の行に下記の１行を追加してください。
行数(rows)と文字数(columns)を設定するのみです。作業する環境に合わせて適宜調整すればよいかと思います。

```config:/root/.bash_profile
stty rows 40 columns 130
```

これで設定完了です。
`reboot` します。

再起動が完了した後、シリアルコンソール接続できるようになります。
`お名前.com VPS` の場合、SSHクライアントを利用してSSH越しにシリアルコンソール接続が可能となります。
ネットワークの設定ミスなどでサーバーに直接SSH接続ができないようになったケースにおいては、シリアルコンソール接続がサーバーに接続可能な手段となります。
一般ユーザーの設定と、SSH接続の設定が完了するまでは、シリアルコンソール接続で作業を進めます。

## SELinux の無効化

`SELinux` は無効化してしまいます。賛否はあるかもしれませんが、個人的に面倒な設定に巻き込まれるより割り切って無効化してしまったほうが良いと考えています。

下記のコマンドで今の状態を確認します。

```
[root@localhost ~]# getenforce
Enforcing
```

`Enforcing` と出ていますので、`SELinux` は有効です。

`SELinux` の設定ファイル `/etc/selinux/config` を変更します。

```
[root@localhost ~]# vi /etc/selinux/config
```

```config:/etc/selinux/config（変更前）
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=enforcing
# SELINUXTYPE= can take one of these three values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected.
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted
```

```config:/etc/selinux/config（変更後）
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these three values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected.
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted
```

変更が完了したら、`reboot` します。
`reboot` 後にログインし、`getenforce` コマンドで確認すると、下記のとおり `Disabled` となっています。

```
[root@localhost ~]# getenforce
Disabled
```

##さいごに
[CentOS 7][CentOS] のインストール作業をご紹介しました。
次の記事では、１４０Ｇのストレージに論理ボリュームを作成し、`/home` にマウントする方法についてご紹介したいと思います。