11644: Replace linear search with map for looking up mounts by UUID.
[arvados.git] / doc / install / install-compute-node.html.textile.liquid
index b3ab375d11387e35a2660286b6fe6128083b5208..acb9c7624edabdf2b75d5d5889c281192dded4e1 100644 (file)
@@ -6,50 +6,50 @@ title: Install a compute node
 
 h2. Install dependencies
 
-First, "add the appropriate package repository for your distribution":/install/install-manual-prerequisites.html#repos.
+First, "add the appropriate package repository for your distribution":{{ site.baseurl }}/install/install-manual-prerequisites.html#repos.
 
-On Debian-based systems:
+{% include 'note_python_sc' %}
+
+On Red Hat-based systems:
 
 <notextile>
-<pre><code>~$ <span class="userinput">sudo apt-get install perl python-virtualenv fuse python-arvados-python-client python-arvados-fuse crunchstat iptables ca-certificates</span>
+<pre><code>~$ <span class="userinput">echo 'exclude=python2-llfuse' | sudo tee -a /etc/yum.conf</span>
+~$ <span class="userinput">sudo yum install perl python-virtualenv fuse python-arvados-python-client python-arvados-fuse crunchrunner crunchstat arvados-docker-cleaner iptables ca-certificates</span>
 </code></pre>
 </notextile>
 
-h2. Install slurm and munge
+On Debian-based systems:
 
 <notextile>
-<pre><code>~$ <span class="userinput">sudo /usr/bin/apt-get install slurm-llnl munge</span>
+<pre><code>~$ <span class="userinput">sudo apt-get install perl python-virtualenv fuse python-arvados-python-client python-arvados-fuse crunchrunner crunchstat arvados-docker-cleaner iptables ca-certificates</span>
 </code></pre>
 </notextile>
 
-h2. Copy configuration files from the dispatcher (api)
+{% include 'install_compute_docker' %}
+
+h2. Set up SLURM
+
+Install SLURM following "the same process you used to install the Crunch dispatcher":install-crunch-dispatch.html#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.
+h2. Copy configuration files from the dispatcher (API server)
 
-h2. Crunch user account
+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.
 
-* @adduser crunch@
+{% include 'install_compute_fuse' %}
 
-The crunch user should have the same UID, GID, and home directory on all compute nodes and on the dispatcher (api server).
+{% include 'install_docker_cleaner' %}
 
-h2. Configure fuse
+h2. Add a Crunch user account
 
-Install this file as @/etc/fuse.conf@:
+Create a Crunch user account, and add it to the @fuse@ and @docker@ groups so it can use those tools:
 
 <notextile>
-<pre>
-# 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
-</pre>
+<pre><code>~$ <span class="userinput">sudo useradd --groups fuse,docker crunch</span>
+</code></pre>
 </notextile>
 
+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:
@@ -73,7 +73,9 @@ set -e
 if ! test -f /root/node.json ; then
     python - &lt;&lt;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
@@ -86,10 +88,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
 </code>
 </pre>
 </notextile>
@@ -103,4 +105,3 @@ And remove your token from the environment:
 </code>
 </pre>
 </notextile>
-