murano/doc/source/install/from-source.rst

7.2 KiB

Install Murano from Source

This section describes how to install and configure the Application Catalog service for Ubuntu 16.04 (LTS) from source code.

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 git://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

Install Murano Dashboard

Murano API & Engine services provide the core of Murano. However, your need a control plane to use it. This section describes how to install and run Murano Dashboard.

  1. Clone the murano dashboard repository.

    $ cd ~/murano
    $ git clone git://git.openstack.org/openstack/murano-dashboard
  2. Clone the horizon repository

    $ git clone git://git.openstack.org/openstack/horizon
  3. Create a virtual environment and install muranodashboard as an editable module:

    $ cd horizon
    $ tox -e venv -- pip install -e ../murano-dashboard
  4. Prepare local settings.

    $ cp openstack_dashboard/local/local_settings.py.example \
      openstack_dashboard/local/local_settings.py

    For more information, check out the official horizon documentation.

  5. Enable and configure Murano dashboard in the OpenStack Dashboard:

    • For Newton (and later) OpenStack installations, copy the plugin file, local settings files, and policy files.

      $ cp ../murano-dashboard/muranodashboard/local/enabled/*.py \
        openstack_dashboard/local/enabled/
      
      $ cp ../murano-dashboard/muranodashboard/local/local_settings.d/*.py \
        openstack_dashboard/local/local_settings.d/
      
      $ cp ../murano-dashboard/muranodashboard/conf/* openstack_dashboard/conf/
    • For the OpenStack installations prior to the Newton release, run:

      $ cp ../murano-dashboard/muranodashboard/local/_50_murano.py \
        openstack_dashboard/local/enabled/

    Customize local settings of your horizon installation, by editing the openstack_dashboard/local/local_settings.py file:

    ...
    ALLOWED_HOSTS = '*'
    
    # Provide OpenStack Lab credentials
    OPENSTACK_HOST = '%OPENSTACK_HOST_IP%'
    
    ...
    
    DEBUG_PROPAGATE_EXCEPTIONS = DEBUG

    Change the default session back end-from using browser cookies to using a database instead to avoid issues with forms during the creation of applications:

    DATABASES = {
      'default': {
      'ENGINE': 'django.db.backends.sqlite3',
      'NAME': 'murano-dashboard.sqlite',
      }
    }
    
    SESSION_ENGINE = 'django.contrib.sessions.backends.db'
  6. (Optional) If you do not plan to get the murano service from the keystone application catalog, specify where the murano-api service is running:

    MURANO_API_URL = 'http://%MURANO_IP%:8082'
  7. (Optional) If you have set up the database as a session back-end (this is done by default with the murano local_settings file starting with Newton), perform database migration:

    $ tox -e venv -- python manage.py migrate --noinput
  8. Run the Django server at 127.0.0.1:8000 or provide different IP and PORT parameters:

    $ tox -e venv -- python manage.py runserver <IP:PORT>

Note

The development server restarts automatically following every code change.

Result: The murano dashboard is available at http://IP:PORT.