From 4b6b43530dcf3124e1b6a8dac1bf548624b84d19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Petazzoni?= Date: Mon, 28 Mar 2016 12:58:11 +0000 Subject: [PATCH] Add chaosmonkey script --- bin/chaosmonkey.sh | 47 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100755 bin/chaosmonkey.sh diff --git a/bin/chaosmonkey.sh b/bin/chaosmonkey.sh new file mode 100755 index 00000000..9b379587 --- /dev/null +++ b/bin/chaosmonkey.sh @@ -0,0 +1,47 @@ +#!/bin/sh + +[ -z "$2" ] && { + echo "Syntax: $0 " + echo " +Command should be: + connect Cancels the effects of 'disconnect' + disconnect Disable all network communication except SSH + reboot Sync disks and immediately reboot (without proper shutdown) +" + exit 1 +} + +ssh docker@$1 sudo sh </dev/null || { + iptables -N CHAOSMONKEY + iptables -I FORWARD -j CHAOSMONKEY + iptables -I INPUT -j CHAOSMONKEY + iptables -I OUTPUT -j CHAOSMONKEY + } +} + +_cm_reboot () { + echo "Rebooting..." + echo s > /proc/sysrq-trigger + echo u > /proc/sysrq-trigger + echo b > /proc/sysrq-trigger +} + +_cm_disconnect () { + _cm_init + echo "Dropping all network traffic, except SSH..." + iptables -F CHAOSMONKEY + iptables -A CHAOSMONKEY -p tcp --sport 22 -j ACCEPT + iptables -A CHAOSMONKEY -p tcp --dport 22 -j ACCEPT + iptables -A CHAOSMONKEY -j DROP +} + +_cm_connect () { + _cm_init + echo "Re-enabling network communication..." + iptables -F CHAOSMONKEY +} + +_cm_$2 +EOF