【勝手に毎日投稿祭り】サーバのキッティング例を紹介します

※1週間限定で、「勝手に毎日投稿祭り」と題して毎日投稿しています。
ぜひぜひ、皆さんも便乗して下さい。

###サーバのキッティングってどんな手順が必要かイメージつきますか？
[![Image from Gyazo](https://i.gyazo.com/6482c21159dd11cbd4cca295b80f37e8.png)](https://gyazo.com/6482c21159dd11cbd4cca295b80f37e8)

開発をする上で、必要になるのが開発をするためのサーバの用意です。私の現場では、サーバのキッティングを行う機会も多々あった為、キッティング例を作ってみました。
内容としては、ローカル開発環境で、OSインストールから、別端末よりアクセスして開発ができる状態にするまでの手順例を紹介します。

###1．各種設定
OSは、Red Hat Enterprise Linux7.3の想定で行う。
インストール用DVDを読み込み、言語設定完了後、次の画面が表示されたら各設定を行う。
![test.PNG](https://qiita-image-store.s3.amazonaws.com/0/235933/908dc435-38f3-0c42-217f-a5844c699ac0.png)

① 日付と時刻（DATE ＆ TIME）
現在の日付と時刻に合わせる。
タイムゾーン：アジア/東京

② キーボードの設定（KEYBOARD）
適切な言語に設定する。（日本語推奨）

③ 言語サポート（LANGUAGE SUPPORT）
適切な言語に設定する。（日本語推奨）

④ ソフトウェアの選択（INSTALLATION SOURCE）
※こちらは、環境によってつかいたいものを設定。以下は、一例として。

ベース環境：サーバ（GUI使用）
アドオン：右の四角枠から必要なアドオンにチェックを付ける
FTPサーバー
Javaプラットフォーム
大規模
ネットワークファイル
パフォーマンスツール
互換性
開発ツール
セキュリティ

⑤ インストール先（INSTALLATION DESTINATION）
インストールする領域を選択し、完了をクリック。
※再インストールの場合は、ウィンドウが表示されたら「領域の再利用」をクリックする。
「すべて削除」を選択し、「領域の再利用」をクリックする。

⑥ ネットワークとホスト名（NETWORK ＆ HOSTNAME）
ここではホスト名のみ設定を行う。

すべての設定を終了したら、「インストールの開始」ボタンをクリックする。
インストール中にrootのパスワードと一般ユーザを設定する。インストール終了後、DVDを取り出し、再起動を行う。

###2．初期セットアップ
再起動後に、ライセンス画面が表示されるので「ライセンス契約に同意します。」にチェックを入れ、設定の完了をクリックする。

###3．環境整備
以降の操作はコマンドラインで実行する。GUI起動している場合はメニューのアプリケーションからターミナルを起動するか、「Ctrl」+「Alt」+「F2」を同時に入力してCUI画面へ切り替える。

####3-1．FTP接続設定
次のコマンドを実行し、vsftpdがインストールされていることを確認する。

```
$ rpm -qa | grep ftp
```

パッケージ名が出力されたらインストール済み。インストールされていない場合は、後述するパッケージインストールの手順を参照してインストールする。

続いて設定ファイルを編集する。rootユーザになり、vsftpd.confを開く。

```
$ su –
パスワード：（パスワードを入力する）
最終ログイン： *****************
[root@*~]#  vi /etc/vsftpd/vsftpd.conf
```

ファイル内容が表示されるので、次の内容に従ってファイル内の該当箇所を編集する。文頭に「#」がある場合は「#」を外して有効にする

anonymous_enable=NO　　　　･･･匿名ユーザのログインを許可しない
ascii_upload_enable=YES　　･･･ASCIIモードでのアップロードを許可
ascii_download_enable=YES　･･･ASCIIモードでのダウンロードを許可
use_localtime=YES　　　　　･･･ﾌｧｲﾙのﾀｲﾑｽﾀﾝﾌﾟ表示をﾛｰｶﾙﾀｲﾑで行う

編集を終えたら保存してエディタを終了する。
コマンドライン入力画面に戻り、vsftpを有効にする

```
[root@*~]# systemctl start vsftpd.service　･･･FTPサービス開始
[root@*~]# systemctl enable vsftpd.service ･･･FTPｻｰﾋﾞｽ自動起動ON
```

####3-2．ファイヤウォールの無効化
ファイヤウォールの状態を確認する

```
[root@*~]#  systemctl status firewalld.service
```

有効の場合は次のコマンドを実行して無効化する

```
[root@*~]# systemctl stop firewalld.service　　 ･･･FWｻｰﾋﾞｽ停止
[root@*~]# systemctl disable firewalld.service　･･･FW自動起動OFF
```

もう一度statusコマンドを入力し、無効になっていることを確認する。

####3-3．ネットワーク設定
rootユーザで以下のファイルを編集し、ネットワーク設定を行う

```
[root@*~]# vi /etc/sysconfig/network-scripts/ifcfg-enXXXXX
```

次の内容に従ってファイル内の該当箇所を編集する

BOOTPROTO=none
ONBOOT=yes
※以降は、設定がないため追加して、環境に合わせてIPアドレスを指定する
IPADDR=192.168.10.X
NETMASK=255.255.255.0
NETWORK=192.168.10.X
GATEWAY=192.168.10.XXX

編集を終えたら保存してエディタを終了する

社内ネットワークのLANケーブルが接続されていることを確認し、NetworkManagerを再起動し、ネットワーク設定の反映を確認

```
[root@*~]# systemctl stop NetworkManager
[root@*~]# systemctl start NetworkManager
[root@*~]# ip addr
```

ip addrコマンドで、該当ネットワークのi netにIPアドレスが表示されていることを確認。
※以降は、TeraTermで社内ネットワーク内の端末よりアクセス出来る。

###4．パッケージインストール
マシンを起動し、CUIでログインする。(TeraTermからでも可)
サーバのCD/DVDドライブにRHEL7.3のISOファイルが書き込まれたメディアを挿入する。(ドライブにメディアが挿入されたまま起動及び再起動を行わないこと）
rootユーザにて次のコマンドを実行し、メディアをマウントする。

```
[root@*~]# mkdir /media/cdrom
[root@*~]# mount /dev/cdrom /media/cdrom
```

次のコマンドでマウントしたDVDの内容を確認する。

```
[root@*~]# cd /media/cdrom
[root@*~]# ls
EFI   GPL     Packages                 RPM-GPG-KEY-redhat-release …
EULA  LiveOS  RPM-GPG-KEY-redhat-beta  TRANS.TBL                  …
```

Packagesを含めたファイルやディレクトリが表示されたらマウント成功。次にCDの内容をコピーする。

```
[root@*~]# mkdir /root/work
[root@*~]# cp -rp /media/cdrom/* /root/work/.
```

yumでパッケージのインストールが出来るように以下のyumレポジトリを設定する。

```
[root@*~]# vi /etc/yum.repos.d/dvd.repo
```

```/etc/yum.repos.d/dvd.repo
[dvd] 
name=dvd
baseurl=file:///root/work/
gpgcheck=1
enabled=1
gpgkey=file:///root/work/RPM-GPG-KEY-redhat-release
```

これにより、以降は、yumコマンドでパッケージのインストールが可能。


###5．ホスト名の定義追加

```
[root@*~]# vi /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4 TST00010
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
~
```

###6.Selinuxの無効化
SELINUXの設定値をdisabledに変更

```
[root@*~]# vi /etc/sysconfig/selinux
# 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 three two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected.
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted
```

###7.ファイアウォールの無効化

```
[root@*~]# systemctl　disable firewalld
[root@*~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:firewalld(1)
[root@*~]#
```

その他は用途により、別途手順があると思いますが、今回紹介したあたりを覚えとけば、それぞれの端末からアクセスでき、インストールもしやすい状態が作れています。

以上。