そうだvirtualboxを使ってみよう


まあ[MAMP](http://www.mamp.info/en/index.html)とか[XAMPP](http://www.apachefriends.org/jp/xampp-windows.html)とかでもいいんですがlinux側(centos)もっと触りたーいとか
MACの環境はクリーンなほうがいい〜とかあるわけで自分は後者でMACにはxcodeとvim拡張ぐらいしかいれないクリーンな環境を保持したいので
書いてみました。
homebrewでもいいんですがそれを見つけるためにまたググるのが億劫で。。。


環境 macosx10.8(ホストOS) centos6.3 x86(ゲストOS)

* 多分windowsでもほぼ同様にいけると思います。
* ホストOSが32bitのバージョンの場合は落とすisoは32bit版を落としてください。

## 参考にしたサイト

* [仮想環境VirtualBoxでのネットワークの設定](http://blog.asial.co.jp/634)
* [[virtualbox][network][tips] VirtualBox を利用する際のネットワーク設定の話](http://d.hatena.ne.jp/Yudoufu/20100117/1263677767)
* [VirtualBox for OSX に Linux(CentOS6.3)をインストール ](http://arpanet617.blog.fc2.com/blog-entry-33.html)



##利便性について
virtualboxは仮想環境のエキスポートで他のメンバーに自分の環境を渡すことができます。
設定といえば共有フォルダの設定変更くらいです。
ネットワークの再設定とかも必要なしです。

## 用語の説明

自分は正直linux詳しくないのでまず用語がわからないので苦労した
よくググると出てくるキーワード

#### ホストOS
- - -
これは自分の使っているマシンのことを指します

#### ゲストOS
- - -
入れたいOSのことです。今回はcentOSを入れる予定なのでcentOSを指します。


## virtualboxの入手
まずはここから
[Download VirtualBox](https://www.virtualbox.org/wiki/Downloads)

MACの場合はforOSX、winの場合はforwindows hostsを落としてきてください。


## OSディスクの入手

ここから入手しましょ

* (centos6.3 64bit版)[ミラーサイト](http://ftp.iij.ad.jp/pub/linux/centos/6.3/isos/x86_64/CentOS-6.3-x86_64-bin-DVD1.iso)
* (centos6.3 32bit版)[ミラーサイト](http://ftp.iij.ad.jp/pub/linux/centos/6.3/isos/i386/CentOS-6.3-i386-bin-DVD1.iso)

※今回は64bit版で話しを進めます

## virtualboxネットワーク設定について

[[virtualbox][network][tips] VirtualBox を利用する際のネットワーク設定の話](http://d.hatena.ne.jp/Yudoufu/20100117/1263677767)で詳しいお話が載っています。

以下引用 [[virtualbox][network][tips] VirtualBox を利用する際のネットワーク設定の話](http://d.hatena.ne.jp/Yudoufu/20100117/1263677767)

>仮想マシンをローカルマシン上で使用する場合、大体の人が実現したいネットワークの構成としては、
>GuestOSは外部ネットワークに対してアクセスできてほしい。
>GuestOSは基本的に外部ネットワークからは遮断しておきたい。
>でも、HostOSに限り、外部からアクセスできてほしい。
>という構成かな、と勝手に思っていたりする。

という構成にしたので
NAT + Host-Onlyの設定にします。

ネットワークの設定については[仮想環境VirtualBoxでのネットワークの設定](http://blog.asial.co.jp/634)を参考にして済ましてください。
またMACの場合は標準でホストオンリーアダプタを設定するとエラーになりますのでvirtualboxの環境設定からネットワークを開きホストオンリーネットワークを作成しておいてください。

くわしいのは[[virtualbox] virtualbox のネットワーク設定（ホストオンリーアダプタ）](http://sora2hs.blog70.fc2.com/blog-entry-538.html)をみてください。

## ゲストOS(centos)の起動まで

[VirtualBox for OSX に Linux(CentOS6.3)をインストール ](http://arpanet617.blog.fc2.com/blog-entry-33.html)のVirtualBox for OSX に Linux(CentOS6.3)をインストールを参考にしてcentOSのインストール画面までやってみてください。

※注意 virtualboxのストレージの容量についてですがはじめの設定値が途中で変更する場合結構大変（いろんなツール入れてゴニョゴニョしなくては行けない）なのでそれなりの容量を初期に確保することをおすすめします（自分は60GBくらいに設定しました）

## ゲストOS(centos)のインストール

非常によくまとまっているインストールまで流れが下記に紹介されていますのでやってみてください。

[#04 CentOS5のインストール::VMWare×CentOS5　Windowsでカンタン開発環境](http://d.hatena.ne.jp/sotarok/20070807/1186502582)

VMwareでのお話をしていますが起動したらVMもvirtualboxも一緒です。

自分は言語選択を「英語」
インストールパッケージ選択を「ベース」のみで構成しました。
インストール後必要なものを随時yun install する感じですね

## インストール完了後にやること

ここまでで慣れればだいたい１時間くらいでできると思います。
続いて最低限の開発環境を設定をしましょう。

##ネットワークの設定

最初の状態だとネットワークアダプタの設定が有効になっていない為通信ができない状態ですのでネットワークの設定をしましょう

ネットワーク設定をNAT + hostOnlyアダプタで設定している場合ですと

```shell
/etc/sysconfig/network-scripts/ifcfg-eth0
```
がNATの設定で

```shell
/etc/sysconfig/network-scripts/ifcfg-eth1
```

がHostOnlyアダプタの設定になります
まあどっちも有効するだけです。

### NATの自動boot

```shell
vim /etc/sysconfig/network-scripts/ifcfg-eth0

#修正前
ONBOOT="no"
#修正後
ONBOOT="yes"
```

### hostOnlyアダプタの自動boot

```shell
vim /etc/sysconfig/network-scripts/ifcfg-eth1

#修正前
ONBOOT="no"
#修正後
ONBOOT="yes"
```

### ネットワーク再起動

```shell
service network restart
```

### 外部接続確認


```shell
cd /tmp
wget http://google.co.jp
#htmlが保存されれば外部通信ができている
```


## 一般ユーザーの作成

ザクっと

```shell
useradd ユーザー名
passwd ユーザー名
#パスワードを入力する
```


## yum update

これもサクッと

```shell
yum -y install yum-fastestmirror
 yum -y update
```


## selinuxを止める

こいつが色々悪さをするのでまず止めましょう

```shell
#SELinux状態確認
getenforce
Enforcing #有効になってる
#SELinux無効化
setenforce 0
#SELinux状態確認
getenforce
#SELinux無効
Permissive

#SELinuxの無効化
vim /etc/sysconfig/selinux
#編集前
SELINUX=enforcing
#編集後
SELINUX=disabled
```

## sshの設定

これさえ入れればホストOSからターミナルで入れるので入れましょう。

### 参考にしたサイト

* [#6.5 sshの設定・scpの使い方](http://d.hatena.ne.jp/sotarok/20080108/vmware_centos5_ssh)

```shell
rpm -qa | grep ssh


openssh-4.3p2-16.el5
openssh-clients-4.3p2-16.el5
openssh-server-4.3p2-16.el5
#既に入ってる
```


### SSHの設定

[#6.5 sshの設定・scpの使い方](http://d.hatena.ne.jp/sotarok/20080108/vmware_centos5_ssh)でも言われていますが

>公開サーバではパスワードログインは許可せず、必ず鍵認証をすること>をオススメします。というか、してください。



```shell
vim /etc/ssh/sshd_config


Protocol 2
PermitRootLogin no
PermitEmptyPasswords no
PasswordAuthentication yes
```

### SSHの起動

```shell
#sshdの起動
/etc/init.d/sshd start

#OS起動時に自動で起動する設定
chkconfig sshd on
```

### 接続確認


ゲストOS側(CentOS)のIPを調べる

```shell
$ifconfig

#下記の項目(inet)がどこかにあるのでメモしておく（デフォルトだと192.168.xx.xxx）なはず
inet addr:192.168.56.101
```

調べたIPで接続する


```shell:
ssh ユーザー名@調べたIPアドレス
```

## これで最低限の開発環境は揃いました。

元々は[#00 VMWare×CentOS5　Windowsでカンタン開発環境](http://d.hatena.ne.jp/sotarok/20070728/1185563920)を見てvirtualboxでも同じ風なセットアップ方法を書きたいなーと思って書きました。（引用が多くてごめんなさい）

またこの状態で一旦virtulaboxのスナップショットの保存しておくことおすすめします。


ちょっとqiitaだと画像アップとかないので自前でうまく説明することができませんでした。。
中の人kobitoとかに機能つけてくれれば嬉しいな。