AWS 上で Rancher 環境を構築するメモ
目的
- コマンド(docker)などよく知らないひとでも
- AWS をちょっといじれれば
- Rancher 環境を作って遊ぶことができるよ。
注意
- 無料枠の範囲を超えていると思うのでお財布と相談して利用
- ありものの AMI を使っているので Rancher は最新ではないです
構成
用途 | AMI 名 | AMI Image ID | SSH Login Username | Recommend Instance Type | Note |
---|---|---|---|---|---|
WEB UI: Rancher Server | Rancher on RancherOS | ami-d68392ad | rancher | t2.medium | 手で作る |
Each Hosts : Docker | RancherOS - HVM | Host AMI List | rancher | t2.small | Rancher WEB UI から Deploy |
1. Rancher Host を Deploy する
- お勧めに従ってポチポチと
- あとで ELB 配下に収める予定ですが動作確認もしたいので TCP:8080 が Public からつながるようにする
- Public IP も忘れずにアサインする
Rancher on RancherOS | ami-d68392ad | t2.medium |
---|
2. Rancer Host を Deploy したのち ssh 接続してみる(任意)
- トラブルシュートするときには必要になることも
$ ssh -i <SSH Key> rancher@<INSTANCE DNS NAME or Public IP>
[rancher@ ~]$ ros --version
ros version v1.1.0
[rancher@ ~]$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3c08e1dc751f rancher/server:latest "/usr/bin/entry /usr/" 7 minutes ago Up 7 minutes 3306/tcp, 0.0.0.0:8080->8080/tcp rancher-server
[rancher@ ~]$ docker --version
Docker version 1.12.6, build 78d1802
[rancher@ ~]$ docker exec -ti 3c08e1dc751f sh -c "cat /etc/os-release"
NAME="Ubuntu"
VERSION="14.04.5 LTS, Trusty Tahr"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 14.04.5 LTS"
VERSION_ID="14.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
3. WEB UI 動作確認
- ADMIN に ! が付いているように最初は管理者アカウントがノーパスで設定されている
アドレス: http://<Public IP>:8080/
4. HTTPS 化 (詳細割愛)
ELB:443 <---> Rancher:8080
- ACM で証明書取る
- Route 53 で DNS 設定
- ELB(ALB) を作って Rancher Host を Target 配下に置く
- https で接続できるか確認する
5. 管理者ユーザー設定
- 今回は GitHub アカウントと紐づけます
- ローカルでパスワード認証させることも可能
Rancher WEB UI: Admin -> Access Control
5-1. "1. Setup a GitHub Application"
- 自分の github.com にログイン
- Setting > Developer Setting
- OAuth Apps > New OAuth App
- Application name: rancher-on-aws
- Homepage URL : https://rancher.example.com/
- Application description : hogehoge
- Authorization callback URL : https://rancher.example.com/
5-2. "2. Configure Rancher to use your application for authentication"
- github.com 側に OAuth Apps に表示されている ClientID と Client Secret を Rancher WEB UI 側の にコピペする
5-3. "3. Test and enable authentication"
- Authenticate する
5-4. GitHub is enabled
- ADMIN > Access Control で GitHub is enabled になれば成功
- ADMIN > Account で github アカウントが Admin になっていることを確認
6. EC2 Instance の Security Group 設定変更(任意)
- ELB 配下に入れたので Public の 8080 は閉じる
- ELB からの Private 8080 へのアクセスは残す
- Public の SSH は管理用に残す
7. Hosts の追加
7-1. Rancher WEB UI
- INFRASTRUCTURE > Hosts
- ADD Hosts > Amazon EC2
7-2. AWS WEB UI
- AWS IAM > User で AmazonEC2FullAccess と AdministratorAccess のユーザーを作って Security Credentials で Create Access Key を実行する
- (かなり緩い設定にしています)
- Access Key ID と Secret Access Key を Rancher WEB UI 側にコピペ
7-3. Rancher WEB UI
- Region: us-east-1 (EC2インスタンスのあるところを選択)
- Next: Authenticate & select a network へ進む
- Availability Zone, VPC/subnet を選択
- Security Group は Standard のまま
- Next: Set Instance options へ進む
- Name: ranchernode (ranchernode1 — ranchernode3 と自動で数字が付きます)
- Quantity: 3 (ノード数)
- AMI: ami-38964e45 (us-east-1 latest)
- SSH User: rancher (固定)
- IAM Profile: 適宜
- Private IP: 適宜(今回はチェックなしで Public からもアクセス可に)
- Create を押す