.. 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 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 before interaction with the API is possible. This can be done using the ``root-user-create`` command as shown below. This command will create a new authorization role with a global permission allowing this user run any action on tsuru. More fine-grained roles can be created later, please refer to :doc:`managing users and permissions ` for more details. Here we're also going to describe how to install the ``tsuru`` client application. For a description of each command shown below please refer to the :doc:`client documentation `. For a description .. highlight:: bash :: $ tsurud [--config ] root-user-create myemail@somewhere.com # type a password and confirmation (only if using native auth scheme) $ sudo apt-get install tsuru-client $ tsuru target-add default http://:8080 $ tsuru target-set default $ tsuru login myemail@somewhere.com # type the chosen password And that's it, you now have registered a user in your tsuru API server and its ready to run any 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