Mac + Virtualbox + CoreOS + etcd2 + fleet の基本設定(1)

# Mac + Vagrant + CoreOS環境構築


CoreOSは軽量化されたOSでDockerでアプリケーションを管理できるよう特化されたOSです。
その中にetcd2のクラスタ管理、fleetでのsystemd+clusterのプロセス管理ができるようになっています。

本章ではまず基礎となるvirtualbox + coreosを使った仮想でのcoreosクラスタを構築していきます。

※今回Vagrantを利用しなかったことについて後述します。

### 環境

| 環境 | hostname | public ip |
|:-----------:|:------------:|:------------:|
| MacbookAir 4GB |hostserver | xxx.xxx.xxx.xxx |
| virtualbox1 | guest os WEB | 192.168.0.10 |
| virtualbox2 | guest os storage | 192.168.0.20 |
| virtualbox3 | guest os DB | 192.168.0.30 |

### 今回目指す構成　2部に分けます。。。

### phase 1

discoveryチャネルを使用して、3台構成のクラスタを作成します

![cluster01.png](https://qiita-image-store.s3.amazonaws.com/0/93976/a555dab3-0370-3ea6-5c2e-04924b52bdbe.png)

### phase 2

3台構成のクラスタ配下に、workerを立てます。
参考：https://coreos.com/os/docs/latest/cluster-architectures.html#production-cluster-with-central-services


![cluster02.png](https://qiita-image-store.s3.amazonaws.com/0/93976/3359860e-a435-6f13-6296-84f0b1eed847.png)


### 前提

※virtualbox 5
※brewが入っていること

### virtualboxインストール

```shell:virtualbox5
brew install Caskroom/cask/virtualbox Caskroom/cask/virtualbox-extension-pack
```

### Coreos VirtualBoxインストール

### あらかじめ下記URLからcoreosのisoを取得

https://coreos.com/os/docs/latest/booting-with-iso.html

### vitualbox雛形の作成

1.Virtualbox画面より名前とオペレーティングシステム記入

![coreos01.png](https://qiita-image-store.s3.amazonaws.com/0/93976/aa1f7ebc-4641-21f3-1bfc-6c04a36689e2.png)


2.メモリサイズを指定　1024MB以上でないとインストールができません。

![coreos02.png](https://qiita-image-store.s3.amazonaws.com/0/93976/d115263d-ba46-5e33-ee63-d2458aaa2e71.png)

3.VirtualDiskの設定 ※今回はVDI　必ず固定サイズにしてください

![core03.png](https://qiita-image-store.s3.amazonaws.com/0/93976/523909ef-5637-bd2b-6052-176518a9ca10.png)

4.ネットワークの設定

![coreos04.png](https://qiita-image-store.s3.amazonaws.com/0/93976/6a526da5-8ced-dd9b-1f9b-15a7c26f1e7e.png)

5.初回起動時の設定

初回起動時は下記の画面になっています。

![coreos05.png](https://qiita-image-store.s3.amazonaws.com/0/93976/2c556eb4-2e82-b446-3d2c-78ee1153edbf.png)

まだOSがインストールされていないので、coreユーザーにパスワードを設定します。

```shell:coreos
sudo passwd core
**
#外部から接続できるようにipアドレスも確認しておきます。
ip a

```

6.外部からターミナルで接続し、基礎設定を行う

```shell:coreos
#上記で確認したIPに接続
ssh core@192.168.0.10

vim cloud-config.yml
#cloud-config

ssh_authorized_keys:
- ssh-rsa #ここに自身の公開鍵

users:
- name: coreuser
  passwd: $1$9T2FM/JI$/n3HP4chMkV/vCkZRPgQo/ #hogeでパスワード設定
  groups:
  - sudo
  - docker
  ssh-authorized-keys:
  - ssh-rsa #ここに自身の公開鍵

#上記記入後、以下のインストールコマンド実施

sudo coreos-install -d /dev/sda -C stable -c ~/cloud-config.yml
Checking availability of "local-file"
Fetching user-data from datasource of type "local-file"
Downloading the signature for http://stable.release.core-os.net/amd64-usr/766.3.0/coreos_production_image.bin.bz2...
2015-09-21 08:50:35 URL:http://stable.release.core-os.net/amd64-usr/766.3.0/coreos_production_image.bin.bz2.sig [543/543] -> "/tmp/coreos-install.uBCVFdM2DQ/coreos_production_image.bin.bz2.sig" [1]
Downloading, writing and verifying coreos_production_image.bin.bz2...
〜〜〜
Success! CoreOS stable 766.3.0 is installed on /dev/sda

#上記Success!がでて来ればOKです
```

今回は手動でVirtualboxにCoreOSの設定を仕込んで行きました。
このテンプレートをコピーして次回は、etcd2+fleetのクラスタ設定を行いたいと思います。

### 次項

[Mac + Virtualbox + CoreOS + etcd2 + fleet の基本設定(2)](http://qiita.com/xshsaku/items/a5b57fafa0b41740bd7f)