Rancherを試してみた。その１

#Rancherとは
Rancherは運用環境でコンテナのデプロイや管理を行うためのプラットフォーム。
meetupやハンズオンで見たんだけど、なんかすごく簡単にコンテナを扱えるので流行りそう。

自宅環境でも試してみました。その時の思い出です。

[RancherJPのクイックスタートガイド](http://www.rancher.jp/docs/qsg/)を参考にしました。てゆーかそのまま

#Linuxホストを準備する
要件としては

 - 3.10 + のカーネル

 - 最低1GBのメモリ 

自宅PCのVirtualBoxに以下の環境を用意しました。

| OS |kernel| MEMORY | Storage |Dockerのバージョン|
|:-----------|:-----------|:------------|:------------|:------------|
|Ubuntu 16.04.1        | 4.4.0-59-generic |    2GB    | 20GB |1.13.0|

Rancherは

 - コンテナを実行したりするホストに置くRancherエージェントというコンテナ

 - それらを管理するRancherサーバというコンテナ

の2つが必要で、本来は別々のホストに入れるのが好ましいが今回はとりあえずなので、全部上記の1台に入れます。


#Rancherサーバーを動かす

まずはRancherサーバ

```bash:
$ sudo docker run -d --restart=unless-stopped -p 8080:8080 rancher/server
[sudo] ryota のパスワード:
Unable to find image 'rancher/server:latest' locally
latest: Pulling from rancher/server
6599cadaf950: Pull complete
23eda618d451: Pull complete
f0be3084efe9: Pull complete
52de432f084b: Pull complete
a3ed95caeb02: Pull complete
e75cd91a1dc5: Pull complete
997f1b48f59f: Pull complete
313c28fb4e37: Pull complete
2a0730d1275c: Pull complete
8848fbebd2c8: Pull complete
06e9d9cdf8d3: Pull complete
356cc53c66d1: Pull complete
1baa2c14ab7c: Pull complete
2f0bbbc8f09a: Pull complete
634dc09b798e: Pull complete
98e377d844ba: Pull complete
4ca1b139b545: Pull complete
4137a2ab5c73: Pull complete
8eeb03cf706d: Pull complete
Digest: sha256:0e118d8254e31337fcccc7f37b5771064d4737accd6d5562cfbf8c6c91539b8e
Status: Downloaded newer image for rancher/server:latest
7a0ba24aa8e4dc02da344f9a8435af5e93f8909ff701654aab369af549ba4b38
```

んで、ブラウザから
http://RancherサーバのIPアドレス:8080
に行くと

![WS000002.JPG](https://qiita-image-store.s3.amazonaws.com/0/151399/bad02ed1-32b5-d6f5-420f-c18351903f20.jpeg)


おー始まったな。Rancher

このままでの状態では管理画面にパスワードなしで行けちゃうので、ユーザの設定をしよう

1. メニューからAdmin→Access Controlと進む
![WS000004.JPG](https://qiita-image-store.s3.amazonaws.com/0/151399/301a1e08-d8c0-1510-4d40-9d33a0a11235.jpeg)
1. そうすると、 アカウント作成画面になる。GitHibやAD連携もできるみたいだけど、とりあえずLOCALで作るので、LOCALをクリックする。
![WS000005.JPG](https://qiita-image-store.s3.amazonaws.com/0/151399/e6e1e90e-724c-8000-7b57-384d3761157a.jpeg)
1. 以下を入力
    * Login Usename（必須：ログイン用のユーザ名）
    * Full Name（任意：管理画面で確認できるユーザ名）
    * Password（必須：パスワード）
    * Confirm Password（必須：確認用のパスワード）
![WS000006.JPG](https://qiita-image-store.s3.amazonaws.com/0/151399/1ca8b7b5-8a01-643f-690f-d203714c52d7.jpeg)

1. 入力し終わったら下のほうのEnable Local Authを押すと完了
![WS000007.JPG](https://qiita-image-store.s3.amazonaws.com/0/151399/97b4afee-a094-af1a-b322-d854a00d7a84.jpeg)


#ホストを追加

ここでいうホストっていうのはコンテナを動かす基盤のこと。エージェントをホストに入れる必要があり、画面とCLIの両方を使います。

1. まずは画面からINFRASTRUCTURE→HOSTと進む。
![WS000008.JPG](https://qiita-image-store.s3.amazonaws.com/0/151399/9fb22e2f-c031-9ef1-07c2-65306c1588d1.jpeg)
1. 「Hostがねーよ！」て言われるのでAdd Hostをクリックする
![WS000009.JPG](https://qiita-image-store.s3.amazonaws.com/0/151399/991cb640-e488-57b6-6292-ed1e5a343be7.jpeg)
1. RancherサーバとHostは「Rancher API」を通じてやり取りをするらしく、そのAPIを使うURLを聞かれる。下の方に警告っぽいのが出てるけど、「HostがホントにそのローカルIPに通信できるのかアァ？」という意味で、グローバルIPでNATかましてたりする人はそっちを入れてください。今回はこれでOKなので、Saveをクリックする。
![WS000010.JPG](https://qiita-image-store.s3.amazonaws.com/0/151399/1b6d8a28-2c90-aca3-5a1c-91e7ade99314.jpeg)
1. Hostの登録画面

     1.  上からDocker入ってる？とかIPsecで使うPort空いてる？とか
Label貼っていい感じにまとめる？とか聞かれる。今回はLabel貼りません。IPアドレスを入れる所は、Rancherサーバが動いているHostを追加する場合に入力しないとだめなので、このHostのIPアドレスを入れる。![WS000011.JPG](https://qiita-image-store.s3.amazonaws.com/0/151399/558a976f-d46b-2fe6-2ced-a6b492981675.jpeg)

     1. IPアドレス入れたところの下にコマンドが書いているので、それをコピペしてHostで実行する。そうするとagentコンテナの起動が始まる。
    
        ```bash:
$ sudo docker run -e CATTLE_AGENT_IP="192.168.3.18"  -d --privileged -v /var/run/docker.sock:/var/run/docker.sock -v /var/lib/rancher:/var/lib/rancher rancher/agent:v1.1.3 http://192.168.3.18:8080/v1/scripts/CD7D7788E6CA1A12CCB3:1485061200000:SNnLVHo6r5PCixj7z9qvBDKtZtA
[sudo] ryota のパスワード:![WS000015.JPG]Unable to find image 'rancher/agent:v1.1.3' locally
v1.1.3: Pulling from rancher/agent
b3e1c725a85f: Pull complete
4daad8bdde31: Pull complete
63fe8c0068a8: Pull complete
4a70713c436f: Pull complete
bd842a2105a8: Pull complete
3f7d6fd71888: Pull complete
16914729cfd3: Pull complete
ce32c997f076: Pull complete
Digest: sha256:4f8dd25be4075dd285e52952bc2750f2a182b386843e0c4a1c50c9fe346900d7
Status: Downloaded newer image for rancher/agent:v1.1.3
d43e676f9f29d952a0354a6502adb804fd17807b88014711ec42f23f31b0d20e
   ```
管理画面に戻ってCloseをクリックする。
![WS000013.JPG](https://qiita-image-store.s3.amazonaws.com/0/151399/eecc790e-102e-2c81-63d0-12f1781b7e5f.jpeg)
しばらくすると、Hostが登録されて画面に表示されるようになる。
![WS000014.JPG](https://qiita-image-store.s3.amazonaws.com/0/151399/8dfed70b-7adf-1fa3-c6a1-94c055f18451.jpeg)

とりあえず今回はこれまで。次回は実際にコンテント作ってみます。