Installing Deis on Bare Metal

This post will be described how i did Deis installation from start to finish on bare metal.

3 nodes will be used in the installation. I have VivoPC with 8GB RAM.

Prepare the LiveCD

Download Ubuntu 14.04 and prepare the LiveCD(via unetbootin or Ubuntu startup disk creator).

Generate SSH Key

The deisctl utility communicates with remote machines over an SSH tunnel. If you don’t already have an SSH key, the following command will generate a new keypair named deis:

$ ssh-keygen -q -t rsa -f ~/.ssh/deis -N '' -C deis


Here is an example cloud-config.yml

You must change the ssh_authorized_keys, discovery and all visible ip’s. You must also change the hostname for each node.(coreos-1, coreos-2, coreos-3)

Finally, you should copy the cloud-config.yml and files to livecd’s root.

CoreOS Install

  • Start from the LiveCD.
  • Open the xterm.
  • Copy the cloud-config.yml and files to home directory.

WARNING!!! script install to /dev/sda disk. If you want to install the other disk, edit this script file.

$ cp /media/cdrom/ /media/cdrom/cloud-config.yml ~
$ ./

This step should be repeated for each node.

Configure DNS

See Configure DNS for more information on properly setting up your DNS records with Deis.

I used It is so simple.

Install Deis Platform

First check that you have deisctl installed and the version is correct.

$ deisctl --version

If not, follow instructions:

$ curl -sSL | sudo sh -s 1.4.1
$ sudo ln -fs $PWD/deisctl /usr/local/bin/deisctl

Find the public IP address of one of your nodes, and export it to the DEISCTL_TUNNEL environment variable (substituting your own IP address):


If you set up the “convenience” DNS records, you can just refer to them via

$ export DEISCTL_TUNNEL=""

Before provisioning the platform, we’ll need to add the SSH key to Deis so it can connect to remote hosts during deis run:

$ deisctl config platform set sshPrivateKey=~/.ssh/deis

We’ll also need to tell the controller which domain name we are deploying applications under:

$ deisctl config platform set

Once finished, run this command to provision the Deis platform:

$ deisctl install platform

You will see output like the following, which indicates that the units required to run Deis have been loaded on the CoreOS cluster:

$ deisctl install platform
● ▴ ■
■ ● ▴ Installing Deis...
▴ ■ ●

Scheduling data containers...
Deis installed.
Please run `deisctl start platform` to boot up Deis.

Run this command to start the Deis platform:

$ deisctl start platform

Once you see “Deis started.”, your Deis platform is running on a cluster! You may verify that all of the Deis units are loaded and active by running the following command:

$ deisctl list

All of the units should be active.

Register a User

Note: The first user to register with Deis receives “superuser” privileges.

$ deis register
username: foobar
password (confirm):
Registered foobar
Logged in as foobar

Upload Your SSH Public Key

If you plan on using git push to deploy applications to Deis, you must provide your SSH public key. Use the deis keys:add command to upload your default SSH public key, usually one of:

$ deis keys:add
Found the following SSH public keys:
Which would you like to use with Deis? 1
Uploading /home/foobar/.ssh/ to Deis... done
Logout from a Controller


$ deis logout
Logged out as foobar


$ deis login
username: foobar
Logged in as foobar


comments powered by Disqus