Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 2 additions & 3 deletions docs/source/install/__installer_passwords.rst
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
.. note::

For security reasons, the installer script enables authentication and generates random
passwords for dependent services such as MongoDB and PostgreSQL.
passwords for dependent services such as MongoDB.

If for some reason (e.g. debugging), you need to access those services directly you can find
passwords in the config files - ``/etc/st2/st2.conf`` for MongoDB and RabbitMQ password and
``/etc/mistral/mistral.conf`` for PostgreSQL password.
passwords in the config files - ``/etc/st2/st2.conf`` for MongoDB and RabbitMQ password.
13 changes: 0 additions & 13 deletions docs/source/install/ansible.rst
Original file line number Diff line number Diff line change
Expand Up @@ -53,10 +53,8 @@ complete installation:
- ``epel`` - Repository with extra packages for ``RHEL/CentOS``.
- ``mongodb`` - Main DB storage engine.
- ``rabbitmq`` - Message broker.
- ``postgresql`` - DB storage engine for Mistral.
- ``st2repos`` - Adds |st2| PackageCloud repositories.
- ``st2`` - Install and configure |st2| itself.
- ``st2mistral`` - Install and configure |st2| Mistral workflow engine.
- ``nginx`` - Dependency for ``st2web``.
- ``st2web`` - Nice & shiny WebUI for |st2|.
- ``nodejs`` - Dependency for ``st2chatops``.
Expand All @@ -77,7 +75,6 @@ Here's a more advanced example showing how to customize your |st2| deployment:
roles:
- mongodb
- rabbitmq
- postgresql
- nginx
- nodejs

Expand All @@ -99,16 +96,6 @@ Here's a more advanced example showing how to customize your |st2| deployment:
# Dict to edit https://github.com/StackStorm/st2/blob/master/conf/st2.conf.sample
st2_config: {}

- name: Install and configure st2mistral
role: st2mistral
vars:
st2mistral_version: latest
st2mistral_db: mistral
st2mistral_db_username: mistral
st2mistral_db_password: StackStorm
# Dict to edit https://github.com/StackStorm/st2-packages/blob/master/packages/st2mistral/conf/mistral.conf
st2mistral_config: {}

- name: Install st2web
role: st2web

Expand Down
5 changes: 2 additions & 3 deletions docs/source/install/common/configure_components.rst
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
If you are not running RabbitMQ, MongoDB or PostgreSQL on the same system, or have changed the
If you are not running RabbitMQ or MongoDB on the same system, or have changed the
defaults, please adjust these settings:

* RabbitMQ connection at ``/etc/st2/st2.conf`` and ``/etc/mistral/mistral.conf``
* RabbitMQ connection at ``/etc/st2/st2.conf``
* MongoDB at ``/etc/st2/st2.conf``
* PostgreSQL at ``/etc/mistral/mistral.conf``

See the :doc:`Configuration documentation </install/config/config>` for more information.
17 changes: 5 additions & 12 deletions docs/source/install/common/security_notes.rst
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
By default, when MongoDB, RabbitMQ and PostgreSQL are installed, they have authentication disabled
By default, when MongoDB and RabbitMQ are installed, they have authentication disabled
or use a default static password. As such, after you install those services you should configure
them and enable authentication with strong randomly generated passwords.

Expand All @@ -9,7 +9,6 @@ documentation. For more information refer to the links below:

* MongoDB - https://docs.mongodb.com/manual/tutorial/enable-authentication/, https://docs.mongodb.com/manual/core/authorization/
* RabbitMQ - https://www.rabbitmq.com/authentication.html
* PostgreSQL - https://www.postgresql.org/docs/9.4/static/auth-methods.html

