Skip to content

Instantly share code, notes, and snippets.

@hackzilla
Last active August 29, 2015 14:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hackzilla/3e0199ccd17543afda1a to your computer and use it in GitHub Desktop.
Save hackzilla/3e0199ccd17543afda1a to your computer and use it in GitHub Desktop.
etcd + fleet, 3 node clust
#cloud-config
coreos:
etcd:
#generate a new token for each unique cluster from https://discovery.etcd.io/new
discovery: https://discovery.etcd.io/<token>
addr: $public_ipv4:4001
peer-addr: $private_ipv4:7001
peer-election-timeout: 500
peer-heartbeat-interval: 100
update:
group: stable
reboot-strategy: best-effort
units:
- name: etcd.service
command: start
- name: fleet.service
command: start
enable: true
content: |
[Unit]
Description=fleet
[Service]
Environment="FLEET_PUBLIC_IP={{ public_ip }}"
ExecStart=/usr/bin/fleet
- name: docker-tcp.socket
command: start
enable: true
content: |
[Unit]
Description=Docker Socket for the API
[Socket]
ListenStream=2375
Service=docker.service
BindIPv6Only=both
[Install]
WantedBy=sockets.target
- name: project.backend.@.service
command: start
content: |
[Unit]
Description=Project backend
After=docker.service
Requires=docker.service
[Service]
TimeoutStartSec=0
ExecStartPre=-/usr/bin/docker kill project
ExecStartPre=-/usr/bin/docker rm project
ExecStartPre=/usr/bin/docker pull hackzilla/project:latest
ExecStart=/usr/bin/docker run --rm --name project -p 81:80 -e PROJECT_PASSWORD=letmein hackzilla/project:latest
ExecStop=/usr/bin/docker stop project
[X-Fleet]
X-Conflicts=project.backend.*.service
- name: project-discovery.backend.@.service
command: start
content: |
[Unit]
Description=Announce Project backend
BindTo=project.backend.@.service
[Service]
ExecStart=/bin/sh -c "while true; do etcdctl set /varnish/backends/project/%H:81 '{ \"host\": \"%H\", \"port\": 81, \"version\": \"ooh\" }' --ttl 60;sleep 45;done"
ExecStop=/usr/bin/etcdctl rm /varnish/project/kohana/%H:81
[X-Fleet]
X-ConditionMachineOf=project.backend.@.service
ssh_authorized_keys:
- ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ== vagrant insecure public key
- ssh-rsa AAAAB... hackzilla@hackzilla.org
users:
- name: hackzilla
passwd: $6$WQ74...
groups:
- sudo
- docker
- wheel
- portage
- core
ssh-authorized-keys:
- ssh-rsa AAAAB...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment