X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/0f644e242ef37c911ad3dc25aca8135c339de349..36b3f5c4d415897125a82fc733385ca999436c4e:/doc/install/install-keepproxy.html.textile.liquid diff --git a/doc/install/install-keepproxy.html.textile.liquid b/doc/install/install-keepproxy.html.textile.liquid index fe690a5eda..d3a60ad0f3 100644 --- a/doc/install/install-keepproxy.html.textile.liquid +++ b/doc/install/install-keepproxy.html.textile.liquid @@ -44,27 +44,30 @@ Verify that Keepproxy is functional:
~$ keepproxy -h
-...
-Usage: keepproxy [-config path/to/keepproxy.yml]
-...
+Usage of keepproxy:
+  -config file
+    	Site configuration file (default may be overridden by setting an ARVADOS_CONFIG environment variable) (default "/etc/arvados/config.yml")
+  -dump-config
+    	write current configuration to stdout and exit
+[...]
+  -version
+    	print version information and exit.
 
-h3. Create an API token for the Keepproxy server - -{% assign railscmd = "bundle exec ./script/get_anonymous_user_token.rb --get" %} -{% assign railsout = "zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz" %} -The Keepproxy server needs a token to talk to the API server. On the API server, use the following command to create the token. {% include 'install_rails_command' %} - -h3. Set up the Keepproxy service +h3. Update the cluster config -Install runit to supervise the keepproxy daemon. {% include 'install_runit' %} - -The run script for the keepproxy service should set the environment variables @ARVADOS_API_TOKEN@ (with the token you just generated), @ARVADOS_API_HOST@, and, if needed, @ARVADOS_API_HOST_INSECURE@. The core keepproxy command to run is: +Edit the cluster config at @/etc/arvados/config.yml@ and set @Services.Keepproxy.ExternalURL@ and @Services.Keepproxy.InternalURLs@. Replace @uuid_prefix@ with your cluster id. -
ARVADOS_API_TOKEN={{railsout}} ARVADOS_API_HOST=uuid_prefix.your.domain exec keepproxy
-
+
Clusters:
+  uuid_prefix:
+    Services:
+      Keepproxy:
+        ExternalURL: https://keep.uuid_prefix.your.domain
+        InternalURLs:
+	  "http://localhost:25107": {}
+
h3. Set up a reverse proxy with SSL support @@ -79,22 +82,24 @@ upstream keepproxy { } server { - listen [your public IP address]:443 ssl; - server_name keep.uuid_prefix.your.domain; + listen [your public IP address]:443 ssl; + server_name keep.uuid_prefix.your.domain; - proxy_connect_timeout 90s; - proxy_read_timeout 300s; - proxy_set_header X-Real-IP $remote_addr; + proxy_connect_timeout 90s; + proxy_read_timeout 300s; + proxy_set_header X-Real-IP $remote_addr; + proxy_http_version 1.1; + proxy_request_buffering off; - ssl on; - ssl_certificate /etc/nginx/keep.uuid_prefix.your.domain-ssl.crt; - ssl_certificate_key /etc/nginx/keep.uuid_prefix.your.domain-ssl.key; + ssl on; + ssl_certificate /etc/nginx/keep.uuid_prefix.your.domain-ssl.crt; + ssl_certificate_key /etc/nginx/keep.uuid_prefix.your.domain-ssl.key; # Clients need to be able to upload blocks of data up to 64MiB in size. - client_max_body_size 64m; + client_max_body_size 64m; location / { - proxy_pass http://keepproxy; + proxy_pass http://keepproxy; } } @@ -103,7 +108,18 @@ Note: if the Web uploader is failing to upload data and there are no logs from k h3. Tell the API server about the Keepproxy server -The API server needs to be informed about the presence of your Keepproxy server. Please execute the following commands on your shell server. +The API server needs to be informed about the presence of your Keepproxy server. + +First, if you don't already have an admin token, create a superuser token. + +{% include 'create_superuser_token' %} + +Configure your environment to run @arv@ using the output of create_superuser_token.rb: + +
+export ARVADOS_API_HOST=zzzzz.example.com
+export ARVADOS_API_TOKEN=zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
+
~$ uuid_prefix=`arv --format=uuid user current | cut -d- -f1`
@@ -117,3 +133,39 @@ The API server needs to be informed about the presence of your Keepproxy server.
 }
 EOF
 
+ +h2. Run Keepproxy + +h3. Start the service (option 1: systemd) + +If your system does not use systemd, skip this section and follow the "runit instructions":#runit instead. + +If your system uses systemd, the keepproxy service should already be set up. Start it and check its status: + + +
~$ sudo systemctl restart keepproxy
+~$ sudo systemctl status keepproxy
+● keepproxy.service - Arvados Keep Proxy
+   Loaded: loaded (/lib/systemd/system/keepproxy.service; enabled)
+   Active: active (running) since Tue 2019-07-23 09:33:47 EDT; 3 weeks 1 days ago
+     Docs: https://doc.arvados.org/
+ Main PID: 1150 (Keepproxy)
+   CGroup: /system.slice/keepproxy.service
+           └─1150 /usr/bin/keepproxy
+[...]
+
+
+ +h3(#runit). Start the service (option 2: runit) + +Install runit to supervise the Keep-web daemon. {% include 'install_runit' %} + +h3. Testing keepproxy + +Log into a host that is on an external network from your private Arvados network. The host should be able to contact your keepproxy server (eg keep.$uuid_prefix.arvadosapi.com), but not your keepstore servers (eg keep[0-9].$uuid_prefix.arvadosapi.com). + +Install the "Python SDK":{{site.baseurl}}/sdk/python/sdk-python.html + +@ARVADOS_API_HOST@ and @ARVADOS_API_TOKEN@ must be set in the environment. + +You should now be able to use @arv-put@ to upload collections and @arv-get@ to fetch collections, for an example see "Testing keep.":install-keepstore.html#testing on the keepstore install page.