Skip to content

Instantly share code, notes, and snippets.

@andrewwebber
Created July 27, 2015 17:27
Show Gist options
  • Save andrewwebber/cfc9a6375f09f1313710 to your computer and use it in GitHub Desktop.
Save andrewwebber/cfc9a6375f09f1313710 to your computer and use it in GitHub Desktop.
Ceph
[Unit]
Description=Ceph Monitoring Daemon Service
After=network-online.target
After=docker-volumes.service
Before=proxy.service
Requires=network-online.target
Requires=docker.service
Requires=setup-network-environment.service
After=docker.service
After=setup-network-environment.service
[Service]
TimeoutSec=0
EnvironmentFile=/etc/network-environment
ExecStartPre=-/usr/bin/docker kill ceph-mon
ExecStartPre=-/usr/bin/docker rm ceph-mon
ExecStart=/usr/bin/sh -c 'docker run --name ceph-mon --net=host \
-v /etc/ceph/:/etc/ceph/ \
-v /var/lib/ceph/:/var/lib/ceph/ \
-e MON_IP=${DEFAULT_IPV4} \
-e MON_NAME=$(cat /etc/machine-id) \
-e HOSTNAME=$(cat /etc/machine-id) \
-e CEPH_PUBLIC_NETWORK=$(etcdctl get ceph-config/ceph/osd/public_network) \
-e KV_TYPE=etcd \
-e KV_IP=172.20.30.175 \
-e KV_PORT=2379 \
ceph/daemon mon'
ExecStop=/usr/bin/docker kill --signal=SIGTERM ceph-mon
Restart=always
RestartSec=20
[X-Fleet]
Global=true
[Unit]
Description=Ceph OSD Daemon Service
After=network-online.target
After=docker-volumes.service
Before=proxy.service
Requires=network-online.target
Requires=docker.service
Requires=setup-network-environment.service
After=docker.service
After=setup-network-environment.service
[Service]
TimeoutSec=0
EnvironmentFile=/etc/network-environment
ExecStartPre=-/usr/bin/docker kill ceph-osd
ExecStartPre=-/usr/bin/docker rm ceph-osd
ExecStart=/usr/bin/sh -c 'docker run --name ceph-osd --net=host \
--privileged=true \
-v /var/lib/ceph/:/var/lib/ceph/ \
-v /dev/:/dev/ \
-e OSD_DEVICE=$(etcdctl get ceph-config/ceph/osd/device) \
-e HOSTNAME=$(cat /etc/machine-id) \
-e CEPH_PUBLIC_NETWORK=$(etcdctl get ceph-config/ceph/osd/public_network) \
-e KV_TYPE=etcd \
-e KV_IP=172.20.30.175 \
-e KV_PORT=2379 \
ceph/daemon osd'
ExecStop=/usr/bin/docker kill --signal=SIGTERM ceph-osd
Restart=always
RestartSec=20
[X-Fleet]
Global=true
[Unit]
Description=Ceph OSD Disk Daemon Service
After=network-online.target
After=docker-volumes.service
Before=proxy.service
Requires=network-online.target
Requires=docker.service
Requires=setup-network-environment.service
After=docker.service
After=setup-network-environment.service
ConditionPathExists=!/etc/ceph/disk-init
[Service]
TimeoutSec=0
EnvironmentFile=/etc/network-environment
ExecStartPre=-/usr/bin/docker kill ceph-osd-disk
ExecStartPre=-/usr/bin/docker rm ceph-osd-disk
ExecStart=/usr/bin/sh -c '\
docker run --name ceph-osd-disk --net=host \
--privileged=true \
-v /etc/ceph:/etc/ceph \
-v /var/lib/ceph/:/var/lib/ceph/ \
-v /dev/:/dev/ \
-e OSD_DEVICE=$(etcdctl get ceph-config/ceph/osd/device) \
-e OSD_FORCE_ZAP=1 \
ceph/daemon osd_ceph_disk'
ExecStartPost=/usr/bin/touch /etc/ceph/disk-init
ExecStop=/usr/bin/docker kill --signal=SIGTERM ceph-osd-disk
[X-Fleet]
Global=true
[Unit]
Description=Ceph OSD Activate Daemon Service
After=network-online.target
After=docker-volumes.service
Before=proxy.service
Requires=network-online.target
Requires=docker.service
Requires=setup-network-environment.service
After=docker.service
After=setup-network-environment.service
ConditionPathExists=/etc/ceph/disk-init
[Service]
TimeoutSec=0
EnvironmentFile=/etc/network-environment
ExecStartPre=-/usr/bin/docker kill ceph-osd-activate
ExecStartPre=-/usr/bin/docker rm ceph-osd-activate
ExecStart=/usr/bin/sh -c '\
docker run --name ceph-osd-activate --net=host \
--privileged=true \
-v /etc/ceph:/etc/ceph \
-v /var/lib/ceph/:/var/lib/ceph/ \
-v /dev/:/dev/ \
-e OSD_DEVICE=$(etcdctl get ceph-config/ceph/osd/device) \
ceph/daemon osd_ceph_disk_activate'
ExecStop=/usr/bin/docker kill --signal=SIGTERM ceph-osd-activate
Restart=always
RestartSec=20
[X-Fleet]
Global=true
[Unit]
Description=Ceph Gateway Daemon Service
After=network-online.target
After=docker-volumes.service
Before=proxy.service
Requires=network-online.target
Requires=docker.service
Requires=setup-network-environment.service
After=docker.service
After=setup-network-environment.service
[Service]
TimeoutSec=0
EnvironmentFile=/etc/network-environment
ExecStartPre=-/usr/bin/docker kill ceph-gateway
ExecStartPre=-/usr/bin/docker rm ceph-gateway
ExecStart=/usr/bin/sh -c 'sudo docker run --name ceph-gateway --net=host \
-v /etc/ceph/:/etc/ceph/ \
-v /var/lib/ceph/:/var/lib/ceph/ \
-p 80:80 \
-e RGW_NAME=$(cat /etc/machine-id) \
-e KV_TYPE=etcd \
-e KV_IP=172.20.30.175 \
-e KV_PORT=2379 \
ceph/daemon rgw'
ExecStop=/usr/bin/docker kill --signal=SIGTERM ceph-gateway
Restart=always
RestartSec=20
[X-Fleet]
Global=true
[Unit]
Description=Ceph Gateway Auth User Daemon Service
After=network-online.target
After=docker-volumes.service
Before=proxy.service
Requires=network-online.target
Requires=docker.service
Requires=setup-network-environment.service
Requires=ceph-mon.service
After=docker.service
After=setup-network-environment.service
After=ceph-mon.service
[Service]
TimeoutSec=0
EnvironmentFile=/etc/network-environment
ExecStart=/usr/bin/docker exec ceph-mon radosgw-admin user create --uid=user --display-name="user" --access-key=12345 --secret=67890
RemainAfterExit=yes
Type=oneshot
[X-Fleet]
MachineOf=ceph-mon.service
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment