This Dockerfile may be used to bootstrap a cluster or add the cluster configuration
to a new host. It uses etcd to store the cluster config. It is especially suitable
to setup ceph on CoreOS.
The following strategy is applied:
/etc/ceph/ceph.confis found, do nothing.
- If a cluster configuration is available, it will be written to
- If no cluster configuration is available, it will be bootstrapped. A lock mechanism
is used to allow concurrent deployment of multiple hosts.
To bootstrap a new cluster run:
docker run -e ETCDCTL_PEERS=http://192.168.101.50:4001 -e MON_IP=192.168.101.50 -e MON_NAME=mymon -e CLUSTER=testing -v /etc/ceph:/etc/ceph ceph/config
This will generate:
monmap the config will be stored in etcd under
In case a configuration for the cluster is found, the configuration will be pulled
from etcd and written to
Multiple concurrent invocations will block until the first host finished to generate
The following environment variables can be used to configure the bootstrapping:
CONFIG_ROOTis the location in etcd for the ceph configuration (defaults to: "/ceph")
CLUSTERis the name of the ceph cluster (defaults to: "ceph")
CLUSTER_PATHis the location in etcd for the ceph configuration (defaults to: "
MON_NAMEis the name of the monitor. Usually the short hostname
MON_IPis the IP address of the monitor (public)
ETCDCTL_PEERSis a comma seperated list of etcd peers (e.g. http://192.168.2.4:4001)