WindowsにVagrantでCentOS7のセットアップ

# Vagrantのセットアップ

ここを参考に作業
[Windows上にVirtualBox+VagrantでCentOS環境構築](https://qiita.com/TakashiOshikawa/items/d2fb48d59e9e316af9a2)

## VirtualBoxとVagrantのインストール
https://www.vagrantup.com/downloads.html
https://www.virtualbox.org/wiki/Downloads

## VirtualBoxにCentOS boxファイルを登録する
http://www.vagrantbox.es/
※↑からインストールしたいOSを選択

コマンド

```
vagrant box add VM名 boxファイルURL
```

```
vagrant box add centos7-2 https://github.com/CommanderK5/packer-centos-template/releases/download/0.7.2/vagrant-centos-7.2.box
```
※ダウンロードにすごく時間かかる

確認

```
vagrant box list
```

centos7-2と表示されればOK

## VagrantFileの作成・編集
コマンド 「vagrant init box名」

```
vagrant init centos7-2
```
できたvagrantFileを開き、以下をコメントから有効にする

```
// Windowsから見ることの出来るIPを指定
config.vm.network "private_network", ip: "192.168.33.10"

// GUIモードの設定をONにする
config.vm.provider "virtualbox" do |vb|

  # Display the VirtualBox GUI when booting the machine

  vb.gui = true

end
```
## (必要に応じて）ホストOSとファイルを共有する

vagrantFileを編集する

```
# argument is a set of non-required options.
config.vm.synced_folder "./share", "/var/share"
```
./shareがホストOS側、/var/shareがゲストOS側


## (必要に応じて）HDDの容量を拡張する

初期設定だと4GBしかない

参考：[Vagratfileに一行書くだけでVMのディスク容量を増やす方法](https://qiita.com/yut_h1979/items/c84c490053877beee5c1)

上記手順だけだとまだハード的に接続されただけで、実際のボリュームの拡張作業が必要
以下

https://orebibou.com/2016/10/%E4%BB%AE%E6%83%B3%E3%83%9E%E3%82%B7%E3%83%B3centos-7%E3%81%A7%E3%83%87%E3%82%A3%E3%82%B9%E3%82%AF%E6%8B%A1%E5%BC%B5%E3%82%92%E8%A1%8C%E3%81%A3%E3%81%9F%E3%81%A8%E3%81%8D%E3%81%AElvm%E6%8B%A1/



## (必要に応じて）同じLANネットワーク内から参照できるようにする
vagrantfileを編集

以下のコメントを外し、有効化。IPを固定にしたい場合は

```
# dhcpでIPとるなら
config.vm.network "public_network""
# 固定IPにしたいなら
config.vm.network "public_network", ip: "192.168.11.28"
```

## VM立ち上げ
vagrantfileを作りたいディレクトリで以下コマンド(この時はD:\vagrant\centos7-2)

```
vagrant up
```

起動したらlogin/passwordともにvagrantと入力すればログイン出来る
sshクライアントから入りたい場合はvagrant@192.168.33.10

## OSパッケージの最新化
Windows Update的なもの、必ずやること
(FireWalldの有効化とかに必要)

```
sudo yum -y update
```

## firewallの有効化
起動している確認(ここまでの手順だと多分してない)

```
[vagrant@localhost opt]$ systemctl status firewalld
firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: inactive (dead)
```

起動する

```
sudo systemctl start firewalld
```

httpdとsshを許可(sshはデフォルトで入ってると思う)

```
[root@localhost ~]# firewall-cmd --add-service=http --permanent　#httpを許可
success
[root@localhost ~]# firewall-cmd --add-service=ssh --permanent　#sshを許可
success
[root@localhost ~]# firewall-cmd --reload #再読み込み
```

## 時刻合わせ
タイムゾーンをJSTにする

```
[vagrant@localhost ~]$ date
Wed 11 Apr 01:10:07 BST 2018
```
BSTになってるのでJSTにする

```
[vagrant@localhost ~]$ sudo timedatectl set-timezone Asia/Tokyo
```

```
[vagrant@localhost ~]$ date
Wed 11 Apr 09:10:56 JST 2018
```

 ntpを使って他サーバーに問い合わせて時刻を自動で同期するようにする

```
 sudo yum -y install ntp
```
nict(日本の標準時サーバー的なもの)から正確な時刻を取得

```
[vagrant@localhost ~]$ sudo ntpdate ntp.nict.jp
11 Apr 01:05:14 ntpdate[7161]: step time server 133.243.238.244 offset 2.686926 sec
```

ntpdデーモンを起動して、自動的に時刻同期させる

```
sudo vi /etc/ntpd.conf
```

```
server 0.centos.pool.ntp.org
server 1.centos.pool.ntp.org
server 2.centos.pool.ntp.org
```
↑を↓に修正

```
server -4 ntp.nict.jp
server -4 ntp1.jst.mfeed.ad.jp
server -4 ntp2.jst.mfeed.ad.jp
server -4 ntp3.jst.mfeed.ad.jp
```

サービス起動

```
[vagrant@localhost ~]$ sudo systemctl start ntpd
```

起動していれば以下でステータスを確認できる

```
[vagrant@localhost ~]$ ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*ntp-b3.nict.go. .NICT.           1 u   29   64  177    7.396  191.571 125.662
+ntp1.jst.mfeed. 133.243.236.17   2 u   15   64  177    5.654  198.674 129.149
+ntp2.jst.mfeed. 133.243.236.17   2 u   29   64  177    5.188  192.696 125.004
+ntp3.jst.mfeed. 133.243.236.17   2 u   27   64  177    5.423  191.855 124.789
```

自動起動設定

```
[vagrant@localhost ~]$ sudo systemctl enable ntpd
Created symlink from /etc/systemd/system/multi-user.target.wants/ntpd.service to /usr/lib/systemd/system/ntpd.service.
```

## HaProxyインストール（いらんかも）
```
sudo yum -y install haproxy
```

## HaProxy サービス自動起動設定（いらんかも）
```
sudo chkconfig haproxy on
```

## サービス自動起動設定の確認
```
systemctl list-unit-files --type=service | grep haproxy
```
実行結果

```
[vagrant@localhost ~]$ systemctl list-unit-files --type=service | grep haproxy
haproxy.service                             enabled
```

## Mysqlをインストールする
こちらがとてもわかりやすかったです。

CentOS 7 に MySQL 5.7 を yum インストールして初期設定までやってみた
https://enomotodev.hatenablog.com/entry/2016/09/01/225200

開発用にパスワードなしでログインできるようにするには/etc/my.cnfに設定を加えます

```sh:my.cnf
[mysqld]
skip-grant-tables
```

再起動

```
sudo systemctl restart mysqld.service
```
## VM停止
vagrant halt  ※変更した内容が保持して終了  
vagrant destroy ※変更した内容を破棄して終了