Skip to content

Instantly share code, notes, and snippets.

View burdandrei's full-sized avatar
👻

Andrei Burd burdandrei

👻
View GitHub Profile
@burdandrei
burdandrei / ECS_Consul_UserData.sh
Last active March 15, 2016 15:41
User data for starting consul on node start
#!/bin/bash
#
# Bring ECS Agent config and start consul
DC=$(curl -s http://169.254.169.254/latest/meta-data/placement/availability-zone/ | rev | cut -c 2- | rev)
ADVERTISE_IP=$(curl -s http://169.254.169.254/latest/meta-data/local-ipv4)
ECS_CLUSTER='example'
yum install -y aws-cli
aws s3 cp s3://ops-yotpo/docker/ecs/ecs.config /etc/ecs/ecs.config
@burdandrei
burdandrei / nameservers.rb
Created January 25, 2016 17:16
Ohai dns(nameserves) Plugin
require 'json'
Ohai.plugin(:Nameservers) do
provides "network/nameservers"
depends "network"
collect_data do
Ohai::Log.debug('Parsing resolv.conf for nameservers.')
nameservers = []
@burdandrei
burdandrei / lambda_scale_ecs_service.js
Created January 20, 2016 10:40
Template for Lambda ECS scale
console.log('Loading event');
var aws = require('aws-sdk');
exports.handler = function(event, context) {
var ecsService = 'sample-webapp';
var ecsCluster = 'sample-cluster';
var ecsRegion = 'us-west-2';
var maxCount = 2;
var ecs = new aws.ECS({region: ecsRegion});
@burdandrei
burdandrei / travis-cache-docker.yml
Last active December 21, 2015 15:01
Template for travis.yml with docker cache between the builds
sudo: required
dist: trusty
services:
- docker
cache:
- directories:
- /var/tmp/docker
@burdandrei
burdandrei / Predeploy_Instance_Count_Adjust.sh
Created November 27, 2015 18:31
Sometimes you want to double the number of instances they to receive the new version, and then Autoscaling to hande the magic
#!/usr/bin/env bash
#
# Double the instance count for widget ASG
# Required ENV Variables
# * ELB_NAME
# * ASG_NAME
#
asg_check() {
local pending_instance_count=$(aws autoscaling describe-auto-scaling-groups \
@burdandrei
burdandrei / UnregisterResqueWorkersByHostname.rb
Created November 25, 2015 11:06
Clear stuck/stale Resque workers?
hostname = ''
Resque.workers.each { |w| w.unregister_worker if w.id.start_with?(hostname) }
@burdandrei
burdandrei / CloudSearchExport.rb
Created November 17, 2015 15:02
Export all your data from CloudSearch and be free!
#!/usr/bin/env ruby
#
# Cloudsearch export script
#
# Required ENV Variables
# * AWS_ACCESS_KEY_ID
# * AWS_SECRET_ACCESS_KEY
# * CS_SEARCH_ENDPOINT
# * OUT_FILENAME
#
@burdandrei
burdandrei / ec2ssh.sh
Last active August 10, 2016 06:52
Connect to aws instances in cluster/single mode with filters from command line
#!/usr/bin/env bash
#
# Wrapper for CSSH running instances by tag
usage(){
cat << EOF >&2
usage: $0 options
This script Gathers instances from AWS and runs ClusterSSH to them
@burdandrei
burdandrei / ssh_tunnel.sh
Created June 24, 2015 08:21
Example of forwarding remote port to localhost (Connecting to DB behind the firewall through the SSH Tunnel)
#!/usr/bin/env bash
REMOTE_HOST=ip-10-2-10-197.ec2.internal # Related to PROXY_HOST
REMOTE_PORT=27017
LOCAL_PORT=27017
PROXY_HOST=ec2-55-210-99-165.compute-1.amazonaws.com
ssh -f -L ${LOCAL_PORT}:${REMOTE_HOST}:${REMOTE_PORT} $PROXY_HOST -N
@burdandrei
burdandrei / random_cowsay.sh
Last active August 29, 2015 14:22
Finish your scripts with Fun success output
#!/usr/bin/env bash
random_cowsay() {
local INPUT=$*
echo $INPUT | cowsay -f $(ls /usr/share/cowsay/cows/ | shuf -n1)
}