After you enable authentication for those components, you will also need to update |st2|
services to use the new settings.
Expand All @@ -22,26 +21,20 @@ This means editing the following configuration options:
* ``database.password`` - MongoDB database password.
* ``messaging.url`` - RabbitMQ transport url (``amqp://<username>:<password>@<hostname>:5672``)

2. Mistral - ``/etc/mistral/mistral.conf``

* ``database.connection`` - PostgreSQL database connection string (``postgresql+psycopg2://<username>:<password>@<hostname>/mistral``)
* ``transport_url`` - RabbitMQ transport url (``rabbit://<username>:<password>@<hostname>:5672``)

In addition, you are strongly encouraged to follow these best practices for running network
services:

* Ensure communication between services is encrypted. Enable SSL/TLS for MongoDB, RabbitMQ,
and PostgreSQL.
* Ensure communication between services is encrypted. Enable SSL/TLS for MongoDB and RabbitMQ,
* Configure services to only listen on localhost, and where needed, internal IP addresses. There
is usually no need for most services which are used by |st2| (MongoDB, RabbitMQ, PostgreSQL) to
is usually no need for most services which are used by |st2| (MongoDB, RabbitMQ) to
be available on a public IP address.
* Configure a firewall and set up a whitelist. The firewall should only allow access by those
users and systems which need access to those services. API and auth services usually need to be
accessible to your users, but other dependent services such as MongoDB, RabbitMQ and PostgreSQL
accessible to your users, but other dependent services such as MongoDB and RabbitMQ
don't. These should not be directly accessible by users, and only |st2| components should be
allowed to talk to them.
* Where possible, you should also utilize additional network-based isolation and security features
such as DMZs.

The steps mentioned above are especially important for distributed production deployments where
|st2| components are running on multiple servers.
|st2| components are running on multiple servers.
14 changes: 0 additions & 14 deletions docs/source/install/common/setup_mistral_database.rst

This file was deleted.

57 changes: 0 additions & 57 deletions docs/source/install/config/config.rst
Original file line number Diff line number Diff line change
Expand Up @@ -351,63 +351,6 @@ file to pass custom environment variables to the ``st2actionrunner`` service/uni

WORKERS=25

Configure Mistral
-----------------

There are a number of configurable options available under the mistral section in
``/etc/st2/st2.conf``. If the mistral section is not provided, default values will be used. By
default, all Keystone related options are unset and |st2| will not pass any credentials for
authentication to Mistral. Please refer to OpenStack and Mistral documentation for Keystone setup.

+-----------------------+--------------------------------------------------------+
| options | description |
+=======================+========================================================+
| v2_base_url | Mistral API v2 root endpoint |
+-----------------------+--------------------------------------------------------+
| retry_exp_msec | Multiplier for the exponential backoff. |
+-----------------------+--------------------------------------------------------+
| retry_exp_max_msec | Max time for each set of backoff. |
+-----------------------+--------------------------------------------------------+
| retry_stop_max_msec | Max time to stop retrying. |
+-----------------------+--------------------------------------------------------+
| keystone_username | Username for authentication with OpenStack Keystone. |
+-----------------------+--------------------------------------------------------+
| keystone_password | Password for authentication with OpenStack Keystone. |
+-----------------------+--------------------------------------------------------+
| keystone_project_name | OpenStack project scope. |
+-----------------------+--------------------------------------------------------+
| keystone_auth_url | v3 Auth URL for OpenStack Keystone. |
+-----------------------+--------------------------------------------------------+

.. code-block:: ini

# Example with basic options. The v2_base_url is set to http://workflow.example.com:8989/v2.
# On connection error, the following configuration sets up the action runner to retry
# connecting to Mistral for up to 10 minutes. The retries is setup to be exponential for
# 5 minutes. So in this case, there will be two sets of exponential retries during
# the 10 minutes.

[mistral]
v2_base_url = http://workflow.example.com:8989/v2
retry_exp_msec = 1000
retry_exp_max_msec = 300000
retry_stop_max_msec = 600000

.. code-block:: ini

# Example with auth options.

[mistral]
v2_base_url = http://workflow.example.com:8989/v2
retry_exp_msec = 1000
retry_exp_max_msec = 300000
retry_stop_max_msec = 600000
keystone_username = mistral
keystone_password = pass123
keystone_project_name = default
keystone_auth_url = http://identity.example.com:5000/v3


Authentication
--------------

Expand Down
4 changes: 0 additions & 4 deletions docs/source/install/k8s_ha.rst
Original file line number Diff line number Diff line change
Expand Up @@ -313,10 +313,6 @@ st2workflowengine drives the execution of orquesta workflows and actually schedu
Multiple st2workflowengine processes can run in active-active mode and so minimum ``2`` K8s Deployment replicas are created by default.
All the workflow engine processes will share the load and pick up more work if one or more of the processes become available.

.. note::
As Mistral is going to be deprecated and removed from StackStorm platform soon, Helm chart relies only on
:doc:`Orquesta st2workflowengine </orquesta/index>` as a new native workflow engine.

st2notifier
___________
Multiple st2notifier processes can run in active-active mode, using connections to RabbitMQ and MongoDB and generating triggers based on
Expand Down
17 changes: 3 additions & 14 deletions docs/source/install/overview.rst
Original file line number Diff line number Diff line change
Expand Up @@ -68,18 +68,7 @@ the right API, authentication options, suppress insecure warnings for self-signe
other conveniences see the :doc:`/reference/cli`. ``st2client`` is packaged with ``st2``, or can be
installed independently.

3. st2mistral
--------------

:doc:`/mistral` is a workflow service component that |st2| uses for long-running workflows. It
is packaged as ``st2mistral``, installed under ``/opt/stackstorm/mistral``, runs in a dedicated
Python virtualenv, and is configured via ``/etc/mistral/mistral.conf``. ``mistral-server`` runs
workflow logic and calling actions, reaching out to st2api for action execution requests.
``st2mistral`` is a mistral plugin with stackstorm extensions. ``mistral-api`` is an internal
end-point accessed by ``st2actionrunner`` and ``st2notifier``. In a single-box deployment it is
restricted to localhost.

4. NGINX for WebUI and SSL termination
3. NGINX for WebUI and SSL termination
--------------------------------------
* **nginx** provides SSL termination, redirects HTTP to HTTPS, serves WebUI static components, and
reverse-proxies REST API endpoints to st2* web services.
Expand All @@ -90,7 +79,7 @@ restricted to localhost.
st2auth and st2api REST API endpoints. NGINX proxies inbound requests to ``/api`` and ``/auth``
to the st2api and st2auth services respectively.

5. st2chatops - ChatOps components
4. st2chatops - ChatOps components
----------------------------------
|st2| Chatops components are `Hubot <https://hubot.github.com/>`_, `|st2|'s Hubot adapter
<https://github.com/StackStorm/hubot-stackstorm>`_, and plugins for connecting to `different Chat
Expand All @@ -103,7 +92,7 @@ ChatOps can be also enabled by installing `hubot-stackstorm plugin

Dependencies
------------
The required dependencies are RabbitMQ, MongoDB, and PostgreSQL. The optional dependencies are:
The required dependencies are RabbitMQ, and MongoDB. The optional dependencies are:

- nginx for SSL termination, reverse-proxying API endpoints and serving static HTML.
- Redis or Zookeeper for concurrency policies (see :doc:`/reference/policies`).
Expand Down
23 changes: 2 additions & 21 deletions docs/source/install/rhel7.rst
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ Install Dependencies

.. include:: __mongodb_note.rst

Install MongoDB, RabbitMQ, and PostgreSQL:
Install MongoDB, and RabbitMQ:

.. code-block:: bash

Expand All @@ -73,20 +73,6 @@ Install MongoDB, RabbitMQ, and PostgreSQL:
sudo systemctl start mongod rabbitmq-server
sudo systemctl enable mongod rabbitmq-server

# Install and configure postgres
sudo yum -y install postgresql-server postgresql-contrib postgresql-devel

# Initialize PostgreSQL
sudo postgresql-setup initdb

# Make localhost connections to use an MD5-encrypted password for authentication
sudo sed -i "s/\(host.*all.*all.*127.0.0.1\/32.*\)ident/\1md5/" /var/lib/pgsql/data/pg_hba.conf
sudo sed -i "s/\(host.*all.*all.*::1\/128.*\)ident/\1md5/" /var/lib/pgsql/data/pg_hba.conf

# Start PostgreSQL service
sudo systemctl start postgresql
sudo systemctl enable postgresql

Setup Repositories
~~~~~~~~~~~~~~~~~~

Expand All @@ -102,7 +88,7 @@ Install |st2| Components

.. code-block:: bash

sudo yum install -y st2 st2mistral
sudo yum install -y st2

.. include:: common/configure_components.rst

Expand All @@ -111,11 +97,6 @@ Setup Datastore Encryption

.. include:: common/datastore_crypto_key.rst

Setup Mistral Database
~~~~~~~~~~~~~~~~~~~~~~

.. include:: common/setup_mistral_database.rst

Configure SSH and SUDO
~~~~~~~~~~~~~~~~~~~~~~

Expand Down
3 changes: 0 additions & 3 deletions docs/source/install/rhel8.rst
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,6 @@ Please check the :doc:`supported versions and system requirements <system_requir
does not support Python 2 actions. `More info about python in RHEL 8 and CentOS 8.
<https://developers.redhat.com/blog/2019/05/07/what-no-python-in-red-hat-enterprise-linux-8/>`_

Mistral is not supported on RHEL 8/CentOS 8. All workflows must be written in
:doc:`Orquesta </orquesta/index>`.

Minimal Installation
--------------------

Expand Down
1 change: 0 additions & 1 deletion docs/source/install/system_requirements.rst
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,6 @@ By default, |st2| and related services use these TCP ports:
* nginx (80, 443)
* mongodb (27017)
* rabbitmq (4369, 5672, 25672)
* postgresql (5432)
* st2auth (9100)
* st2api (9101)
* st2stream (9102)
Expand Down
10 changes: 2 additions & 8 deletions docs/source/install/u16.rst
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ Install Dependencies

.. include:: __mongodb_note.rst

Install MongoDB, RabbitMQ, and PostgreSQL:
Install MongoDB, and RabbitMQ:

.. code-block:: bash

Expand All @@ -37,7 +37,6 @@ Install MongoDB, RabbitMQ, and PostgreSQL:
sudo apt-get install -y crudini
sudo apt-get install -y mongodb-org
sudo apt-get install -y rabbitmq-server
sudo apt-get install -y postgresql

For Ubuntu ``Xenial`` you may need to enable and start MongoDB.

Expand All @@ -61,7 +60,7 @@ Install |st2| Components

.. code-block:: bash

sudo apt-get install -y st2 st2mistral
sudo apt-get install -y st2

.. include:: common/configure_components.rst

Expand All @@ -70,11 +69,6 @@ Setup Datastore Encryption

.. include:: common/datastore_crypto_key.rst

Setup Mistral Database
~~~~~~~~~~~~~~~~~~~~~~

.. include:: common/setup_mistral_database.rst

.. _ref-config-ssh-sudo-deb:

Configure SSH and SUDO
Expand Down
3 changes: 0 additions & 3 deletions docs/source/install/u18.rst
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,6 @@ Ubuntu Bionic (18.04)
|st2| on Ubuntu ``18.04`` runs all services, actions and sensors using Python 3 **only**. It
does not support Python2 actions.

Mistral is not supported on Ubuntu ``18.04``. All workflows must be written in
:doc:`Orquesta </orquesta/index>`.

System Requirements
-------------------

Expand Down
Loading