X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/4d6e05c25c6a5d72afee37f8165b006267b4183d..87640a81e725d0246837994acbb3a696d14401c6:/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 f6ad379023..250d1dcc40 100644
--- a/doc/install/install-compute-node.html.textile.liquid
+++ b/doc/install/install-compute-node.html.textile.liquid
@@ -11,14 +11,14 @@ First, "add the appropriate package repository for your distribution":{{ site.ba
On Debian-based systems:
-~$ sudo apt-get install perl python-virtualenv fuse python-arvados-python-client python-arvados-fuse crunchstat iptables ca-certificates
+~$ sudo apt-get install perl python-virtualenv fuse python-arvados-python-client python-arvados-fuse crunchstat arvados-docker-cleaner iptables ca-certificates
On Red Hat-based systems:
-~$ sudo yum install perl python27-python-virtualenv fuse python27-python-arvados-python-client python27-python-arvados-fuse crunchstat iptables ca-certificates
+~$ sudo yum install perl python27-python-virtualenv fuse python27-python-arvados-python-client python27-python-arvados-fuse crunchstat arvados-docker-cleaner iptables ca-certificates
@@ -50,11 +50,11 @@ Your containers must be able to resolve the hostname in the ARVADOS_API_HOST env
h2. Set up SLURM
-Install SLURM following "the same process you used to install the Crunch dispatcher":{{ site.baseurl }}/install/install-crunch-dispatch.html#slurm.
+Install SLURM following "the same process you used to install the Crunch dispatcher":install-crunch-dispatch.html#slurm.
h2. Copy configuration files from the dispatcher (API server)
-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.
+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":install-crunch-dispatch.html step to this compute node.
h2. Configure FUSE
@@ -74,7 +74,45 @@ user_allow_other
-h2. Crunch user account
+h2. Configure the Docker cleaner
+
+The arvados-docker-cleaner program removes least recently used docker images as needed to keep disk usage below a configured limit.
+
+On Debian-based systems, install runit:
+
+
+~$ sudo apt-get install runit
+
+
+
+On Red Hat-based systems, "install runit from source":http://smarden.org/runit/install.html or use an alternative daemon supervisor.
+
+Configure runit to run the image cleaner using a suitable quota for your compute nodes and workload:
+
+
+~$ cd /etc/sv
+/etc/sv$ sudo mkdir arvados-docker-cleaner; cd arvados-docker-cleaner
+/etc/sv/arvados-docker-cleaner$ sudo mkdir log log/main
+/etc/sv/arvados-docker-cleaner$ sudo sh -c 'cat >log/run' <<'EOF'
+#!/bin/sh
+exec svlogd -tt main
+EOF
+/etc/sv/arvados-docker-cleaner$ sudo sh -c 'cat >run' <<'EOF'
+#!/bin/sh
+exec python3 -m arvados_docker.cleaner --quota 50G
+EOF
+/etc/sv/arvados-docker-cleaner$ sudo chmod +x run log/run
+
+
+
+If you are using a different daemon supervisor, or if you want to test the daemon in a terminal window, an equivalent shell command to run arvados-docker-cleaner is:
+
+
+python3 -m arvados_docker.cleaner --quota 50G
+
+
+
+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:
@@ -108,7 +146,10 @@ 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('.')
+ip_address = socket.gethostbyname(fqdn)
+node = arvados.api('v1').nodes().create(body={'hostname': hostname, 'domain': domain, 'ip_address': ip_address}).execute()
with open('/root/node.json', 'w') as node_file:
json.dump(node, node_file, indent=2)
EOF
@@ -121,10 +162,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