.. Copyright 2015 tsuru authors. All rights reserved.
Use of this source code is governed by a BSD-style
license that can be found in the LICENSE file.
++++++++++
API Server
++++++++++
Dependencies
============
tsuru API depends on a MongoDB server, Redis server, Hipache router, and
Gandalf server. Instructions for installing `MongoDB
`_ and `Redis `_ are outside the
scope of this documentation, but it's pretty straight-forward following their
docs. :doc:`Installing Gandalf ` and :doc:`installing
Hipache ` are described in other sessions.
Adding repositories
===================
Let's start adding the repositories for tsuru.
.. highlight:: bash
::
sudo apt-get update
sudo apt-get install python-software-properties
sudo apt-add-repository ppa:tsuru/ppa -y
sudo apt-get update
Installing
==========
.. highlight:: bash
::
sudo apt-get install tsuru-server -qqy
Now you need to customize the configuration in the ``/etc/tsuru/tsuru.conf``. A
description of possible configuration values can be found in the
:doc:`configuration reference `. A basic possible
configuration is described below, please note that you should replace the values
``your-mongodb-server``, ``your-redis-server``, ``your-gandalf-server`` and
``your-hipache-server``.
.. highlight:: yaml
::
listen: "0.0.0.0:8080"
debug: true
host: http://:8080 # This port must be the same as in the "listen" conf
admin-team: admin
auth:
user-registration: true
scheme: native
database:
url: :27017
name: tsurudb
pubsub:
redis-host:
redis-port: 6379
queue:
mongo-url: :27017
mongo-database: queuedb
git:
api-server: http://:8000
provisioner: docker
docker:
router: hipache
collection: docker_containers
repository-namespace: tsuru
deploy-cmd: /var/lib/tsuru/deploy
cluster:
storage: mongodb
mongo-url: :27017
mongo-database: cluster
run-cmd:
bin: /var/lib/tsuru/start
port: "8888"
ssh:
add-key-cmd: /var/lib/tsuru/add-key
user: ubuntu
routers:
hipache:
type: hipache
domain: .xip.io
redis-server:
In particular, take note that you must set ``auth:user-registration`` to ``true``:
.. highlight:: yaml
::
auth:
user-registration: true
scheme: native
Otherwise, tsuru will fail to create an admin user in the next section.
Now you only need to start your tsuru API server:
.. highlight:: bash
::
sudo sed -i -e 's/=no/=yes/' /etc/default/tsuru-server
sudo start tsuru-server-api
Creating admin user
===================
The creation of an admin user is necessary for the next steps, so we're going
to describe how to install the ``tsuru`` and create a new user belonging to the
admin team configured in your ``tsuru.conf`` file. For a description of each
command shown below please refer to the :doc:`client documentation
`.
For a description
.. highlight:: bash
::
$ sudo apt-get install tsuru-client
$ tsuru target-add default http://:8080
$ tsuru target-set default
$ tsuru user-create myemail@somewhere.com
# type a password and confirmation
$ tsuru login myemail@somewhere.com
# type the chosen password
$ tsuru team-create admin
And that's it, you now have registered a user in your tsuru API server ready to
run admin commands.
.. _gandalf_auth_token:
Generating token for Gandalf authentication
===========================================
Assuming you have already configured your Gandalf server in the :doc:`previous
installation step `, now we need to export two extra
environment variables to the git user, which will run our deploy hooks, the URL
to our API server and a generated token.
First step is to generate a token in the machine we've just installed the API
server:
.. highlight:: bash
::
$ tsurud token
fed1000d6c05019f6550b20dbc3c572996e2c044
Now you have to go back to the machine you installed Gandalf, and run this:
.. highlight:: bash
::
$ cat | sudo tee -a /home/git/.bash_profile <:8080
export TSURU_TOKEN=fed1000d6c05019f6550b20dbc3c572996e2c044
EOF