diff options
author | root <root@krebs> | 2011-06-29 21:06:26 +0200 |
---|---|---|
committer | root <root@krebs> | 2011-06-29 21:06:26 +0200 |
commit | dbad0afe8d4da3577c0fa5842ebcd6e4dac91525 (patch) | |
tree | 197369698f1ab0d2c428df0288d6995a1d40e9dd | |
parent | 2a58f1af8074963ccbeec13a10811fefe2ceb113 (diff) | |
parent | 8f900fff02ac22ba87c35e6745af11c0b8d98855 (diff) |
Merge branch 'master' of github.com:/krebscode/painload
-rw-r--r-- | Monitoring/Makefile | 8 | ||||
-rw-r--r-- | Monitoring/conf/extinfo.cfg | 9 | ||||
-rw-r--r-- | Monitoring/conf/hostgroups_generic.cfg (renamed from Monitoring/conf/hostgroups_nagios2.cfg) | 19 | ||||
-rw-r--r-- | Monitoring/conf/services.cfg | 26 | ||||
-rw-r--r-- | Monitoring/conf/shack_contacts.cfg | 22 | ||||
-rw-r--r-- | Monitoring/conf/shack_guests.cfg | 50 | ||||
-rw-r--r-- | Monitoring/conf/shack_infrastructure.cfg | 41 | ||||
-rw-r--r-- | Monitoring/conf/templates.cfg | 45 | ||||
-rw-r--r-- | Monitoring/conf/timeperiods.cfg | 50 | ||||
-rw-r--r-- | btcguild/index.js | 20 | ||||
-rw-r--r-- | cobra/README | 33 | ||||
-rw-r--r-- | cobra/hello/index.sh | 1 | ||||
-rwxr-xr-x | cobra/index.sh | 16 | ||||
-rw-r--r-- | mining/CONFIGURE | 5 | ||||
-rw-r--r-- | mining/Makefile | 18 | ||||
-rw-r--r-- | mining/README | 9 | ||||
-rw-r--r-- | mining/user/.config/autostart/startup.desktop | 6 | ||||
-rwxr-xr-x | mining/user/bin/ati_temper | 5 | ||||
-rw-r--r-- | mining/user/mining.ovdr | 16 | ||||
-rw-r--r-- | mining/user/startup.sh | 16 | ||||
-rw-r--r-- | node/Makefile | 26 | ||||
-rwxr-xr-x | retiolum/bin/install | 18 | ||||
-rw-r--r-- | temper/Makefile | 3 |
23 files changed, 422 insertions, 40 deletions
diff --git a/Monitoring/Makefile b/Monitoring/Makefile index a42707e3..72269101 100644 --- a/Monitoring/Makefile +++ b/Monitoring/Makefile @@ -5,13 +5,17 @@ HTDOCS = /usr/share/nagios3/htdocs .phony: debian debian: [ `which nagios3` ] || apt-get install nagios3 - rm $(NAGDIR)/conf.d/localhost_nagios2.cfg || true - rm $(NAGDIR)/conf.d/host-gateway_nagios3.cfg || true + rm $(NAGDIR)/conf.d/* || true cp -r conf/* $(NAGDIR)/conf.d/ htpasswd -bc htpasswd.users nagiosadmin krebs htpasswd -b htpasswd.users shack shackit sed -i 's/\(authorized_for_all_hosts=nagiosadmin\)$$/\1,shack/' $(NAGDIR)/cgi.cfg + sed -i 's/\(check_external_commands=\)0$$/\11/' $(NAGDIR)/nagios.cfg sed -i 's/\(authorized_for_all_services=nagiosadmin\)$$/\1,shack/' $(NAGDIR)/cgi.cfg cp -R htdocs/* $(HTDOCS) cp -r plugins $(NAGLIBDIR) /etc/init.d/nagios3 reload + chown nagios:www-data /var/lib/nagios3 || true + chown nagios:www-data /var/lib/nagios3/rw || true + chmod g+x /var/lib/nagios3 || true + chmod ug=rwx /var/lib/nagios3/rw/nagios.cmd || true diff --git a/Monitoring/conf/extinfo.cfg b/Monitoring/conf/extinfo.cfg new file mode 100644 index 00000000..e4300b72 --- /dev/null +++ b/Monitoring/conf/extinfo.cfg @@ -0,0 +1,9 @@ +define hostextinfo{ + hostgroup_name debian-servers + notes Debian GNU/Linux servers +# notes_url http://webserver.localhost.localdomain/hostinfo.pl?host=netware1 + icon_image base/debian.png + icon_image_alt Debian GNU/Linux + vrml_image debian.png + statusmap_image base/debian.gd2 + } diff --git a/Monitoring/conf/hostgroups_nagios2.cfg b/Monitoring/conf/hostgroups_generic.cfg index 63acbf50..4e3625c5 100644 --- a/Monitoring/conf/hostgroups_nagios2.cfg +++ b/Monitoring/conf/hostgroups_generic.cfg @@ -1,31 +1,28 @@ -# Some generic hostgroup definitions - # A simple wildcard hostgroup define hostgroup { hostgroup_name all - alias All Servers - members * + alias All Servers + members * } # A list of your Debian GNU/Linux servers define hostgroup { hostgroup_name debian-servers - alias Debian GNU/Linux Servers - members localhost + alias Debian GNU/Linux Servers + members localhost } # A list of your web servers define hostgroup { hostgroup_name http-servers - alias HTTP servers - members localhost + alias HTTP servers + members localhost } # A list of your ssh-accessible servers define hostgroup { hostgroup_name ssh-servers - alias SSH servers - members localhost + alias SSH servers + members localhost } - diff --git a/Monitoring/conf/services.cfg b/Monitoring/conf/services.cfg new file mode 100644 index 00000000..e3a61eb0 --- /dev/null +++ b/Monitoring/conf/services.cfg @@ -0,0 +1,26 @@ +# check that web services are running +define service { + hostgroup_name http-servers + service_description HTTP + check_command check_http + use generic-service + notification_interval 0 ; set > 0 if you want to be renotified +} + +# check that ssh services are running +define service { + hostgroup_name ssh-servers + service_description SSH + check_command check_ssh + use generic-service + notification_interval 0 ; set > 0 if you want to be renotified +} + +# check that ping-only hosts are up +define service { +# hostgroup_name ping-servers + service_description PING + check_command check_ping!100.0,20%!500.0,60% + use generic-service + notification_interval 0 ; set > 0 if you want to be renotified +} diff --git a/Monitoring/conf/shack_contacts.cfg b/Monitoring/conf/shack_contacts.cfg new file mode 100644 index 00000000..832a215e --- /dev/null +++ b/Monitoring/conf/shack_contacts.cfg @@ -0,0 +1,22 @@ +define contact{ + contact_name makefu + alias makefu + service_notification_period 24x7 + host_notification_period 24x7 + service_notification_options w,u,c,r + host_notification_options d,u,r + service_notification_commands notify-service-by-email + host_notification_commands notify-host-by-email + email shack_nagios_notification@syntax-fehler.de + } +define contactgroup{ + contactgroup_name krebsminers + alias Krebsminers + members makefu + } + +define contactgroup{ + contactgroup_name admins + alias admins + } + diff --git a/Monitoring/conf/shack_guests.cfg b/Monitoring/conf/shack_guests.cfg index 75e92f17..45617461 100644 --- a/Monitoring/conf/shack_guests.cfg +++ b/Monitoring/conf/shack_guests.cfg @@ -6,31 +6,61 @@ define host{ host_name gauda0 parents shack-serverswitch alias Gauda0 Bitcoin Mining Rig 0 - address 10.42.1.16 + address 10.42.0.99 hostgroups bitcoin-miner } define host{ use generic-host host_name gauda1 - parents shack-serverswitch - alias Gauda0 Bitcoin Mining Rig 1 - address 10.42.1.20 + parents shack-serverswitch2 + alias Gauda1 Bitcoin Mining Rig 1 + address 10.42.0.98 hostgroups bitcoin-miner } define host{ use generic-host host_name gauda2 - parents shack-serverswitch - alias Gauda0 Bitcoin Mining Rig 2 - address 10.42.1.17 + parents shack-serverswitch2 + alias Gauda2 Bitcoin Mining Rig 2 + address 10.42.0.97 hostgroups bitcoin-miner } define host{ use generic-host - host_name SaschaPC + host_name chinaman + parents shack-serverswitch2 + alias Chinaman Bitcoin Mining Rig + address 10.42.0.96 + _TINC_ADDRESS 10.7.7.6 + hostgroups bitcoin-miner,tinc-nodes,ssh-servers + contact_groups krebsminers + } + +define host{ + use generic-host + host_name Sascha privater Server parents shack-serverswitch - alias Saschas Bitcoin Miner + alias Sascha Server address 10.42.23.100 - hostgroups bitcoin-miner + #hostgroups bitcoin-miner + } + +define host{ + use generic-host + host_name Telefonzelle + parents shack-coreswitch + alias Telefonzelle + address 10.42.23.101 + #hostgroups bitcoin-miner + } + +define host{ + use generic-host + host_name shack-pnp + alias Shack Bestueckungsautomat + address 10.42.100.5 + parents shack-coreswitch + #hostgroups shack-rz } + diff --git a/Monitoring/conf/shack_infrastructure.cfg b/Monitoring/conf/shack_infrastructure.cfg index 78c220b1..f404f3e4 100644 --- a/Monitoring/conf/shack_infrastructure.cfg +++ b/Monitoring/conf/shack_infrastructure.cfg @@ -63,6 +63,32 @@ define host{ address 10.0.10.2 hostgroups shack-rz } +# +# Serverswitch 2 +# +define host{ + use generic-host + host_name shack-serverswitch2 + parents shack-serverswitch + alias Shack switch Rack 2 (cisco 3524) + address 10.42.0.5 + hostgroups shack-rz + } + +define service { + host_name shack-serverswitch2 + service_description Telnet + use generic-service + check_command check_telnet + } + +define service { + host_name shack-serverswitch2 + service_description Admin HTTP Terminal + use generic-service + check_command check_http + } + define service { host_name shack-gw @@ -88,14 +114,6 @@ define host{ define host{ use generic-host - host_name shack-wlan-ap1 - parents shack-coreswitch - alias Shack Wlan Access Point 1 - address 10.42.0.5 - hostgroups wlan-ap - } -define host{ - use generic-host host_name shack-wlan-ap2 parents shack-coreswitch alias Shack Wlan Access Point 2 @@ -145,10 +163,6 @@ define service{ check_command check_sip } - - - - # # Shack DNS Server # @@ -222,3 +236,6 @@ define service { check_command check_ldap!shammunity } +# +# Random stuff (not necessary located in RZ) +# diff --git a/Monitoring/conf/templates.cfg b/Monitoring/conf/templates.cfg new file mode 100644 index 00000000..41807e1c --- /dev/null +++ b/Monitoring/conf/templates.cfg @@ -0,0 +1,45 @@ +# generic service template definition +define service{ + name generic-service ; The 'name' of this service template + active_checks_enabled 1 ; Active service checks are enabled + passive_checks_enabled 1 ; Passive service checks are enabled/accepted + parallelize_check 1 ; Active service checks should be parallelized (disabling this can lead to major performance problems) + obsess_over_service 1 ; We should obsess over this service (if necessary) + check_freshness 0 ; Default is to NOT check service 'freshness' + notifications_enabled 1 ; Service notifications are enabled + event_handler_enabled 1 ; Service event handler is enabled + flap_detection_enabled 1 ; Flap detection is enabled + failure_prediction_enabled 1 ; Failure prediction is enabled + process_perf_data 1 ; Process performance data + retain_status_information 1 ; Retain status information across program restarts + retain_nonstatus_information 1 ; Retain non-status information across program restarts + notification_interval 0 ; Only send notifications on status change by default. + is_volatile 0 + check_period 24x7 + normal_check_interval 5 + retry_check_interval 1 + max_check_attempts 4 + notification_period 24x7 + notification_options w,u,c,r + contact_groups admins + register 0 ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL SERVICE, JUST A TEMPLATE! + } +# Generic host definition template - This is NOT a real host, just a template! + +define host{ + name generic-host ; The name of this host template + notifications_enabled 1 ; Host notifications are enabled + event_handler_enabled 1 ; Host event handler is enabled + flap_detection_enabled 1 ; Flap detection is enabled + failure_prediction_enabled 1 ; Failure prediction is enabled + process_perf_data 1 ; Process performance data + retain_status_information 1 ; Retain status information across program restarts + retain_nonstatus_information 1 ; Retain non-status information across program restarts + check_command check-host-alive + max_check_attempts 10 + notification_interval 0 + notification_period 24x7 + notification_options d,u,r + contact_groups admins + register 0 ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL HOST, JUST A TEMPLATE! + } diff --git a/Monitoring/conf/timeperiods.cfg b/Monitoring/conf/timeperiods.cfg new file mode 100644 index 00000000..55ecf9df --- /dev/null +++ b/Monitoring/conf/timeperiods.cfg @@ -0,0 +1,50 @@ +############################################################################### +# timeperiods.cfg +############################################################################### + +# This defines a timeperiod where all times are valid for checks, +# notifications, etc. The classic "24x7" support nightmare. :-) + +define timeperiod{ + timeperiod_name 24x7 + alias 24 Hours A Day, 7 Days A Week + sunday 00:00-24:00 + monday 00:00-24:00 + tuesday 00:00-24:00 + wednesday 00:00-24:00 + thursday 00:00-24:00 + friday 00:00-24:00 + saturday 00:00-24:00 + } + +# Here is a slightly friendlier period during work hours +define timeperiod{ + timeperiod_name workhours + alias Standard Work Hours + monday 09:00-17:00 + tuesday 09:00-17:00 + wednesday 09:00-17:00 + thursday 09:00-17:00 + friday 09:00-17:00 + } + +# The complement of workhours +define timeperiod{ + timeperiod_name nonworkhours + alias Non-Work Hours + sunday 00:00-24:00 + monday 00:00-09:00,17:00-24:00 + tuesday 00:00-09:00,17:00-24:00 + wednesday 00:00-09:00,17:00-24:00 + thursday 00:00-09:00,17:00-24:00 + friday 00:00-09:00,17:00-24:00 + saturday 00:00-24:00 + } + +# This one is a favorite: never :) +define timeperiod{ + timeperiod_name never + alias Never + } + +# end of file diff --git a/btcguild/index.js b/btcguild/index.js new file mode 100644 index 00000000..1f33db06 --- /dev/null +++ b/btcguild/index.js @@ -0,0 +1,20 @@ +api_key = process.env.api_key; + +var options = { + host: 'www.btcguild.com', + port: 80, + path: '/api.php?api_key=' + api_key +}; + +http = require('http'); +http.get(options, function(res) { + var data = ''; + res.on('data', function (chunk) { + data += chunk; + }); + res.on('end', function () { + console.log(JSON.parse(data)); + }); +}).on('error', function(e) { + console.error('Error: ' + e.message); +}); diff --git a/cobra/README b/cobra/README new file mode 100644 index 00000000..145ecd14 --- /dev/null +++ b/cobra/README @@ -0,0 +1,33 @@ + +# usage +cobra [target...] + +# description +cobra tries to satisfies all specified targets and all of it dependencies. + +# targets +targets can be a lot of different things, e.g. directories + +## dirctory targets +try to do the right thing when the cobra search path contains a directory +that contains an index.{js,sh,py,etc.} file. + +## cobra search path +like your sh's PATH + +## example: cobra as some kind of make +$ echo $COBRA_PATH +. +$ ls . +foo/ bar/ baz/ +$ cat foo/cobra.json +{ "deps": "bar", "baz" } +$ cat bar/cobra.json +No such file or directory +$ cat baz/cobra.json +No such file or directory +$ cobra foo +[cobra bar] +[cobra baz] +[cobra foo] +$ exit diff --git a/cobra/hello/index.sh b/cobra/hello/index.sh new file mode 100644 index 00000000..df2dea7c --- /dev/null +++ b/cobra/hello/index.sh @@ -0,0 +1 @@ +echo 'Hello, world!' diff --git a/cobra/index.sh b/cobra/index.sh new file mode 100755 index 00000000..1118a823 --- /dev/null +++ b/cobra/index.sh @@ -0,0 +1,16 @@ +#! /bin/sh +set -euf +trap "echo 'You are made of stupid!' >&2; exit 23" EXIT + +COBRA_PATH="${COBRA_PATH-$PWD}" + +## main +for target; do + for path in $COBRA_PATH; do + if test -d "$path/$target"; then + if index="$path/$target/index.sh" && test -f "$index"; then + exec /bin/sh "$index" + fi + fi + done +done diff --git a/mining/CONFIGURE b/mining/CONFIGURE new file mode 100644 index 00000000..6ddce386 --- /dev/null +++ b/mining/CONFIGURE @@ -0,0 +1,5 @@ +How to Configure +=============== + +1. change the mining-url in ~/startup.sh +2. sudo /etc/init.d/gdm restart diff --git a/mining/Makefile b/mining/Makefile new file mode 100644 index 00000000..0fab7b1f --- /dev/null +++ b/mining/Makefile @@ -0,0 +1,18 @@ +.PHONY: all format install +select-target: + @echo "You are made of stupid!" + echo "look here" + @cat Makefile +format: + cat README +install: + apt-get install --yes lm-sensors + echo '#!/bin/bash' > /usr/bin/ati_license + echo '#!/bin/sh' > /etc/init.d/live-boot + echo 'wall "going down"' >> /etc/init.d/live-boot + chmod 755 /etc/init.d/live-boot + echo 'sudo tar xvf /opt/AMD-APP-SDK-v2.4-lnx64/icd-registration.tgz -C /' >> /usr/bin/ati_license + cp -r user /home +configure: + sensors-detect + @cat CONFIGURE diff --git a/mining/README b/mining/README new file mode 100644 index 00000000..ad8c3468 --- /dev/null +++ b/mining/README @@ -0,0 +1,9 @@ +What to do: +format the usb-stick: +Device Boot Start End Blocks Id System +/dev/sda1 * 1 254 976345 c W95 FAT32 (LBA) +/dev/sda2 255 1017 2932972 83 Linux + +1. install coinlinux live system on sda1. +2. mkfs.ext3 /dev/sda2 -L live-rw +3. install grub on /dev/sda diff --git a/mining/user/.config/autostart/startup.desktop b/mining/user/.config/autostart/startup.desktop new file mode 100644 index 00000000..67c35ef8 --- /dev/null +++ b/mining/user/.config/autostart/startup.desktop @@ -0,0 +1,6 @@ +[Desktop Entry] +Name=LXDE Autostart +Exec=/home/user/startup.sh +Terminal=true +Type=Application +Categories=Configuration diff --git a/mining/user/bin/ati_temper b/mining/user/bin/ati_temper new file mode 100755 index 00000000..283a6024 --- /dev/null +++ b/mining/user/bin/ati_temper @@ -0,0 +1,5 @@ +#displays: CARD1TEMP CARD2TEMP CPUTEMP OUTSIDE +echo -n "`DISPLAY=:0 aticonfig --adapter=1 --od-gettemperature | grep Temperature | sed -n 's/.*Temperature - \([0-9.]*\) C/\1/;p'` " +echo -n "`DISPLAY=:0 aticonfig --adapter=2 --od-gettemperature | grep Temperature | sed -n 's/.*Temperature - \([0-9.]*\) C/\1/;p'` " +echo -n "`sensors | grep temp1 | sed -e 's/temp1: *+\([0-9.]*\).*/\1/'` " +echo "`temper`" diff --git a/mining/user/mining.ovdr b/mining/user/mining.ovdr new file mode 100644 index 00000000..d6cf6fec --- /dev/null +++ b/mining/user/mining.ovdr @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="utf-8"?> +<OVERDRIVE_PROFILE> + <PERFORMANCE_LEVEL level="2" gpu="90000" mem="30000" voltage="1040"/> + <PERFORMANCE_LEVEL level="1" gpu="55000" mem="30000" voltage="1000"/> + <PERFORMANCE_LEVEL level="0" gpu="15700" mem="30000" voltage="950"/> + <FAN_SETTING percentage="AUTO"/> + <FAN_CTRL enabled="yes"/> + <FAN_CTRL_CURVE type="0"/> + <FAN_CTRL_POINT nr="0" temperature="2000" percentage="0"/> + <FAN_CTRL_POINT nr="1" temperature="3400" percentage="9300"/> + <FAN_CTRL_POINT nr="2" temperature="4800" percentage="10000"/> + <FAN_CTRL_POINT nr="3" temperature="7000" percentage="10100"/> + <FAN_CTRL_POINT nr="4" temperature="10000" percentage="10100"/> + <MONITOR_SAMPLE_TIME interval="10"/> + <COLOR_PROFILE enabled="no" longitude="-13.000000" latitude="52.000000" color_temp_day="0" color_temp_night="0" transition="30"/> +</OVERDRIVE_PROFILE> diff --git a/mining/user/startup.sh b/mining/user/startup.sh new file mode 100644 index 00000000..eb2ce13a --- /dev/null +++ b/mining/user/startup.sh @@ -0,0 +1,16 @@ +sudo pkill xscreensaver +sudo pkill tmux +sleep 1 +export DISPLAY=:0 + +export URL="${URL-http://txgen_chinaman:lolwut@uk.btcguild.com:8332}" +#export URL="http://txgen:qJrXefWX@bitcoinpool.com:8334" +slock & +tmux start-server +tmux new-session -d -s mining -n mining +printenv > /home/user/environment +tmux new-window -t mining:1 'AMDOverdriveCtrl -i 0 mining.ovdr' +tmux new-window -t mining:2 'AMDOverdriveCtrl -i 3 mining.ovdr' +sleep 5 +tmux new-window -t mining:3 "cd /opt/miners/phoenix; while sleep 1; do sudo python phoenix.py -u $URL -k phatk DEVICE=0 VECTORS BFI_INT WORKSIZE=256 AGGRESSION=12 FASTLOOPS=false;done" +tmux new-window -t mining:4 "cd /opt/miners/phoenix; while sleep 1;do sudo python phoenix.py -u $URL -k phatk DEVICE=1 VECTORS BFI_INT WORKSIZE=256 AGGRESSION=10 FASTLOOPS=false ; done" diff --git a/node/Makefile b/node/Makefile index 00e27b6f..20e15c70 100644 --- a/node/Makefile +++ b/node/Makefile @@ -1,8 +1,24 @@ -.PHONY: all -all: node-v0.4.8 - cd $< && ./configure && make && make install +.PHONY: all build install -node-%: - cur http://nodejs.org/dist/$@.tar.gz | tar zx +all: + @echo "You are made of stupid!"; exit 23 + +build: node node/build/default/node + cd node && ./configure && make + +install: build + cd node && make install + +node: node-git + ln -vsnf $< $@ + +node-git: + git clone https://github.com/joyent/node node-git + +node-%: /usr/bin/curl + curl http://nodejs.org/dist/$@.tar.gz | tar zx + +/usr/bin/curl: + apt-get install --yes curl diff --git a/retiolum/bin/install b/retiolum/bin/install new file mode 100755 index 00000000..9e4459fb --- /dev/null +++ b/retiolum/bin/install @@ -0,0 +1,18 @@ +#! /bin/sh +# +# +# +set -euf + +trap 'echo "${comment+$comment +}You are made of stupid!">&2; exit 23' EXIT + +if ! test -e /usr/sbin/tincd; then + if grep -iq ubuntu /etc/issue; then + sudo apt-get install --yes tinc + else + comment='Install tinc to continue.' exit + fi +fi + +trap - EXIT diff --git a/temper/Makefile b/temper/Makefile index 3ada08de..18165772 100644 --- a/temper/Makefile +++ b/temper/Makefile @@ -6,9 +6,12 @@ CFLAGS = -O2 -Wall temper: temper.c ${CC} -DUNIT_TEST -o $@ $^ -lusb chmod +s temper + install temper /usr/bin clean: rm -f temper *.o rules-install: # must be superuser to do this cp 99-tempsensor.rules /etc/udev/rules.d +debian-prereq: + apt-get install libusb-dev |