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:
- flocker-cli for your local system (from http://build.clusterhq.com/results/omnibus/master/ for now)
- python 2.7
- pip
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.
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.
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.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.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.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 fromDOCKER_SERVICE_NAME
- the name of the service docker is installed with (docker, docker.io etc)PLUGIN_REPO
- the repo to install the docker plugin fromPLUGIN_BRANCH
- the branch of the plugin repo to use
./tutorial.py cluster.yml
this will print out a tutorial customized to your deployment.
- 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