Skip to content

Instantly share code, notes, and snippets.

@garyellis
garyellis / outputs.py
Created March 30, 2023 21:34
outputs python utility
import sys
import csv
import json
import yaml
import logging
import tabulate
logger = logging.getLogger(__name__)
---
Description: >-
Manage default VPCs in the specified regions.
Parameters:
State:
Description: The default VPC desired state
Type: String
# export AWS_SERIAL_NUMBER=<your-mfa-arn>
declare -A iam_roles
iam_roles[dev]="arn:aws:iam::<account>:role/<assume-role-name>"
iam_roles[qa]="arn:aws:iam::<account>:role/<assume-role-name>"
function _aws_sts_get_session_token(){
unset AWS_SESSION_TOKEN AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY
set -x
@garyellis
garyellis / jobseeder.yaml
Last active February 22, 2019 21:49
basic stress test rancher ui project pod retrieval
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: jobseeder
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: jobseeder
@garyellis
garyellis / ansible-node-report-output.json
Created June 24, 2018 17:07
ansible linux report development
[
{
"command": "uptime -s",
"name": "uptime_since",
"result": [
"2018-04-16 02:40:37"
]
},
{
"command": "hostname",
@garyellis
garyellis / secrets_env.py
Created April 6, 2018 07:42
POC decrypting gpg files into a temporary shell environment context
#!/usr/bin/env python
import gnupg
# from dotenv import dotenv_values
import sh
import shlex
import os
from pprint import pprint
@garyellis
garyellis / terra-py.py
Created April 6, 2018 03:44
POC of basic python terraform wrapper scripting
#!/usr/bin/env python
import sh
from sh import terraform, Command
go_getter = Command("go-getter")
from sh import ErrorReturnCode
import yaml
import logging
import re
import os
#!/usr/bin/env python
import json
import requests
url = 'https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonEC2/current/index.json'
resp = requests.get(url=url)
data = json.loads(resp.text)
hourlyTermCode = 'JRTCKXETXF'
rateCode = '6YS6EN2CT7'
products = data['products']
#!/usr/bin/env python
import csv
import os
import boto3
from botocore.exceptions import ClientError
from datetime import datetime, timedelta
import logging
import sys
#import aws_pricing_api
#!/bin/bash
function get_classic_elb_backend_counts(){
region=${2:-us-west-2}
aws --profile $1 --region $region elb describe-load-balancers | \
jq -r --arg profile "$1" --arg region "$region" '.LoadBalancerDescriptions[] | [$profile, $region, .LoadBalancerName, (.Instances|length)] | @csv'
}
function aws_regions(){
aws ec2 describe-regions | jq -r '.Regions[].RegionName'