Skip to content

Instantly share code, notes, and snippets.

@kballenegger
Last active October 22, 2015 01:34
Show Gist options
  • Save kballenegger/82e9c44b6bc3a4e54aa5 to your computer and use it in GitHub Desktop.
Save kballenegger/82e9c44b6bc3a4e54aa5 to your computer and use it in GitHub Desktop.
Cloud-config sample.
#cloud-config
# convert this file into json like this:
# cat file | ruby -ne 'puts " \"#{$_.gsub("\n","").gsub("\\","\\\\").gsub("\"","\\\"")}\\n\","'
coreos:
etcd:
discovery: https://discovery.etcd.io/...
# multi-region and multi-cloud deployments need to use $public_ipv4
addr: $private_ipv4:4001
peer-addr: $private_ipv4:7001
update:
reboot-strategy: best-effort
units:
- name: etcd.service
command: start
- name: fleet.service
command: start
- name: init.kballenegger.service
command: start
content: |
[Unit]
Description=Initial setup script
After=docker.service
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/root/init.kballenegger.sh
[Install]
WantedBy=multi-user.target
# write files
write_files:
- path: /root/.dockercfg
permissions: 0600
content: |
{"quay.io":{"auth":"...","email":""}}
- path: /root/.ssh/id_rsa
permissions: 0600
content: |
-----BEGIN RSA PRIVATE KEY-----
...
-----END RSA PRIVATE KEY-----
- path: /root/init.kballenegger.sh
permissions: 0700
content: |
#!/bin/bash
set -e
# clone repos
mkdir /repos
cd /repos
git clone git@github.com:kballenegger/kballenegger-services services
git clone git@github.com:kballenegger/kballenegger-api-internal api-internal
# delete init script
rm /root/init.kballenegger.sh
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment