From 3445a39781d3bcb0a11aab5764ce8b0dcd4b288e Mon Sep 17 00:00:00 2001 From: zhurong Date: Fri, 27 Jul 2018 15:38:42 +0800 Subject: [PATCH] Refactor murano Installation Guide 1.remove the duplicate install murano api and engine 2.add install from source code Change-Id: Ia992679c08f18a895185b1cecbb480e9879ba1d2 Closes-Bug: #1762013 --- doc/source/install/from-source.rst | 282 +++++++++++++++++++++++ doc/source/install/install-api.rst | 105 ++------- doc/source/install/install-dashboard.rst | 95 ++------ doc/source/install/install.rst | 1 + 4 files changed, 309 insertions(+), 174 deletions(-) create mode 100644 doc/source/install/from-source.rst diff --git a/doc/source/install/from-source.rst b/doc/source/install/from-source.rst new file mode 100644 index 000000000..9907de087 --- /dev/null +++ b/doc/source/install/from-source.rst @@ -0,0 +1,282 @@ +Install Murano from Source +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +This section describes how to install and configure the Application Catalog +service for Ubuntu 16.04 (LTS) from source code. + +.. include:: common_prerequisites.rst + +Install the API service and Engine +---------------------------------- + +#. Create a folder which will hold all Murano components. + + .. code-block:: console + + mkdir ~/murano + .. + +#. Clone the murano git repository to the management server. + + .. code-block:: console + + 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 + + .. code-block:: console + + cd ~/murano/murano + tox -e genconfig + .. + + And make a copy of it for further modifications + + .. code-block:: console + + 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. + .. + + .. code-block:: ini + + [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 + .. + +#. Create a virtual environment and install Murano prerequisites. We will use + *tox* for that. The virtual environment will be created under *.tox* + directory. + + .. code-block:: console + + cd ~/murano/murano + tox + .. + +#. Create database tables for Murano. + + .. code-block:: console + + 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. + + .. code-block:: console + + cd ~/murano/murano + tox -e venv -- murano-api --config-file ./etc/murano/murano.conf + .. + +#. Import Core Murano Library. + + .. code-block:: console + + 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. + + .. code-block:: console + + 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. + +#. Clone the murano dashboard repository. + + .. code-block:: console + + $ cd ~/murano + $ git clone git://git.openstack.org/openstack/murano-dashboard + .. + +#. Clone the ``horizon`` repository + + .. code-block:: console + + $ git clone git://git.openstack.org/openstack/horizon + .. + +#. Create a virtual environment and install ``muranodashboard`` as an editable + module: + + .. code-block:: console + + $ cd horizon + $ tox -e venv -- pip install -e ../murano-dashboard + .. + +#. Prepare local settings. + + .. code-block:: console + + $ cp openstack_dashboard/local/local_settings.py.example \ + openstack_dashboard/local/local_settings.py + .. + + For more information, check out the official + `horizon documentation `_. + +#. 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. + + .. code-block:: console + + $ 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: + + .. code-block:: console + + $ cp ../murano-dashboard/muranodashboard/local/_50_murano.py \ + openstack_dashboard/local/enabled/ + .. + + Customize local settings of your horizon installation, by editing the + :file:`openstack_dashboard/local/local_settings.py` file: + + .. code-block:: python + + ... + 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: + + .. code-block:: python + + DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.sqlite3', + 'NAME': 'murano-dashboard.sqlite', + } + } + + SESSION_ENGINE = 'django.contrib.sessions.backends.db' + .. + +#. (Optional) If you do not plan to get the murano service from the keystone + application catalog, specify where the murano-api service is running: + + .. code-block:: python + + MURANO_API_URL = 'http://%MURANO_IP%:8082' + .. + +#. (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: + + .. code-block:: console + + $ tox -e venv -- python manage.py migrate --noinput + .. + +#. Run the Django server at 127.0.0.1:8000 or provide different IP and PORT + parameters: + + .. code-block:: console + + $ tox -e venv -- python manage.py runserver + .. + +.. note:: + + The development server restarts automatically following every code change. +.. + +**Result:** The murano dashboard is available at http://IP:PORT. diff --git a/doc/source/install/install-api.rst b/doc/source/install/install-api.rst index 0871b67b6..f042cad69 100644 --- a/doc/source/install/install-api.rst +++ b/doc/source/install/install-api.rst @@ -17,7 +17,7 @@ Install Murano API ~~~~~~~~~~~~~~~~~~ This section describes how to install and configure the Application Catalog -service for Ubuntu 14.04 (LTS). +service for Ubuntu 16.04 (LTS). .. include:: common_prerequisites.rst @@ -32,55 +32,6 @@ Install and configure components # 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: - - .. code-block:: ini - - [database] - ... - connection = mysql+pymysql://murano:MURANO_DBPASS@controller/murano - -Install the API service and Engine ----------------------------------- - -#. Create a folder which will hold all Murano components. - - .. code-block:: console - - mkdir ~/murano - .. - -#. Clone the murano git repository to the management server. - - .. code-block:: console - - 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 - - .. code-block:: console - - cd ~/murano/murano - tox -e genconfig - .. - - And make a copy of it for further modifications - - .. code-block:: console - - 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. @@ -104,8 +55,7 @@ Install the API service and Engine ... [database] - backend = sqlalchemy - connection = sqlite:///murano.sqlite + connection = mysql+pymysql://murano:MURANO_DBPASS@controller/murano ... @@ -139,51 +89,22 @@ Install the API service and Engine # 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. +#. Populate the Murano database: - .. code-block:: console + .. code-block:: console - cd ~/murano/murano - tox - .. + # su -s /bin/sh -c "murano-db-manage upgrade" murano -#. Create database tables for Murano. + .. note:: - .. code-block:: console + Ignore any deprecation messages in this output. - cd ~/murano/murano - tox -e venv -- murano-db-manage \ - --config-file ./etc/murano/murano.conf upgrade - .. +Finalize installation +--------------------- -#. Open a new console and launch Murano API. A separate terminal is - required because the console will be locked by a running process. +#. Restart the Application Catalog services: - .. code-block:: console + .. code-block:: console - cd ~/murano/murano - tox -e venv -- murano-api --config-file ./etc/murano/murano.conf - .. - -#. Import Core Murano Library. - - .. code-block:: console - - 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. - - .. code-block:: console - - cd ~/murano/murano - tox -e venv -- murano-engine --config-file ./etc/murano/murano.conf - .. + # service murano-api restart + # service murano-engine restart diff --git a/doc/source/install/install-dashboard.rst b/doc/source/install/install-dashboard.rst index 478823e9a..03905747c 100644 --- a/doc/source/install/install-dashboard.rst +++ b/doc/source/install/install-dashboard.rst @@ -20,79 +20,25 @@ 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. -#. Clone the murano dashboard repository. +#. Install OpenStack Dashboard, the steps please reference from + `OpenStack Dashboard Install Guide `__. - .. code-block:: console +#. Install the packages: - $ cd ~/murano - $ git clone git://git.openstack.org/openstack/murano-dashboard - .. + .. code-block:: console -#. Clone the ``horizon`` repository + # apt install python-murano-dashboard - .. code-block:: console - - $ git clone git://git.openstack.org/openstack/horizon - .. - -#. Create a virtual environment and install ``muranodashboard`` as an editable - module: - - .. code-block:: console - - $ cd horizon - $ tox -e venv -- pip install -e ../murano-dashboard - .. - -#. Prepare local settings. - - .. code-block:: console - - $ cp openstack_dashboard/local/local_settings.py.example \ - openstack_dashboard/local/local_settings.py - .. - - For more information, check out the official - `horizon documentation `_. - -#. 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. - - .. code-block:: console - - $ 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: - - .. code-block:: console - - $ cp ../murano-dashboard/muranodashboard/local/_50_murano.py \ - openstack_dashboard/local/enabled/ - .. - - Customize local settings of your horizon installation, by editing the - :file:`openstack_dashboard/local/local_settings.py` file: +#. Edit the ``/etc/openstack-dashboard/local_settings.py`` + file to customize local settings of your envi .. code-block:: python ... - ALLOWED_HOSTS = '*' - - # Provide OpenStack Lab credentials OPENSTACK_HOST = '%OPENSTACK_HOST_IP%' - + OPENSTACK_KEYSTONE_DEFAULT_ROLE = '%OPENSTACK_ROLE%' ... - DEBUG_PROPAGATE_EXCEPTIONS = DEBUG .. Change the default session back end-from using browser cookies to using a @@ -119,26 +65,11 @@ Dashboard. MURANO_API_URL = 'http://%MURANO_IP%:8082' .. -#. (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: +Finalize installation +--------------------- - .. code-block:: console +#. Restart the Apache service: - $ tox -e venv -- python manage.py migrate --noinput - .. + .. code-block:: console -#. Run the Django server at 127.0.0.1:8000 or provide different IP and PORT - parameters: - - .. code-block:: console - - $ tox -e venv -- python manage.py runserver - .. - -.. note:: - - The development server restarts automatically following every code change. -.. - -**Result:** The murano dashboard is available at http://IP:PORT. + # service apache2 restart diff --git a/doc/source/install/install.rst b/doc/source/install/install.rst index 431130640..f6ab49972 100644 --- a/doc/source/install/install.rst +++ b/doc/source/install/install.rst @@ -27,5 +27,6 @@ be adapted to work with other types of distros. install-api.rst install-dashboard.rst + from-source.rst install-network-config.rst enable-ssl.rst