.. Copyright 2012 Nicolas Barcet for Canonical 2013 New Dream Network, LLC (DreamHost) Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. .. _installing_manually: ===================== Installing Manually ===================== Storage Backend Installation ============================ This step is a prerequisite for the collector and API services. You may use one of the listed database backends below to store Panko data. MongoDB ------- Follow the instructions to install the MongoDB_ package for your operating system, then start the service. The required minimum version of MongoDB is 2.4.x. You will also need to have pymongo_ 2.4 installed To use MongoDB as the storage backend, change the 'database' section in panko.conf as follows:: [database] connection = mongodb://username:password@host:27017/panko SQLalchemy-supported DBs ------------------------ You may alternatively use any SQLAlchemy-supported DB such as `PostgreSQL` or `MySQL`. To use MySQL as the storage backend, change the 'database' section in panko.conf as follows:: [database] connection = mysql+pymysql://username:password@host/panko?charset=utf8 .. _MongoDB: http://www.mongodb.org/ .. _pymongo: https://pypi.python.org/pypi/pymongo/ Installing the API Server ========================= .. index:: double: installing; API .. note:: The API server needs to be able to talk to keystone and panko's database. It is only required if you choose to store data in legacy database or if you inject new samples via REST API. 1. Clone the panko git repository to the server:: $ cd /opt/stack $ git clone https://git.openstack.org/openstack/panko.git 2. As a user with ``root`` permissions or ``sudo`` privileges, run the panko installer:: $ cd panko $ sudo python setup.py install 3. Copy the sample configuration files from the source tree to their final location:: $ mkdir -p /etc/panko $ cp etc/panko/api_paste.ini /etc/panko $ cp etc/panko/*.json /etc/panko $ cp etc/panko/*.yaml /etc/panko $ cp etc/panko/panko.conf.sample /etc/panko/panko.conf 4. Create a service for panko in keystone:: $ openstack service create event --name=panko \ --description="Panko Service" 5. Create an endpoint in keystone for panko:: $ openstack endpoint create $PANKO_SERVICE \ --region RegionOne \ --publicurl "http://$SERVICE_HOST:8777" \ --adminurl "http://$SERVICE_HOST:8777" \ --internalurl "http://$SERVICE_HOST:8777" .. note:: PANKO_SERVICE is the id of the service created by the first command and SERVICE_HOST is the host where the Panko API is running. The default port value for panko API is 8777. If the port value has been customized, adjust accordingly. 6. Choose and start the API server. Panko includes the ``panko-api`` command. This can be used to run the API server. For smaller or proof-of-concept installations this is a reasonable choice. For larger installations it is strongly recommended to install the API server in a WSGI host such as mod_wsgi (see :doc:`mod_wsgi`). Doing so will provide better performance and more options for making adjustments specific to the installation environment. If you are using the ``panko-api`` command it can be started as:: $ panko-api .. note:: The development version of the API server logs to stderr, so you may want to run this step using a screen session or other tool for maintaining a long-running program in the background.