Skip to content

Instantly share code, notes, and snippets.

View rcbop's full-sized avatar

Rogerio Peixoto rcbop

  • Spain
View GitHub Profile
@rcbop
rcbop / create-users-report.sh
Created August 2, 2018 20:33
generate csv with IAM users, groups, access keys, login profile using aws cli and jq
#!/bin/bash
set -e
GRN="\033[0;32m"
NC="\033[0m"
generateUserEntry(){
# set -x
local username=$1
local groups=$2
local keys=$3
local web=$4
@rcbop
rcbop / install-oracle-instant-client.sh
Created July 31, 2018 13:20
oracle instant client npm module dependencie
#!/usr/bin/env bash
#/
#/ :: ORACLE INSTANT CLIENT INSTALL SCRIPT ::
#/
#/ Automate install instructions for
#/
#/ https://github.com/oracle/node-oracledb/blob/master/INSTALL.md#-6-node-oracledb-installation-on-macos-with-instant-client
#/
#/ WARNING:
#/ Download the sdk and basic instant client zip and place them in the same directory as this script
@rcbop
rcbop / jenkinsfile
Created July 30, 2018 17:51
bind ssh private key and use it in a jenkinsfile example
node('node-label'){
stage('Deploy') {
withCredentials([[$class: 'SSHUserPrivateKeyBinding', credentialsId: "1dc9ca1e-a461-40c2-8478-969c66bea0b6", keyFileVariable: 'SSH_PRIVATE_KEY', passphraseVariable: '', usernameVariable: 'SSH_USERNAME']]){
sh "ssh-agent /bin/bash"
sh """
eval \$(ssh-agent) && ssh-add ${SSH_PRIVATE_KEY} && ssh-add -l &&
ENVIRONMENT=${env.ENVIRONMENT} \
PLAYBOOK=${env.PLAYBOOK} \
BASTION_USER=${env.BASTION_USER} \
@rcbop
rcbop / instances-without-owner.sh
Created July 25, 2018 00:53
finds instances in ec2 without Owner label in all regions
#!/bin/bash
for region in $(aws ec2 describe-regions --output text | cut -f3); do
echo "REGIÃO -> $region"
aws ec2 describe-instances \
--query 'Reservations[].Instances[?!not_null(Tags[?Key == `Owner`].Value)].{PUBLICIP:PublicIpAddress,EC2ID:InstanceId,TYPE:InstanceType,STATE:State.Name,TAGS:Tags[*].{Key:Key,Value:Value}} | []' --region $region | jq '.'
done
@rcbop
rcbop / get-console-screenshot.sh
Created July 18, 2018 19:25
console screenshot
aws ec2 get-console-screenshot --instance-id ID --query "ImageData" --output text > f; cat f | base64 -D > console.jpg
@rcbop
rcbop / colors.sh
Created July 5, 2018 17:47
authorize ssh port 22 in aws ec2's security group before performing ansible deployment - requires jq, aws cli, ansible ec2.py dynamic inventory
#!/bin/bash
STEP=0
bump_step(){
STEP=$(($STEP+1))
log "${BLU}[INFO] ($STEP) $1${NC}"
}
log() { echo -e "${BWHT}["$(date "+%Y%m%d${NC}T${BWHT}%H%M%S")"]${NC} $*"; }
separator() { SEP=$(printf '%*s' 105 | tr ' ' '#') && log "${GRN}[INFO] $SEP${NC}"; }
@rcbop
rcbop / set-properties
Created June 19, 2018 19:47
handle properties file with bash using awk and sort
#!/bin/bash
#/ Define properties and sort them in a file
#/ Usage:
#/ set_property key value filename
#/ Alternative:
#/
#/ export PROPERTIES_FILE=myproperties
#/ set_property key value
#/ --------------------------------------------------------------------------------
#/ Author: Rogério Peixoto (rcbpeixoto@gmail.com)
@rcbop
rcbop / Dockerfile
Created June 14, 2018 00:51
ionic dockerfile and jenkins file for CI
FROM node:8-alpine
LABEL MAINTAINER="rcbpeixoto@gmail.com"
ARG NODEJS_VERSION="8"
ARG IONIC_VERSION="3.20.0"
ARG GRADLE_VERSION="3.2"
ARG ANDROID_SDK_VERSION="4333796"
ARG ANDROID_HOME="/opt/android-sdk"
ARG GRADLE_HOME="/opt/gradle"
@rcbop
rcbop / get-aws-region-ip-range-csv.sh
Created June 7, 2018 13:49
get amazon ip range for region and convert it to csv
curl -L https://ip-ranges.amazonaws.com/ip-ranges.json | jq '.prefixes[] | select(.region=="sa-east-1") ' | jq --slurp -r '. | map([.ip_prefix, .region, .service] | join(", ")) | join("\n")'
@rcbop
rcbop / brute-force-root.sh
Created June 4, 2018 14:16
bruteforce become ansible module, use as BECOME METHOD
#!/bin/bash
cmd=''
for i in "$@"; do
i="${i//\\/\\\\}"
cmd="$cmd \"${i//\"/\\\"}\""
done