Skip to content

Instantly share code, notes, and snippets.

@ajayhn
ajayhn / create-docker-registry
Created March 4, 2016 19:36
create-docker-registry
curl https://get.docker.com | bash -x
curl -L https://github.com/docker/compose/releases/download/1.6.2/docker-compose-$(uname -s)-$(uname -m) > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
mkdir -p certs && openssl req -newkey rsa:4096 -nodes -sha256 -keyout certs/domain.key -x509 -days 365 -out certs/domain.crt -subj "/C=US/ST=California/O=ENG/CN=$(hostname -f)"
# get hostname -f output from above
docker run -d -p 5000:5000 --restart=always --name registry -v $(pwd)/certs:/certs -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt -e REGISTRY_HTTP_TLS_KEY=/certs/domain.key registry:2
# To use this registry on all other docker engine
# mkdir -p /etc/docker/certs.d/<hostname-f-from-above>:5000
# copy certs/domain.crt /etc/docker/certs.d/<hostname-f-from-above>:5000
@ajayhn
ajayhn / automated-self-signed-cert
Last active March 4, 2016 19:16
automated-self-signed-cert
mkdir -p certs && openssl req -newkey rsa:4096 -nodes -sha256 -keyout certs/domain.key -x509 -days 365 -out certs/domain.crt -subj "/C=US/ST=California/O=ENG/CN=$(hostname -f)"
@ajayhn
ajayhn / service_instance_upgrade.py
Created February 18, 2016 02:07
si-upgrade-to-retain-nat-right-ip
import logging
import cgitb
import cStringIO
from vnc_api.vnc_api import *
class MigrateServices(object):
def __init__(self, args=None):
self.vnc_lib = VncApi('admin', '<password>', 'admin', '127.0.0.1', 8082)
@ajayhn
ajayhn / vm_display_name_upgrade.py
Created February 18, 2016 02:01
vm_display_name_upgrade.py
import logging
import cgitb
import cStringIO
from vnc_api.vnc_api import *
class MigrateServices(object):
def __init__(self, args=None):
self.vnc_lib = VncApi('admin', '<password>', 'admin', '127.0.0.1', 8082)
@ajayhn
ajayhn / db_in_json.py
Last active August 10, 2016 06:38
db_in_json.py
# e.g pycassaShell -H <db-node-ip> -f db_in_json.py | sed -e '1,/contents:/d' | python -m json.tool
from pprint import pprint
import json
import kazoo.client
db_contents = {'cassandra': {},
'zookeeper': {}}
cassandra_contents = db_contents['cassandra']
for ks_name in ['config_db_uuid',
@ajayhn
ajayhn / .bashrc
Created November 23, 2015 22:36
bashrc
# Allows you to use docker-compose-exec {service} {command} to run a command on the service
docker_compose_exec() {
docker exec -it $(docker-compose -f compose.yml -p $(basename $PWD) ps | grep $1 | awk '{print $1}') ${@:2}
}
alias docker-compose-exec=docker_compose_exec
@ajayhn
ajayhn / ip_dup_check_audit.py
Last active December 14, 2015 19:01
ip-dup-check-audit
import netaddr
import kazoo.client
from vnc_api import vnc_api
lib = vnc_api.VncApi()
zk = kazoo.client.KazooClient('localhost:2181')
zk.start()
def get_zk_node_path(vn_obj, ip_addr):
@ajayhn
ajayhn / db-json-exim.py
Last active December 6, 2016 19:19
db-json-exim
# Usage: python db-json-exim.py --import-from /import-data/db.json
import sys
reload(sys)
sys.setdefaultencoding('UTF8')
import logging
import argparse
import gzip
import json
import cgitb
import gevent
import os
from vnc_api import vnc_api
username = os.environ['OS_USERNAME']
password = os.environ['OS_PASSWORD']
tenant_name = os.environ['OS_TENANT_NAME']
lib = vnc_api.VncApi(
username=username, password=password, tenant_name=tenant_name)
for vn_obj in lib.virtual_networks_list(detail=True):
#!/usr/bin/python
# Example Usage:
# ./shell.py "ls /" quit
# ./shell.py "ls /project" quit
# ./shell.py "ls /project/default-domain:default-project" quit
# ./shell.py "ls /project/default-domain:default-project/virtual_networks" quit
# ./shell.py "cat /project/default-domain:default-project" quit
# ./shell.py "cat -p /project/default-domain:default-project" quit
# ./shell.py "cat /project/default-domain:admin/virtual_networks/default-domain:default-project:default-virtual-network" quit