Skip to content

Unofficial tools to make installing and using Flocker easier and more fun

Notifications You must be signed in to change notification settings

lukemarsden/unofficial-flocker-tools

 
 

Repository files navigation

so you want a flocker cluster quickly?

what is here

this repo makes it easy to install flocker on some nodes and configure the requisite keys.

see the official docs for the full long-form installation instructions.

prerequisites:

get the repo and install dependencies

Note: You may wish to make a virtualenv.

git clone https://github.com/lukemarsden/unofficial-flocker-tools
cd unofficial-flocker-tools
pip install -r requirements.txt

You may need to install the development libraries for cryptography first.

get some nodes

provision some machines, somehow. use ubuntu 14.04 or centos 7.

  • Amazon EC2 if you want to use our EBS backend (note VMs must be in the same AZ)
  • OpenStack deployment (e.g. Rackspace, private cloud) if you want to use our OpenStack backend
  • Any other infrastructure if you want to try out our alpha ZFS backend (does not work yet)

make sure you can log into the nodes as root with a private key. (e.g. on ubuntu on AWS, sudo cp .ssh/authorized_keys /root/.ssh/authorized_keys)

you may want to pick a node to be the control node and give it a DNS name (set up an A record for it with your DNS provider). using a DNS name is optional -- you can also just use its IP address.

cluster.yml

there are 3 example configuration files that correspond to the backend Flocker will use - base your cluster.yml on one of these files:

for example:

mv cluster.yml.ebs.sample cluster.yml
vim cluster.yml # customize for your cluster

install

./install.py cluster.yml

this will install the packages on your nodes

at this point you will need to manually install the latest (highest numbered) packages from http://build.clusterhq.com/results/omnibus/master/ onto your nodes as well.

deploy

./deploy.py cluster.yml

this will configure certificates, push them to your nodes, and set up firewall rules for the control service

on AWS, you'll need to add a firewall rule for TCP port 4523 and 4524 if you want to access the control service/API remotely.

plugin

./plugin.py cluster.yml

this will configure api certificates for the docker-plugin and push them to your nodes - it will name them /etc/flocker/plugin.{crt,key}

it will git clone the plugin repo, checkout a branch and install the dependencies (pip install) and write a service file (upstart/systemd) for the plugin

it will also download a customized docker binary that supports the --volume-driver flag and restart the docker service.

The environment variables that control this are:

  • DOCKER_BINARY_URL - the url to download a customized docker binary from
  • DOCKER_SERVICE_NAME - the name of the service docker is installed with (docker, docker.io etc)
  • PLUGIN_REPO - the repo to install the docker plugin from
  • PLUGIN_BRANCH - the branch of the plugin repo to use

tutorial

./tutorial.py cluster.yml

this will print out a tutorial customized to your deployment.

notes

  • you need to ensure that machines can be SSH'd into as root
  • you need a private key to access the machines - you can configure this in the private_key_path of cluster.yml

About

Unofficial tools to make installing and using Flocker easier and more fun

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 70.3%
  • JavaScript 28.2%
  • HTML 1.2%
  • Other 0.3%