Skip to content

Instantly share code, notes, and snippets.

View keithchambers's full-sized avatar

Keith Chambers keithchambers

  • ModelOp
  • Seattle, WA
View GitHub Profile
@keithchambers
keithchambers / delete-kmods.sh
Last active November 22, 2016 14:07
delete-kmods.sh
#!/bin/bash
# requires root effective permissions
if [[ "$(id -u)" -ne 0 ]]; then
echo "Error: $0 must execute as root."
exit 1
fi
# create list of active kernel modules
lsmod | awk '$3 > 0 && NR > 1 {print $1}' > module.lst
---
- name: check if avahi installed
command: rpm -q avahi
register: avahi_service
changed_when: no
failed_when: no
tags:
- dnsmasq
- name: disable avahi-daemon
PS1="\[\033[01;32m\]\u@\h\[\033[00m\] \[\033[01;34m\]\w\n$ \[\033[00m\]"
@keithchambers
keithchambers / gist:9dcec59b43f119b565e1
Created January 22, 2015 04:18
Consul exec output filtering
consul exec whoami | awk '$1 != "==>" && $2 { sub(/^[ \t]+/, ""); print }'
@keithchambers
keithchambers / gist:cfca81f0f7936a45a9d1
Created January 9, 2015 06:50
Get OpenStack instances with specific image prefix
#!/bin/bash
PREFIX="centos"
STATUS="ACTIVE"
INSTANCES="$(nova list | awk -v status="$STATUS" '$6 == status { print $4 }')"
for INSTANCE in $INSTANCES; do
IMAGE="$(nova show "$INSTANCE" | awk -v prefix=$PREFIX '$2 == "image" && $4 ~ "^"prefix { print $4 }')"
echo "$INSTANCE" "$IMAGE"
done
@keithchambers
keithchambers / gist:81f03136c6ed02b3c926
Created January 4, 2015 21:31
Count docker containers in bash
docker ps | awk '$1 != "CONTAINER" { n++ }; END { print n+0 }'
@keithchambers
keithchambers / gist:80b60559ad83cebf1672
Last active October 21, 2021 01:12
Ansible role to set 'noop' i/o scheduler (CentOS 7)
---
- name: test if grub configured for noop i/o scheduler
command: egrep -q 'elevator=noop' /boot/grub2/grub.cfg
register: grub
changed_when: no
failed_when: grub_test.rc == 2
- name: configure grub for noop i/o scheduler
sudo: yes
command: grubby --update-kernel=ALL --args=elevator=noop
@keithchambers
keithchambers / gist:c288bb62ac055b14a2d1
Created January 4, 2015 00:49
Ansible role for cloud benchmark tools (CentOS 7)
---
- name: setup epel-release repo
sudo: yes
yum:
name: epel-release
state: present
- name: install fio package
sudo: yes
yum:
@keithchambers
keithchambers / disk-iostat.sh
Last active August 29, 2015 14:12
collectd iostat write plugin in bash
#/bin/bash
set -eo pipefail
HOSTNAME="${COLLECTD_HOSTNAME:-"$(hostname -s)"}"
INTERVAL="${COLLECTD_INTERVAL:-10}"
iostat -xky "$INTERVAL" | awk -v hostname="$HOSTNAME" -v interval="$INTERVAL" '/^([shv]|xv)d[a-z]$/ {
print "PUTVAL " hostname "/disk-" $1 "/read_reqs_merged_sec" " interval=" interval " N:" $2;
print "PUTVAL " hostname "/disk-" $1 "/write_reqs_merged_sec" " interval=" interval " N:" $3;
print "PUTVAL " hostname "/disk-" $1 "/read_reqs_sec" " interval=" interval " N:" $4;
@keithchambers
keithchambers / gist:b1a4f0ed26ce0065857d
Last active August 29, 2015 14:12
Consul: env variables to config
#!/bin/bash
set -eo pipefail
VERIFY_INCOMING="${VERIFY_INCOMING:-true}"
VERIFY_OUTGOING="${VERIFY_OUTGOING:-true}"
# check all required environment variables set
VARS=(CA_FILE KEY_FILE CERT_FILE)
for VAR in "$VARS"; do
[[ -n "$VAR" ]] && echo "Error: $VAR is not set" && RETVAL=1