Created
May 4, 2015 15:48
-
-
Save philcryer/3bbce14263d7715df3f1 to your computer and use it in GitHub Desktop.
gist of templae - cloud-config
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| "UserData": { | |
| "Fn::Base64": { | |
| "Fn::Join": [ | |
| "", | |
| [ | |
| "#cloud-config\n\ncoreos:\n etcd:\n addr: $", | |
| { | |
| "Ref": "AdvertisedIPAddress" | |
| }, | |
| "_ipv4:4001\n peer-addr: $", | |
| { | |
| "Ref": "AdvertisedIPAddress" | |
| }, | |
| "_ipv4:7001\n peer-heartbeat-interval: 1000\n peer-election-timeout: 2000\n\n fleet:\n public-ip: $", | |
| { | |
| "Ref": "AdvertisedIPAddress" | |
| }, | |
| "_ipv4\n etcd-servers: http://$", | |
| { | |
| "Ref": "AdvertisedIPAddress" | |
| }, | |
| "_ipv4:4001/\n etcd-request-timeout: 3\n \n units:\n - name: etcd.service\n command: start\n - name: router.service\n command: start\n content: |\n [Unit]\n Description=Run router\n After=docker.service\n Requires=docker.service\n \n [Service]\n Restart=always\n ExecStartPre=-/usr/bin/docker kill router\n ExecStartPre=-/usr/bin/docker rm router\n ExecStartPre=/usr/bin/docker pull monsantoco/axon-router:latest\n ExecStart=/usr/bin/docker run -t -e \"NS_IP=172.17.42.1\" --name router -p 80:80 monsantoco/axon-router:latest\n ExecStop=/usr/bin/docker stop router\n - name: settimezone.service\n command: start\n content: |\n [Unit]\n Description=Set the timezone\n \n [Service]\n ExecStart=/usr/bin/timedatectl set-timezone UTC\n RemainAfterExit=yes\n Type=oneshot\n \n - name: consul.service\n command: start\n content: |\n [Unit]\n Description=Consul\n After=docker.service\n After=etcd.service\n \n [Service]\n Restart=always\n RestartSec=10\n ExecStartPre=-/usr/bin/docker kill %p\n ExecStartPre=-/usr/bin/docker rm %p\n ExecStartPre=/usr/bin/docker pull progrium/consul\n ExecStart=/usr/bin/docker run --name %p -h %H -v /data/consul:/data -e GOMAXPROCS=8 -p 8300:8300 -p 8301:8301 -p 8301:8301/udp -p 8302:8302 -p 8302:8302/udp -p 8400:8400 -p 8500:8500 -p 53:53/udp progrium/consul ", | |
| "-server", | |
| " -advertise $", | |
| { | |
| "Ref": "AdvertisedIPAddress" | |
| }, | |
| "_ipv4 ", | |
| "-bootstrap-expect 3", | |
| "\n ExecStop=/usr/bin/docker stop %p\n \n [Install]\n WantedBy=multi-user.target\n - name: registrator.service\n command: start\n content: |\n [Unit]\n Description=Run registrator\n After=docker.service\n Requires=docker.service\n \n [Service]\n Restart=always\n ExecStartPre=-/usr/bin/docker kill registrator\n ExecStartPre=-/usr/bin/docker rm registrator\n ExecStartPre=/usr/bin/docker pull gliderlabs/registrator:latest\n ExecStart=/usr/bin/docker run --name registrator -v /var/run/docker.sock:/tmp/docker.sock -h %H gliderlabs/registrator:latest consul://$", | |
| { | |
| "Ref": "AdvertisedIPAddress" | |
| }, | |
| "_ipv4:8500\n ExecStop=/usr/bin/docker stop registrator\n - name: logspout.service\n command: start\n content: |\n [Unit]\n Description=Logspout Docker log shipper\n \n Requires=docker.service\n Requires=consul.service\n After=docker.service\n After=consul.service\n \n [Service]\n TimeoutStartSec=10m\n Restart=on-failure\n RestartSec=10s\n \n ExecStartPre=-/usr/bin/docker kill %p\n ExecStartPre=-/usr/bin/docker rm %p\n ExecStartPre=/usr/bin/docker pull gliderlabs/logspout:latest\n \n ExecStart=/bin/sh -c \"/usr/bin/docker run --name=%p \\\n --publish 8000:8000 \\\n --dns $(ip route | awk '/docker0/ { print $NF }') \\\n --dns-search service.consul \\\n --volume=/var/run/docker.sock:/tmp/docker.sock \\\n --hostname=$HOSTNAME \\\n gliderlabs/logspout:latest \\\n syslog://logstash.service.consul:5000\"\n \n ExecStop=-/usr/bin/docker stop %p\n ExecStop=-/usr/bin/docker kill %p\n ExecStop=-/usr/bin/docker rm %p\n - name: fleet.service\n command: start\n content: |\n [Unit]\n Description=fleet daemon\n Wants=etcd.service\n After=etcd.service\n Wants=fleet.socket\n After=fleet.socket\n \n [Service]\n ExecStartPre=/usr/bin/mkdir -p /etc/fleet ; /bin/bash -c 'case $(curl -s http://169.254.169.254/latest/meta-data/placement/availability-zone) in ", | |
| { | |
| "Ref": "AvailabilityZone1" | |
| }, | |
| ") az=1;; ", | |
| { | |
| "Ref": "AvailabilityZone2" | |
| }, | |
| ") az=2;; *) exit 1;; esac; echo metadata=\"location=$az\" > /etc/fleet/fleet.conf'\n ExecStart=/usr/bin/fleetd\n Restart=always\n RestartSec=10s\n - name: fleet.socket\n command: start\n enable: yes\n content: |\n [Unit]\n Description=Fleet Socket for the API\n \n [Socket]\n ListenStream=41337\n BindIPv6Only=both\n Service=fleet.service\n \n [Install]\n WantedBy=sockets.target\n - name: fleet-register.service\n command: start\n content: |\n [Unit]\n Description=Register fleet into consul\n After=consul.service\n \n [Service]\n Restart=on-failure\n RestartSec=30\n ExecStart=/usr/bin/curl --location --silent --fail -X POST $", | |
| { | |
| "Ref": "AdvertisedIPAddress" | |
| }, | |
| "_ipv4:8500/v1/agent/service/register -d '{ \"ID\": \"%H:fleet\", \"Name\": \"fleet\", \"Tags\": [], \"Address\": \"$", | |
| { | |
| "Ref": "AdvertisedIPAddress" | |
| }, | |
| "_ipv4\", \"Port\": 41337, \"Check\": {} }'\n \n \n \nwrite_files:\n - path: /etc/ntp.conf\n content: |\n server 0.pool.ntp.org\n server 1.pool.ntp.org\n server 2.pool.ntp.org\n server 3.pool.ntp.org\n restrict default nomodify nopeer noquery limited kod\n restrict 127.0.0.1" | |
| ] | |
| ] | |
| } | |
| }, | |
| "SecurityGroupIds": [ | |
| { | |
| "Ref": "CoreOSSecurityGroup" | |
| }, | |
| { | |
| "Ref": "ServiceCoreOSSecurityGroup" | |
| }, | |
| { | |
| "Ref": "CoreOSFromBastionSecurityGroup" | |
| } | |
| ], | |
| "KeyName": { | |
| "Ref": "KeyName" | |
| }, | |
| "InstanceType": { | |
| "Ref": "DockerInstanceType" | |
| }, | |
| "Tags": [ | |
| { | |
| "Key": "Name", | |
| "Value": { | |
| "Fn::Join": [ | |
| "-", | |
| [ | |
| "service-leader-1", | |
| { | |
| "Ref": "AWS::StackName" | |
| } | |
| ] | |
| ] | |
| } | |
| } | |
| ], | |
| "Monitoring": true, | |
| "SubnetId": { | |
| "Ref": "PriSubnet1" | |
| } | |
| } | |
| } | |
| }, |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment