X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/1c03f0c13bd55683a12c68d9bfc2a602b7815a16..d63f3ade27bb506da049164789679f9fed171005:/doc/install/install-compute-node.html.textile.liquid diff --git a/doc/install/install-compute-node.html.textile.liquid b/doc/install/install-compute-node.html.textile.liquid index 9a64ac3672..b4d0d596f2 100644 --- a/doc/install/install-compute-node.html.textile.liquid +++ b/doc/install/install-compute-node.html.textile.liquid @@ -4,55 +4,59 @@ navsection: installguide title: Install a compute node ... -This installation guide assumes you are on a 64 bit Debian or Ubuntu system. - h2. Install dependencies -First add the Arvados apt repository, and then install a number of packages. +First, "add the appropriate package repository for your distribution":{{ site.baseurl }}/install/install-manual-prerequisites.html#repos. + +{% include 'note_python_sc' %} + +On CentOS 6 and RHEL 6: + + +
~$ sudo yum install perl python27-python-virtualenv fuse python27-python-arvados-python-client python27-python-arvados-fuse crunchrunner crunchstat arvados-docker-cleaner iptables ca-certificates
+
+
+ +On other Red Hat-based systems: -
~$ echo "deb http://apt.arvados.org/ wheezy main" | sudo tee /etc/apt/sources.list.d/apt.arvados.org.list
-~$ sudo /usr/bin/apt-key adv --keyserver pool.sks-keyservers.net --recv 1078ECD7
-~$ sudo /usr/bin/apt-get update
-~$ sudo /usr/bin/apt-get install python-pip python-pyvcf python-gflags python-google-api-python-client python-virtualenv libattr1-dev libfuse-dev python-dev python-llfuse fuse crunchstat python-arvados-fuse iptables ca-certificates lxc apt-transport-https docker.io
+
~$ echo 'exclude=python2-llfuse' | sudo tee -a /etc/yum.conf
+~$ sudo yum install perl python-virtualenv fuse python-arvados-python-client python-arvados-fuse crunchrunner crunchstat arvados-docker-cleaner iptables ca-certificates
 
-h2. Install slurm and munge +On Debian-based systems: -
~$ sudo /usr/bin/apt-get install slurm-llnl munge
+
~$ sudo apt-get install perl python-virtualenv fuse python-arvados-python-client python-arvados-fuse crunchrunner crunchstat arvados-docker-cleaner iptables ca-certificates
 
-h2. Copy configuration files from the dispatcher (api) +{% include 'install_compute_docker' %} + +h2. Set up SLURM -The @/etc/slurm-llnl/slurm.conf@ and @/etc/munge/munge.key@ files need to be identicaly across the dispatcher and all compute nodes. Copy the files you created in the "Install the Crunch dispatcher":{{site.baseurl}} step to this compute node. +Install SLURM following "the same process you used to install the Crunch dispatcher":install-crunch-dispatch.html#slurm. -h2. Crunch user account +h2. Copy configuration files from the dispatcher (API server) -* @adduser crunch@ +The @slurm.conf@ and @/etc/munge/munge.key@ files need to be identical across the dispatcher and all compute nodes. Copy the files you created in the "Install the Crunch dispatcher":install-crunch-dispatch.html step to this compute node. -The crunch user should have the same UID, GID, and home directory on all compute nodes and on the dispatcher (api server). +{% include 'install_compute_fuse' %} -h2. Configure fuse +{% include 'install_docker_cleaner' %} -Install this file as @/etc/fuse.conf@: +h2. Add a Crunch user account + +Create a Crunch user account, and add it to the @fuse@ and @docker@ groups so it can use those tools: -
-# Set the maximum number of FUSE mounts allowed to non-root users.
-# The default is 1000.
-#
-#mount_max = 1000
-
-# Allow non-root users to specify the 'allow_other' or 'allow_root'
-# mount options.
-#
-user_allow_other
-
+
~$ sudo useradd --groups fuse,docker crunch
+
+The crunch user should have the same UID, GID, and home directory across all compute nodes and the dispatcher (API server). + h2. Tell the API server about this compute node Load your API superuser token on the compute node: @@ -76,7 +80,9 @@ set -e if ! test -f /root/node.json ; then python - <<EOF import arvados, json, socket -node = arvados.api('v1').nodes().create(body={'hostname': socket.gethostname()}).execute() +fqdn = socket.getfqdn() +hostname, _, domain = fqdn.partition('.') +node = arvados.api('v1').nodes().create(body={'hostname': hostname, 'domain': domain}).execute() with open('/root/node.json', 'w') as node_file: json.dump(node, node_file, indent=2) EOF @@ -89,10 +95,10 @@ UUID=`grep \"uuid\" /root/node.json |cut -f4 -d\"` PING_SECRET=`grep \"ping_secret\" /root/node.json |cut -f4 -d\"` if ! test -f /etc/cron.d/node_ping ; then - echo "*/5 * * * * root /usr/bin/curl -k -d ping_secret=$PING_SECRET https://api/arvados/v1/nodes/$UUID/ping" > /etc/cron.d/node_ping + echo "*/5 * * * * root /usr/bin/curl -k -d ping_secret=$PING_SECRET https://$ARVADOS_API_HOST/arvados/v1/nodes/$UUID/ping" > /etc/cron.d/node_ping fi -/usr/bin/curl -k -d ping_secret=$PING_SECRET https://api/arvados/v1/nodes/$UUID/ping?ping_secret=$PING_SECRET +/usr/bin/curl -k -d ping_secret=$PING_SECRET https://$ARVADOS_API_HOST/arvados/v1/nodes/$UUID/ping?ping_secret=$PING_SECRET
@@ -106,4 +112,3 @@ And remove your token from the environment:
-