.. _docker-install-ubuntu:
Docker Install Ubuntu
~~~~~~~~~~~~~~~~~~~~~
This section describes how to install and configure Skyline service.
Before you begin, you must have a ready OpenStack environment. At
least it includes ``keystone, glance, nova and neutron service``.
.. note::
You have install the docker service on the host machine. You can follow
the `docker installation `_.
Prerequisites
-------------
Before you install and configure Skyline service, you must create a database.
#. To create the database, complete these steps:
#. Use the database access client to connect to the database
server as the ``root`` user:
.. code-block:: console
# mysql
#. Create the ``skyline`` database:
.. code-block:: console
MariaDB [(none)]> CREATE DATABASE skyline DEFAULT CHARACTER SET \
utf8 DEFAULT COLLATE utf8_general_ci;
#. Grant proper access to the ``skyline`` database:
.. code-block:: console
MariaDB [(none)]> GRANT ALL PRIVILEGES ON skyline.* TO 'skyline'@'localhost' \
IDENTIFIED BY 'SKYLINE_DBPASS';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON skyline.* TO 'skyline'@'%' \
IDENTIFIED BY 'SKYLINE_DBPASS';
Replace ``SKYLINE_DBPASS`` with a suitable password.
#. Exit the database access client.
#. Source the ``admin`` credentials to gain access to admin-only
CLI commands:
.. code-block:: console
$ . admin-openrc
#. To create the service credentials, complete these steps:
#. Create a ``skyline`` user:
.. code-block:: console
$ openstack user create --domain default --password-prompt skyline
User Password:
Repeat User Password:
+---------------------+----------------------------------+
| Field | Value |
+---------------------+----------------------------------+
| domain_id | default |
| enabled | True |
| id | 1qaz2wsx3edc4rfv5tgb6yhn7ujm8ikl |
| name | skyline |
| options | {} |
| password_expires_at | None |
+---------------------+----------------------------------+
#. Add the ``admin`` role to the ``skyline`` user:
.. code-block:: console
$ openstack role add --project service --user skyline admin
.. note::
This command provides no output.
Install and configure components
--------------------------------
We will install Skyline service from docker image.
#. Pull Skyline service image from Docker Hub:
.. code-block:: console
$ sudo docker pull 99cloud/skyline:latest
#. Ensure that some folders of skyline have been created
.. code-block:: console
$ sudo mkdir -p /etc/skyline /var/log/skyline /var/lib/skyline /var/log/nginx
#. Configure ``/etc/skyline/skyline.yaml`` file
.. note::
Change the related configuration in ``/etc/skyline/skyline.yaml``. Detailed introduction
of the configuration can be found in
`OpenStack Skyline Settings `__.
.. code-block:: yaml
default:
database_url: mysql://skyline:SKYLINE_DBPASS@DB_SERVER:3306/skyline
debug: true
log_dir: /var/log
openstack:
keystone_url: http://KEYSTONE_SERVER:5000/v3/
system_user_password: SKYLINE_SERVICE_PASSWORD
Replace ``SKYLINE_DBPASS``, ``DB_SERVER``, ``KEYSTONE_SERVER`` and
``SKYLINE_SERVICE_PASSWORD`` with a correct value.
Finalize installation
---------------------
#. Run bootstrap server
.. code-block:: console
$ sudo docker run -d --name skyline_bootstrap \
-e KOLLA_BOOTSTRAP="" \
-v /etc/skyline/skyline.yaml:/etc/skyline/skyline.yaml \
-v /var/log:/var/log \
--net=host 99cloud/skyline:latest
.. code-block:: text
If you see the following message, it means that the bootstrap server is successful:
+ echo '/usr/local/bin/gunicorn -c /etc/skyline/gunicorn.py skyline_apiserver.main:app'
+ mapfile -t CMD
++ xargs -n 1
++ tail /run_command
+ [[ -n 0 ]]
+ cd /skyline-apiserver/
+ make db_sync
alembic -c skyline_apiserver/db/alembic/alembic.ini upgrade head
2022-08-19 07:49:16.004 | INFO | alembic.runtime.migration:__init__:204 - Context impl MySQLImpl.
2022-08-19 07:49:16.005 | INFO | alembic.runtime.migration:__init__:207 - Will assume non-transactional DDL.
+ exit 0
#. Cleanup bootstrap server
.. code-block:: console
$ sudo docker rm -f skyline_bootstrap
#. Run skyline
.. code-block:: console
$ sudo docker run -d --name skyline --restart=always \
-v /etc/skyline/skyline.yaml:/etc/skyline/skyline.yaml \
-v /var/log:/var/log \
--net=host 99cloud/skyline:latest
.. note::
The skyline image is both include skyline-apiserver and skyline-console.
And you can visit the skyline UI ``https://xxxxx:9999``.