Add "Install client libraries" page to doc/install/.
[arvados.git] / doc / install / install-crunch-dispatch.textile
index 31ff50929d7f24bf794538fb682162e96480463d..4c0209820f788361075dea6e2f59694633e37404 100644 (file)
@@ -7,15 +7,39 @@ navorder: 3
 
 h1. Crunch setup
 
+The dispatcher normally runs on the same host/VM as the API server.
+
 h4. Perl SDK dependencies
 
 * @apt-get install libjson-perl libwww-perl libio-socket-ssl-perl libipc-system-simple-perl@
 
 h4. Python SDK dependencies
 
+On controller and all compute nodes:
+
 * @apt-get install python-pip@
 * @pip install --upgrade google-api-python-client@
 
+h4. Likely crunch job dependencies
+
+On compute nodes:
+
+* @pip install --upgrade pyvcf@
+
+h4. Redis
+
+On controller:
+
+* @apt-get install redis-server@
+
+h4. Crunch user account
+
+On compute nodes and controller:
+
+* @adduser crunch@
+
+The crunch user should have the same UID, GID, and home directory on all compute nodes and on the controller.
+
 h4. Repositories
 
 Crunch scripts must be in git repositories in @/var/cache/git/*/.git@ (or whatever is configured in @services/api/config/environments/production.rb@).
@@ -30,14 +54,14 @@ set -e
 while sleep 60
 do
   cd /path/to/arvados/services/api
-  setuidgid www-data env RAILS_ENV=production bundle exec ./script/import_commits.rb
+  setuidgid www-data env RAILS_ENV=production /usr/local/rvm/bin/rvm 2.0.0 do bundle exec ./script/import_commits.rb 2>&1
 done
 </pre>
 
 Once you have imported some commits, you should be able to create a new job:
 
 <pre>
-read -rd "\000" newjob <<EOF; arv job create --job "$newjob"
+read -rd $'\000' newjob <<EOF; arv job create --job "$newjob"
 {"script_parameters":{"input":"f815ec01d5d2f11cb12874ab2ed50daa"},
  "script_version":"master",
  "script":"hash"}
@@ -64,11 +88,15 @@ Example @/var/service/arvados_crunch_dispatch/run@ script:
 set -e
 export PATH="$PATH":/path/to/arvados/services/crunch
 export PERLLIB=/path/to/arvados/sdk/perl/lib:/path/to/warehouse-apps/libwarehouse-perl/lib
-export ARVADOS_API_HOST=xyzzy.arvadosapi.com
+export ARVADOS_API_HOST={{ site.arvados_api_host }}
+export PYTHONPATH=/path/to/arvados/src/sdk/python
+export CRUNCH_DISPATCH_LOCKFILE=/var/lock/crunch-dispatch
+
+fuser -TERM -k $CRUNCH_DISPATCH_LOCKFILE || true
 
 ## Only if your SSL cert is unverifiable:
 # export ARVADOS_API_HOST_INSECURE=yes
 
 cd /path/to/arvados/services/api
-RAILS_ENV=production bundle exec ./script/crunch-dispatch.rb
+RAILS_ENV=production /usr/local/rvm/bin/rvm 2.0.0 do bundle exec ./script/crunch-dispatch.rb 2>&1
 </pre>