Tech-circle #4 Consulハンズオン 準備編

# Tech-circle #4 Consulハンズオン -準備編-

実施予定時間
<b>18:30 - 19:30</b>

本記事は、ネットワーキングタイムで実施する前準備環境構築内容です。
*ご自宅等で事前に準備していただくことも可能です。*

[Link]
[準備編](http://qiita.com/_BSmile_/items/c43484ee31885b89c081)
[ハンズオン編](http://qiita.com/_BSmile_/private/fa6e6c19e05fec1bb52a)

-------------------

### ※先へ進む前に　

本稿の最終目的は、ご自身のPCで仮想サーバ(Ubuntu 14.04 amd64)が動作する事です。

これから事前準備の手順を記載致しますが、既にVMWarePlayer(Fusion)やVirtualBox等の仮想化ソフトがインストールされているPCをお持ちの方もいらっしゃると思います。
手順をタグで分け記載していきますので、未導入であれば手順を基に準備を行って下さい。

また、不明な場合は当日18:30から開始されるネットワーキングタイム中でも実施可能です。

-------------------

## 1. PCにVMWarePlayer(Fusion)やVirtualBoxがインストールされていない場合

下記何れかから仮想化ソフトウェアをダウンロードし、インストールしてください。
- [VirtualBox](https://www.virtualbox.org/wiki/Downloads)

[Tech-Circle #2 事前作業](http://goo.gl/e3Yw2t)でのインストールも可能です(上級者向け)

### ※ 2 - 7の手順を、Vagrantで簡単に作成する
本日参加予定の@ariarijp 様 にハンズオン準備用Vagrantファイルを作成して頂きました。
ありがとうございます。
*Tech-Circleは本当に皆様の協力によって活動出来ているのだと思います*

※ 下記手順にて、Ubuntuサーバの作成が完了した場合は[ハンズオン実践に移ります](http://qiita.com/_BSmile_/private/fa6e6c19e05fec1bb52a)。
※ うまくいかない場合は、[通常手順](http://qiita.com/_BSmile_/items/c43484ee31885b89c081#2-ubuntuserver-1404%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B%E5%A0%B4%E5%90%88)を実施してください。

#### * windows

##### 1. ディレクトリ作成

```bash
mkdir C:\work\vagrant\tech-circle
```
##### 2. Vagrantファイルダウンロード(git cloneでもかまいません)
https://github.com/ariarijp/tech-circle-consul-hands-on/archive/master.zip

##### 3. 展開したファイルをtech-circleディレクトリへコピー

##### 4. コマンドプロンプトから下記実施

```bash
cd C:\work\vagrant\tech-circle
vagrant up
```

#### * Mac / Linuxの場合

##### ディレクトリ作成・git clone実施・vagrantupまとめて。

```bash
$ mkdir -p $HOME/work/git
$ cd $HOME/work/git
$ git clone https://github.com/ariarijp/tech-circle-consul-hands-on.git
$ cd tech-circle-consul-hands-on
$ vagrant up
```

## 2. UbuntuServer 14.04をインストールする場合

下記内容にてインストールを実施して下さい。

|  内容  |  値 |
|-------|-----|
| Ubuntuバージョン | [Ubuntu Server 14.04.2 amd64] (http://releases.ubuntu.com/14.04.2/ubuntu-14.04.2-server-amd64.iso)
| 仮想CPU | 1 core以上 |
| 仮想メモリ | 1GB 以上 |
| HDD | 15GB以上 |

### VirtualBoxやVMWarePlayer(Fusion)へUbuntuServer 14.04 amd64のインストール方法が分からない場合

お近くのTechcircleスタッフへお声掛け下さい。

### -- 以下より仮想サーバ(Ubuntu)での作業となります。 --

## 4. dockerインストール

```bash
$ sudo apt-get update
$ sudo apt-get install curl
$ curl -sSL https://get.docker.com/ubuntu/ | sudo sh
```

#### インストール後の確認

```bash
$ sudo docker version
sudo: unable to resolve host consul-master
Client version: 1.5.0
...
```

古いバージョンの場合、execコマンドが使えませんのでこの先のハンズオンへ影響が出ます。

## 5. Containerベースダウンロード

```bash
$ sudo docker pull bsmile/consul-handson
```

## 6. ファイアウォール有効化

```
$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
$ sudo ufw allow 22/tcp
$ sudo ufw allow 8500/tcp
$ sudo ufw allow 10080/tcp
$ sudo ufw allow proto tcp from 172.17.0.0/16 to any port 2375
```

|ポート|役割|
|----|----|
|22/TCP| ubuntuサーバへssh接続する為のポート |
|8500/TCP| consulのweb-uiを使用する場合に用いるデフォルトポート |
|10080/TCP| dockerコンテナ上で立ち上げたnginxの80/tcpポートを<br>フロントへNATした時に利用するhttp試験ポート |
|2375/TCP| docker Remote API使用時のポート | 

## 7. docker起動時のオプション設定

Remote APIを有効化し、consulサーバからのコンテナ編集を受け付ける

* DOCKER_OPTSにオプションを追加する

```bash
$ sudo /bin/su -c 'echo DOCKER_OPTS=\"-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock --dns 8.8.8.8\" >> /etc/default/docker'
sudo: unable to resolve host consul
```
* docker再起動

```bash
$ sudo service docker restart
```

完了した方から[ハンズオン実践に移ります](http://qiita.com/_BSmile_/private/fa6e6c19e05fec1bb52a)。