Installing controller service » History » Version 6
Tom Clegg, 07/17/2018 08:42 PM
| 1 | 1 | Tom Clegg | h1. Installing controller service |
|---|---|---|---|
| 2 | |||
| 3 | 2 | Tom Clegg | refs #13497 |
| 4 | |||
| 5 | 6 | Tom Clegg | h2. Add controller to an existing cluster |
| 6 | |||
| 7 | 1 | Tom Clegg | Add to "upgrading to master" section of doc.arvados.org: |
| 8 | 4 | Tom Clegg | * Create @/etc/arvados/config.yml@ on your API server node, if you haven't already |
| 9 | * Add to @/etc/arvados/config.yml@: <pre><code class="yaml"> |
||
| 10 | 1 | Tom Clegg | Clusters: |
| 11 | {your-uuid-prefix}: |
||
| 12 | 3 | Tom Clegg | NodeProfiles: |
| 13 | 4 | Tom Clegg | apiserver: |
| 14 | 1 | Tom Clegg | arvados-controller: |
| 15 | Listen: ":9004" # choose a port |
||
| 16 | arvados-api-server: |
||
| 17 | Listen: ":8000" # must match Rails server port in your Nginx config |
||
| 18 | </code></pre> |
||
| 19 | 4 | Tom Clegg | * Create @/etc/arvados/environment@ containing one line, @ARVADOS_NODE_PROFILE=apiserver@ |
| 20 | 1 | Tom Clegg | * Install the arvados-controller package on your API server node |
| 21 | * Update your Nginx configuration so incoming traffic for $ARVADOS_API_HOST is routed to port 9004 (or whichever port you chose for arvados-controller in your config). |
||
| 22 | ** Add: <pre> |
||
| 23 | upstream arvados-controller { |
||
| 24 | server 127.0.0.1:9004; |
||
| 25 | } |
||
| 26 | </pre> |
||
| 27 | ** Update server section that currently forwards traffic to @http://api@: <pre><code class="diff"> |
||
| 28 | server { |
||
| 29 | listen [your public IP address]:443 ssl; |
||
| 30 | server_name uuid_prefix.your.domain; |
||
| 31 | # ... |
||
| 32 | location / { |
||
| 33 | - proxy_pass http://api; |
||
| 34 | + proxy_pass http://arvados-controller; |
||
| 35 | # ... |
||
| 36 | } |
||
| 37 | } |
||
| 38 | </code></pre> |
||
| 39 | |||
| 40 | 6 | Tom Clegg | h2. Install controller in a new cluster |
| 41 | |||
| 42 | 1 | Tom Clegg | Update install docs: |
| 43 | * Add arvados-controller to the list of deb/rpm packages to install |
||
| 44 | 4 | Tom Clegg | * Create @/etc/arvados/config.yml@ (as above) |
| 45 | 1 | Tom Clegg | * Create @/etc/arvados/environment@ (as above) |
| 46 | 5 | Nico César | * If using systemd, run @systemctl start arvados-controller@ and confirm running status |
| 47 | * If not using systemd, set up a supervised service using runit |
||
| 48 | 1 | Tom Clegg | |
| 49 | 6 | Tom Clegg | h2. Verify controller is working |
| 50 | 1 | Tom Clegg | |
| 51 | 6 | Tom Clegg | Watch controller's log messages. |
| 52 | |||
| 53 | <pre> |
||
| 54 | apiserver# journalctl -fu arvados-controller.service |
||
| 55 | </pre> |
||
| 56 | |||
| 57 | When the controller service starts, you should see startup messages: |
||
| 58 | |||
| 59 | <pre> |
||
| 60 | Jul 17 20:29:16 4xphq.arvadosapi.com systemd[1]: Starting Arvados controller... |
||
| 61 | Jul 17 20:29:16 4xphq.arvadosapi.com arvados-controller[28118]: {"Listen":"[::]:9004","Service":"arvados-controller","level":"info","msg":"listening","time":"2018-07-17T20:29:16.287796594Z"} |
||
| 62 | Jul 17 20:29:16 4xphq.arvadosapi.com systemd[1]: Started Arvados controller. |
||
| 63 | </pre> |
||
| 64 | |||
| 65 | When clients access the API, you should see "request" and "response" log messages: |
||
| 66 | |||
| 67 | <pre> |
||
| 68 | Jul 17 20:41:01 4xphq.arvadosapi.com arvados-controller[28118]: {"RequestID":"req-5o2lhd2i1peunbmat2u2","level":"info","msg":"request","remoteAddr":"127.0.0.1:17192","reqBytes":140,"reqForwardedFor":"10.20.49.0","reqHost":"4xphq.arvadosapi.com","reqMethod":"POST","reqPath":"arvados/v1/collections","reqQuery":"","time":"2018-07-17T20:41:01.816350482Z"} |
||
| 69 | Jul 17 20:41:02 4xphq.arvadosapi.com arvados-controller[28118]: {"RequestID":"req-5o2lhd2i1peunbmat2u2","level":"info","msg":"response","remoteAddr":"127.0.0.1:17192","reqBytes":140,"reqForwardedFor":"10.20.49.0","reqHost":"4xphq.arvadosapi.com","reqMethod":"POST","reqPath":"arvados/v1/collections","reqQuery":"","respBytes":6138,"respStatus":"OK","respStatusCode":200,"time":"2018-07-17T20:41:02.135405529Z","timeToStatus":0.318963,"timeTotal":0.319050,"timeWriteBody":0.000086} |
||
| 70 | </pre> |