Install Murano API¶
This section describes how to install and configure the Application Catalog service for Ubuntu 14.04 (LTS).
Prerequisites¶
Before you install and configure the Application Catalog service, you must create a database, service credentials, and API endpoints.
To create the database, complete these steps:
Murano can use various database types on the back end. For development purposes, SQLite is enough in most cases. For production installations, you should use MySQL or PostgreSQL databases.
Warning
Although murano could use a PostgreSQL database on the back end, it wasn’t thoroughly tested and should be used with caution.
Use the database access client to connect to the database server as the
root
user:$ mysql -u root -p
Create the
murano
database:CREATE DATABASE murano;
Grant proper access to the
murano
database:GRANT ALL PRIVILEGES ON murano.* TO 'murano'@'localhost' IDENTIFIED BY 'MURANO_DBPASS';
Replace
MURANO_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
murano
user:$ openstack user create --domain default --password-prompt murano
Add the
admin
role to themurano
user:$ openstack role add --project service --user murano admin
Create the murano service entities:
$ openstack service create --name murano --description "Application Catalog" application-catalog
Create the Application Catalog service API endpoints:
$ openstack endpoint create --region RegionOne \ application-catalog public http://<murano-ip>:8082 $ openstack endpoint create --region RegionOne \ application-catalog internal http://<murano-ip>:8082 $ openstack endpoint create --region RegionOne \ application-catalog admin http://<murano-ip>:8082
Note
URLs (publicurl, internalurl and adminurl) may be different depending on your environment.
Install and configure components¶
Install the packages:
# apt-get update # apt-get install murano-engine murano-api
Edit the
/etc/murano/murano.conf
file and complete the following actions:In the
[database]
section, configure database access:[database] ... connection = mysql+pymysql://murano:MURANO_DBPASS@controller/murano
Install the API service and Engine¶
Create a folder which will hold all Murano components.
mkdir ~/murano
Clone the murano git repository to the management server.
cd ~/murano git clone git://git.openstack.org/openstack/murano
Set up the murano config file
Murano has a common config file for API and Engine services.
First, generate a sample configuration file, using tox
cd ~/murano/murano tox -e genconfig
And make a copy of it for further modifications
cd ~/murano/murano/etc/murano ln -s murano.conf.sample murano.conf
Edit
murano.conf
with your favorite editor. Below is an example which contains basic settings you likely need to configure.Note
The example below uses SQLite database. Edit [database] section if you want to use any other database type.
[DEFAULT] debug = true verbose = true rabbit_host = %RABBITMQ_SERVER_IP% rabbit_userid = %RABBITMQ_USER% rabbit_password = %RABBITMQ_PASSWORD% rabbit_virtual_host = %RABBITMQ_SERVER_VIRTUAL_HOST% driver = messagingv2 ... [database] backend = sqlalchemy connection = sqlite:///murano.sqlite ... [keystone] auth_url = 'http://%OPENSTACK_HOST_IP%:5000/v2.0' ... [keystone_authtoken] auth_uri = 'http://%OPENSTACK_HOST_IP%:5000/v2.0' auth_host = '%OPENSTACK_HOST_IP%' auth_port = 5000 auth_protocol = http admin_tenant_name = %OPENSTACK_ADMIN_TENANT% admin_user = %OPENSTACK_ADMIN_USER% admin_password = %OPENSTACK_ADMIN_PASSWORD% ... [murano] url = http://%YOUR_HOST_IP%:8082 [rabbitmq] host = %RABBITMQ_SERVER_IP% login = %RABBITMQ_USER% password = %RABBITMQ_PASSWORD% virtual_host = %RABBITMQ_SERVER_VIRTUAL_HOST% [networking] default_dns = 8.8.8.8 # In case openstack neutron has no default # DNS configured
Create a virtual environment and install Murano prerequisites. We will use tox for that. The virtual environment will be created under .tox directory.
cd ~/murano/murano tox
Create database tables for Murano.
cd ~/murano/murano tox -e venv -- murano-db-manage \ --config-file ./etc/murano/murano.conf upgrade
Open a new console and launch Murano API. A separate terminal is required because the console will be locked by a running process.
cd ~/murano/murano tox -e venv -- murano-api --config-file ./etc/murano/murano.conf
Import Core Murano Library.
cd ~/murano/murano pushd ./meta/io.murano zip -r ../../io.murano.zip * popd tox -e venv -- murano --murano-url http://localhost:8082 \ package-import --is-public io.murano.zip
Open a new console and launch Murano Engine. A separate terminal is required because the console will be locked by a running process.
cd ~/murano/murano tox -e venv -- murano-engine --config-file ./etc/murano/murano.conf