mirror of
https://github.com/jpetazzo/container.training.git
synced 2026-07-21 05:49:40 +00:00
Add chaosmonkey script
This commit is contained in:
47
bin/chaosmonkey.sh
Executable file
47
bin/chaosmonkey.sh
Executable file
@@ -0,0 +1,47 @@
|
||||
#!/bin/sh
|
||||
|
||||
[ -z "$2" ] && {
|
||||
echo "Syntax: $0 <host> <command>"
|
||||
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 <<EOF
|
||||
_cm_init () {
|
||||
iptables -L CHAOSMONKEY 2>/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
|
||||
Reference in New Issue
Block a user