Skip to content

Instantly share code, notes, and snippets.

View seventhskye's full-sized avatar

Seventh Skye Limited seventhskye

View GitHub Profile
@seventhskye
seventhskye / userdata.d.sh
Last active December 10, 2018 05:02
Userdata script to download and execute a set of bash scripts from Amazon S3. Useful if you wanted to have a predefined set of scripts to share amongst EC2 instance, e.g. userdata.
#!/bin/bash -x
# The bucket containing the userdata.d
export USERDATAD_BUCKET=userdata.example.com
# Required to set the endpoint of the aws-cli
export AWS_DEFAULT_REGION=eu-west-1
# Install Prerequisites
yum install -y aws-cli
# Download all .sh scripts from the bucket and pipe to bash
SCRIPTS=$(aws s3 ls s3://$USERDATAD_BUCKET/userdata.d/ | awk '{ print $4 }')
for S in $SCRIPTS; do
@seventhskye
seventhskye / Makefile
Created November 25, 2015 13:41
A Makefile for running an Infrastructure managed with Continuous Integration tools.
DATE = $(shell date)
release:
@echo "Enter commit message:"
@read REPLY; \
echo "${DATE} - $$REPLY" >> CHANGELOG; \
git add --all; \
git commit -m "$$REPLY"; \
git push
@seventhskye
seventhskye / docker-registry.yml
Created October 29, 2015 11:53
Basic config.yml for an s3 backed v2 docker registry.
version: 0.1
log:
fields:
service: registry
http:
addr: :5000
headers:
X-Content-Type-Options: [nosniff]
storage:
cache:
@seventhskye
seventhskye / create_ssl_cert.sh
Last active March 7, 2016 14:20
Script to create an SSL certificate.
#!/bin/bash
if [ $# -eq 0 ]; then
echo "Usage: $0 <CERT_NAME>"
echo "e.g. $0 example.com"
else
openssl genrsa -des3 -passout pass:x -out $1.pass.key 2048
openssl rsa -passin pass:x -in $1.pass.key -out $1.key
rm $1.pass.key
openssl req -new -key $1.key -out $1.csr
openssl x509 -req -days 365 -in $1.csr -signkey $1.key -out $1.crt
@seventhskye
seventhskye / grep_out_blanks.sh
Last active October 19, 2015 14:38
Grep out all commented and blank lines.
#!/bin/bash
grep -v '^$\|^\s*\#' $1
@seventhskye
seventhskye / register_deregister_userdata.json
Last active October 6, 2015 13:52
Userdata snippet to add register and deregister commands to an ubuntu instance in aws
"cat << EOF > /etc/init.d/register_with_elb\n",
"#!/bin/bash\n",
"aws elb register-instances-with-load-balancer --load-balancer-name ",
{
"Ref": "LoadBalancerName"
},
" --instances $(wget -q -O- http://169.254.169.254/latest/meta-data/instance-id) --region ",
{
"Ref": "AWS::Region"
},
@seventhskye
seventhskye / register_or_deregister_with_elb
Last active October 6, 2015 10:47
A short script to register or deregister an instance with an Elastic Load-balancer. Will require IAM permissions and is assumed to be run from the instance.
#!/bin/bash
if [ $# -eq 0 ]; then
echo "Usage: $0 register|deregister <LOAD_BALANCER_NAME>"
echo "e.g. $0 register load-balancer-name"
else
INSTANCE_ID=$(wget -q -O- http://169.254.169.254/latest/meta-data/instance-id)
REGION=$(wget -q -O- http://169.254.169.254/latest/meta-data/placement/availability-zone | sed -e 's/\([1-9]\).$/\1/g')
if [ "$1" == "deregister" ]; then
aws elb $1-instances-from-load-balancer \
--load-balancer-name $2 \
@seventhskye
seventhskye / instance_id.sh
Created October 6, 2015 08:54
A script to find the instance-id and region from the metadata of an Amazon based instance.
#!/bin/bash
# Get Instance Details
INSTANCE_ID=$(wget -q -O- http://169.254.169.254/latest/meta-data/instance-id)
REGION=$(wget -q -O- http://169.254.169.254/latest/meta-data/placement/availability-zone | sed -e 's/\([1-9]\).$/\1/g')
@seventhskye
seventhskye / create_ssl_cert.sh
Created September 30, 2015 11:54
Quick script to generate a self signed certificate. See https://en.wikipedia.org/wiki/Certificate_signing_request for details of the CSR parameters.
#!/bin/bash
if [ $# -eq 0 ]; then
echo "Usage: $0 <CERT_NAME>"
echo "e.g. $0 example.com"
else
openssl genrsa -des3 -passout pass:x -out $1.pass.key 2048
openssl rsa -passin pass:x -in $1.pass.key -out $1.key
rm $1.pass.key
openssl req -new -key $1.key -out $1.csr
fi
@seventhskye
seventhskye / create_image.sh
Created September 10, 2015 09:57
Bash wrapper to create an Amazon Machine Image when logged into an instance. The IAM profile or keys must have the statement specified.
#!/bin/bash
# "Statement": [
# {
# "Effect": "Allow",
# "Action": [
# "ec2:CreateImage",
# "ec2:RegisterImage"
# ],
# "Resource": "*"
# }