Install Murano API

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.

  1. 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;
      
  2. Source the admin credentials to gain access to admin-only CLI commands:

    $ . admin-openrc
    
  3. 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 the murano user:

      $ openstack role add --project service --user murano admin
      
    • Create the murano service entities:

      $ openstack service create --name murano --description "Application Catalog" application-catalog
      
  4. 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

  1. Install the packages:

    # apt-get update
    
    # apt-get install murano-engine murano-api
    
  2. 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

  1. Create a folder which will hold all Murano components.

    mkdir ~/murano
    
  2. Clone the murano git repository to the management server.

    cd ~/murano
    git clone https://git.openstack.org/openstack/murano
    
  3. 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
    
  4. 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]
    www_authenticate_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
    
  5. 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
    
  6. Create database tables for Murano.

    cd ~/murano/murano
    tox -e venv -- murano-db-manage \
      --config-file ./etc/murano/murano.conf upgrade
    
  7. 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
    
  8. 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
    
  9. 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
    
Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.