diff --git a/cluster-control.sh b/cluster-control.sh index 9f70e02..0b219bd 100755 --- a/cluster-control.sh +++ b/cluster-control.sh @@ -9,7 +9,7 @@ _status() { something_running=1 warcprox_pids=( $(pgrep -f /home/nlevitt/workspace/warcprox/warcprox-ve34/bin/warcprox) ) - worker_pids=( $(pgrep -f /home/nlevitt/workspace/brozzler/brozzler-ve34/bin/brozzler-worker) ) + worker_pids=( $(pgrep -f 'ssh .* docker run .* internetarchive/brozzler-worker .* brozzler-worker') ) pywayback_pids=( $(pgrep -f /home/nlevitt/workspace/pygwb/pygwb-ve27/bin/gunicorn) ) ait_brozzler_boss=( $(pgrep -f /home/nlevitt/workspace/ait5/scripts/ait-brozzler-boss.py) ) ait5_pids=( $(pgrep -f 0.0.0.0:8888) ) @@ -37,11 +37,8 @@ _stop() { pkill -f 0.0.0.0:8888 # pkill -f /home/nlevitt/workspace/brozzler/brozzler-ve34/bin/brozzler-worker for node in aidata{400,400-bu,401-bu} ; do - ssh $node pkill -f /home/nlevitt/workspace/brozzler/brozzler-ve34/bin/brozzler-worker - done - sleep 3 - for node in aidata{400,400-bu,401-bu} ; do - ssh $node killall chromium-browser + container_id=$(ssh $node docker ps --filter=image=internetarchive/brozzler-worker --filter=status=running --format='{{.ID}}') + ssh $node docker stop --time=60 $container_id done fi @@ -72,6 +69,9 @@ EOF set -e mv -v /1/brzl /tmp/brzl.$tstamp mkdir -vp /1/brzl/{warcs,logs} + chgrp -v archiveit /1/brzl/warcs/ && chmod g+w /1/brzl/warcs + + ssh wbgrp-svc111 rm -vf /1/brzl/warcs/*.warc* } _start() { @@ -85,17 +85,23 @@ _start() { echo $0: starting warcprox ssh -fn wbgrp-svc111 'PYTHONPATH=/home/nlevitt/workspace/warcprox/warcprox-ve34/lib/python3.4/site-packages nice /home/nlevitt/workspace/warcprox/warcprox-ve34/bin/warcprox --dir=/1/brzl/warcs --rethinkdb-servers=wbgrp-svc020,wbgrp-svc035,wbgrp-svc036 --rethinkdb-db=archiveit_brozzler --rethinkdb-big-table --cacert=/1/brzl/warcprox-ca.pem --certs-dir=/1/brzl/certs --address=0.0.0.0 --base32 --gzip --rollover-idle-time=180 --kafka-broker-list=qa-archive-it.org:6092 --kafka-capture-feed-topic=ait-brozzler-captures' &>>/1/brzl/logs/warcprox.out & - sleep 5 + sleep 3 echo $0: starting ait-brozzler-boss.py venv=/home/nlevitt/workspace/ait5/ait5-ve34 PYTHONPATH=$venv/lib/python3.4/site-packages $venv/bin/python /home/nlevitt/workspace/ait5/scripts/ait-brozzler-boss.py &>> /1/brzl/logs/ait-brozzler-boss.out & - sleep 5 + sleep 3 echo $0: starting brozzler-workers for node in aidata{400,400-bu,401-bu} ; do - ssh -fn $node 'PYTHONPATH=/home/nlevitt/workspace/brozzler/brozzler-ve34/lib/python3.4/site-packages XAUTHORITY=/tmp/Xauthority.nlevitt DISPLAY=:1 /home/nlevitt/workspace/brozzler/brozzler-ve34/bin/brozzler-worker --rethinkdb-servers=wbgrp-svc036,wbgrp-svc020,wbgrp-svc035 --rethinkdb-db=archiveit_brozzler --max-browsers=10' &>> /1/brzl/logs/brozzler-worker-$node.out + ( + set -x + ssh $node "docker --version || curl -sSL https://get.docker.com/ | sh && sudo usermod -aG docker $USER" + ssh $node 'docker build -t internetarchive/brozzler-worker /home/nlevitt/workspace/brozzler/docker' + ssh -fn $node 'docker run --rm internetarchive/brozzler-worker /sbin/my_init -- setuser brozzler bash -c "DISPLAY=:1 brozzler-worker --rethinkdb-servers=wbgrp-svc036,wbgrp-svc020,wbgrp-svc035 --rethinkdb-db=archiveit_brozzler --max-browsers=10"' &>> /1/brzl/logs/brozzler-worker-$node.out + sleep 3 + ) done echo $0: starting pywayback diff --git a/docker/Dockerfile b/docker/Dockerfile index 2b11cbf..4f3e03e 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -3,18 +3,12 @@ MAINTAINER Noah Levitt ENV LANG=C.UTF-8 -RUN apt-get update && apt-get --auto-remove -y dist-upgrade \ - && apt-get -y install vnc4server \ - && apt-get -y install chromium-browser \ - && apt-get -y install xfonts-base fonts-arphic-bkai00mp fonts-arphic-bsmi00lp fonts-arphic-gbsn00lp fonts-arphic-gkai00mp fonts-arphic-ukai fonts-farsiweb fonts-nafees fonts-sil-abyssinica fonts-sil-ezra fonts-sil-padauk fonts-unfonts-extra fonts-unfonts-core ttf-indic-fonts fonts-thai-tlwg fonts-lklug-sinhala \ - && apt-get -y install python3-pip \ - && apt-get -y install git \ - && apt-get -y install vlc - -RUN adduser --disabled-password --gecos="Charlie Brozzler" brozzler - -WORKDIR /tmp -RUN setuser brozzler git clone https://github.com/nlevitt/brozzler.git && cd brozzler && pip3 install -r requirements.txt +RUN apt-get update && apt-get --auto-remove -y dist-upgrade +RUN apt-get -y install vnc4server +RUN apt-get -y install chromium-browser +RUN apt-get -y install xfonts-base fonts-arphic-bkai00mp fonts-arphic-bsmi00lp fonts-arphic-gbsn00lp fonts-arphic-gkai00mp fonts-arphic-ukai fonts-farsiweb fonts-nafees fonts-sil-abyssinica fonts-sil-ezra fonts-sil-padauk fonts-unfonts-extra fonts-unfonts-core ttf-indic-fonts fonts-thai-tlwg fonts-lklug-sinhala +RUN apt-get -y install python3-pip git vlc +RUN apt-get -y install libjpeg-turbo8-dev zlib1g-dev RUN mkdir -vp /etc/service/vncserver ADD vncserver.sh /etc/service/vncserver/run @@ -22,10 +16,16 @@ ADD vncserver.sh /etc/service/vncserver/run RUN mkdir /etc/service/vlc-screencast ADD vlc-screencast.sh /etc/service/vlc-screencast/run +RUN adduser --disabled-password --gecos="Charlie Brozzler" brozzler + EXPOSE 5901 EXPOSE 8080 +RUN pip3 install -i http://crawl342.us.archive.org:9000/nlevitt/dev/+simple/ git+https://github.com/nlevitt/brozzler.git + +# # ENTRYPOINT ["/sbin/my_init", "--", "setuser", "brozzler", "brozzler-worker"] +# # # docker run --rm --publish=8080:8080 internetarchive/brozzler-worker /sbin/my_init -- setuser brozzler brozzler-worker --rethinkdb-servers=foo,bar --max-browsers=5