We have been using Rancher at the Piel.io (site is not up yet but by the time I finish these blog posts for Rancher it will be...stay tuned...) for several months now as we build our first Micro Service to release publicly in the coming months. During that time, many things have changed as Rancher moved towards the 1.0 release so it seems appropriate that in this series of guest blog posts I will be stepping you through how we at Piel.io have used Rancher 1.0 to facilitate our micro-service product delivery. Nothing will be new to a seasoned Rancher pro, but hopefully, I can help out people/teams who are just starting out. This post, Part 1, will cover setting up your own Rancher Server. Part 2 will be building, configuring and integrating your own Docker registry into Rancher. Part 3 will discuss creation and usage of stacks to finally provide you with a usable platform to describe, deploy and manage your product offering. So let’s get started. First, get yourself a fresh cloud vm. I purchased a \$5 Ubuntu 14.04 LTS VM from vultr.com but any will obviously do. Pre-requisites: Install Docker:

curl -fsSL https://get.docker.com/ | sh

After this completes you should be able to start using Docker but let’s just verify that it exists.

docker -v
Docker version 1.10.3, build 20f81dd

Yay. We are ready to get going. Now let’s get the latest copy of rancher, we could specify no tag to pull because the most recent tag maps to v1.0.0 but to future proof those who want the 1.0.0 Rancher we will include the tag. All tags can be found here: https://hub.docker.com/r/rancher/server/tags/.

docker pull rancher/server:v1.0.0
v1.0.0: Pulling from rancher/server

8387d9ff0016: Already exists

3b52deaaf0ed: Already exists

4bd501fad6de: Already exists

a3ed95caeb02: Already exists

1dd2ffa08394: Already exists

6574a9c2d75b: Already exists

fedb745f2358: Already exists

951a2617430a: Already exists

04f380ccb3c6: Already exists

6367f33eed6c: Already exists

Digest: sha256:7634423082be8a3c7a7aafa71f3b344f212ce1b75ee3f4263362fbc87812bf6b

Status: Downloaded newer image for rancher/server:v1.0.0

Success! Next, I would like to keep the data persistent upon the disk. In Docker, we do this via volumes. So go ahead and create a new folder to house this data.

mkdir -p /data/rancher-server

We should be ready to run the Rancher image that we just pulled (note that we could also have the Rancher image automatically pulled via the docker run command, but I split it up for clarity).

sudo docker run -d -v /data/rancher-server:/var/lib/mysql --restart=always -p 80:8080 rancher/server:v1.0.0

f83e74a6b8f5c20d74acad519004635a74662954634966606e9046a7be29233b

Seems successful but let’s check with Docker.

docker ps

CONTAINER ID        IMAGE                   COMMAND                  CREATED             STATUS              PORTS                            NAMES

f83e74a6b8f5        rancher/server:v1.0.0   "/usr/bin/s6-svscan /"   35 seconds ago      Up 34 seconds       3306/tcp, 0.0.0.0:80->8080/tcp   distracted_elion



Ok, it's running, but Docker auto-named the container. So I will kill the container and run the command again with the addition of "--name rancher-server."



sudo docker run -d -v /data/rancher-server:/var/lib/mysql --restart=always -p 80:8080 --name rancher-server rancher/server:v1.0.0

1fa9cc4013e8e17f1ac175b011955308089819e8c10d423e3b06ed09c536e864



docker ps

CONTAINER ID        IMAGE                   COMMAND                  CREATED             STATUS              PORTS                            NAMES

1fa9cc4013e8        rancher/server:v1.0.0   "/usr/bin/s6-svscan /"   3 seconds ago       Up 2 seconds        3306/tcp, 0.0.0.0:80->8080/tcp   rancher-server

Now to visit the website. 1.rancher Brilliant, So we now have Rancher Server up and running on port 80 with a persistent file storage which is helpful when you upgrade or migrate the Rancher Server as it saves all the setup/configuration from being repeated I will also switch the theme from light to dark as I think it looks a lot better than the default light theme. But, it’s up to you of course. 2.rancher Anyone can obviously hit this URL and start configuring Rancher so it is time to add some security. I choose Github authentication as all of our team members use Github, so it makes sense. Navigate to ADMIN > ACCESS CONTROL This page is self-explanatory and outlines the steps you need to complete to authorize Rancher via Github so I won’t rehash these steps. 3.rancher Fill out your client and secret and click the Authorize button. A Github authorize screen will pop up and request authorization confirmation, 4.rancher If all goes well, then we will have successfully secured the Rancher application. 5.rancher So let’s recap what has happened here: We have pulled the 1.0.0 Rancher Server Docker image and have run it on the standard web port 80. It has a persistent storage on the host disk in case we wish to upgrade in the future and finally we have secured the container via Github authorization. In the next blog post, I will create a Docker Registry and show how we can utilize it inside of Rancher. References: http://docs.rancher.com/rancher/installing-rancher/installing-server/