Install Cyborg from Source¶
This section describes how to install and configure the Acceleration Service for Ubuntu 18.04.1 LTS from source code.
Install from git repository¶
Create a folder which will hold all Cyborg components.
mkdir ~/cyborg
Clone the cyborg git repository to the management server.
cd ~/cyborg git clone https://opendev.org/openstack/cyborg
Set up the cyborg config file
First, generate a sample configuration file, using tox
cd ~/cyborg/cyborg tox -e genconfig
And make a copy of it for further modifications
cp -r ~/cyborg/cyborg/etc/cyborg /etc cd /etc/cyborg ln -s cyborg.conf.sample cyborg.conf
Install Cyborg packages.
cd ~/cyborg/cyborg sudo python setup.py install
Common Configuration¶
Regardless of the package or code source you must do the following to properly setup the Accelerator Life Cycle Management service. A database, service credentials, and API endpoints must be created.
To create the database, complete these steps:
Use the database access client to connect to the database server as the
root
user:$ mysql -u root -p
Create the
cyborg
database:CREATE DATABASE cyborg;
Grant proper access to the
cyborg
database:GRANT ALL PRIVILEGES ON cyborg.* TO 'cyborg'@'localhost' IDENTIFIED BY 'CYBORG_DBPASS';
Replace
CYBORG_DBPASS
with a suitable password.Exit the database access client.
exit;
Source the
admin
credentials to gain access to admin-only CLI commands:$ . admin-openrc
To create the service credentials, complete these steps:
Create the
cyborg
user:$ openstack user create --domain default --password-prompt cyborg
Add the
admin
role to thecyborg
user:$ openstack role add --project service --user cyborg admin
Create the cyborg service entities:
$ openstack service create --name cyborg --description "Acceleration Service" accelerator
Create the Acceleration service API endpoints:
If cyborg-api service is deployed using uwsgi, create the following endpoints:
$ openstack endpoint create --region RegionOne \ accelerator public http://<cyborg-ip>/accelerator/v1 $ openstack endpoint create --region RegionOne \ accelerator internal http://<cyborg-ip>/accelerator/v1 $ openstack endpoint create --region RegionOne \ accelerator admin http://<cyborg-ip>/accelerator/v1
Otherwise, if cyborg-api service is running as a python process, create the following endpoints:
$ openstack endpoint create --region RegionOne \ accelerator public http://<cyborg-ip>:6666/v1 $ openstack endpoint create --region RegionOne \ accelerator internal http://<cyborg-ip>:6666/v1 $ openstack endpoint create --region RegionOne \ accelerator admin http://<cyborg-ip>:6666/v1
Note
URLs (publicurl, internalurl and adminurl) may be different depending on your environment.
Configure Cyborg¶
Edit
cyborg.conf
with your favorite editor. Below is an example which contains basic settings you likely need to configure.[DEFAULT] transport_url = rabbit://%RABBITMQ_USER%:%RABBITMQ_PASSWORD%@%OPENSTACK_HOST_IP%:5672/ use_syslog = False state_path = /var/lib/cyborg debug = True ... [database] connection = mysql+pymysql://%DATABASE_USER%:%DATABASE_PASSWORD%@%OPENSTACK_HOST_IP%/cyborg ... [service_catalog] cafile = /opt/stack/data/ca-bundle.pem project_domain_id = default user_domain_id = default project_name = service password = cyborg username = cyborg auth_url = http://%OPENSTACK_HOST_IP%/identity auth_type = password ... [placement] project_domain_name = Default project_name = service user_domain_name = Default password = password username = placement auth_url = http://%OPENSTACK_HOST_IP%/identity auth_type = password auth_section = keystone_authtoken ... [keystone_authtoken] memcached_servers = localhost:11211 signing_dir = /var/cache/cyborg/api cafile = /opt/stack/data/ca-bundle.pem project_domain_name = Default project_name = service user_domain_name = Default password = cyborg username = cyborg auth_url = http://%OPENSTACK_HOST_IP%/identity auth_type = password
Create database tables for Cyborg.
cyborg-dbsync --config-file /etc/cyborg/cyborg.conf upgrade
Install Cyborg API via WSGI api-uwsgi
Note
Cyborg-api service can also be run as a Python command that runs a web serve, which can be launched as follows with different Acceleration service API endpoints as mentioned in Prerequisites part. However, we would like to recommend you the uwsgi way since when a project provides a WSGI application the API service gains flexibility in terms of deployment, performance, configuration and scaling. BYW, if you choose devstack to deploy your acceleration service, uwsgi is a default choice.
cyborg-api –config-file=/etc/cyborg/cyborg.conf
Launch Cyborg Conductor, Cyborg Agent services. Open a separate terminal for each service since the console will be locked by a running process.
cyborg-conductor --config-file=/etc/cyborg/cyborg.conf cyborg-agent --config-file=/etc/cyborg/cyborg.conf