puppet: Split out a zulip::profile::standalone_nodb class.

This commit is contained in:
Alex Vandiver
2024-04-04 18:54:35 +00:00
committed by Tim Abbott
parent 263212decf
commit a69e690122
4 changed files with 46 additions and 38 deletions

View File

@@ -183,18 +183,17 @@ If you are deploying Zulip from Git, you will also need to:
## Running Zulip's service dependencies on different machines
Zulip has full support for each top-level service living on its own
machine.
Zulip has full support for each top-level service living on its own machine.
You can configure remote servers for PostgreSQL, RabbitMQ, Redis,
in `/etc/zulip/settings.py`; just search for the service name in that
file and you'll find inline documentation in comments for how to
configure it.
You can configure remote servers for Memcached, PostgreSQL, RabbitMQ, Redis, and
Smokescreen in `/etc/zulip/settings.py`; just search for the service name in
that file and you'll find inline documentation in comments for how to configure
it.
Since some of these services require some configuration on the node
itself (e.g. installing our PostgreSQL extensions), we have designed
the Puppet configuration that Zulip uses for installing and upgrading
configuration to be completely modular.
Since some of these services require some configuration on the node itself
(e.g. installing our PostgreSQL extensions), we have designed the Puppet
configuration that Zulip uses for installing and upgrading configuration to be
completely modular.
For example, to install a Zulip Redis server on a machine, you can run
the following after unpacking a Zulip production release tarball:
@@ -231,28 +230,16 @@ below.
#### Step 1: Set up Zulip
Follow the [standard instructions](install.md), with one
change. When running the installer, pass the `--no-init-db`
flag, e.g.:
Follow the [standard instructions](install.md), with modified `install`
arguments:
```bash
sudo -s # If not already root
export PUPPET_CLASSES=zulip::profile::standalone_nodb
./zulip-server-*/scripts/setup/install --certbot \
--email=YOUR_EMAIL --hostname=YOUR_HOSTNAME \
--no-init-db --postgresql-missing-dictionaries
```
The script also installs and starts PostgreSQL on the server by
default. We don't need it, so run the following command to
stop and disable the local PostgreSQL server.
```bash
sudo service postgresql stop
sudo update-rc.d postgresql disable
```
This complication will be removed in a future version.
#### Step 2: Create the PostgreSQL database
Access an administrative `psql` shell on your PostgreSQL database, and

View File

@@ -45,8 +45,9 @@ that include:
- **`zulip::profile::app_frontend`**
- **`zulip::profile::memcached`**
- **`zulip::profile::postgresql`**
- **`zulip::profile::redis`**
- **`zulip::profile::rabbitmq`**
- **`zulip::profile::redis`**
- **`zulip::profile::smokescreen`**
If you are using a [Apache as a single-sign-on
authenticator](authentication-methods.md#apache-based-sso-with-remote_user),

View File

@@ -1,17 +1,21 @@
# @summary Complete Zulip server on one server
#
# This class includes all the modules you need to run an entire Zulip
# installation on a single server. If desired, you can split up the
# different `zulip::profile::*` components of a Zulip installation on
# different servers by using the modules below on different machines
# (the module list is stored in `puppet_classes` in
# /etc/zulip/zulip.conf). See the corresponding configuration in
# /etc/zulip/settings.py for how to find the various services is also
# required to make this work.
# different `zulip::profile::*` components of a Zulip installation
# onto different servers:
#
# - zulip::profile::app_frontend
# - zulip::profile::memcached
# - zulip::profile::postgresql
# - zulip::profile::rabbitmq
# - zulip::profile::redis
# - zulip::profile::smokescreen
#
# See the corresponding configuration in /etc/zulip/settings.py for
# how to find the various services is also required to make this work.
class zulip::profile::standalone {
include zulip::profile::base
include zulip::profile::app_frontend
include zulip::profile::standalone_nodb
include zulip::profile::postgresql
include zulip::profile::redis
include zulip::profile::memcached
include zulip::profile::rabbitmq
include zulip::localhost_camo
}

View File

@@ -0,0 +1,16 @@
# @summary Complete Zulip server, except the database server.
#
# This includes all of the parts necessary to run an entire Zulip
# installation on a single server, except the database. It is assumed
# that the PostgreSQL database is either hosted on another server with
# the `zulip::profile::postgresql` class applied, or a cloud-managed
# database is used (e.g. AWS RDS).
#
# @see https://zulip.readthedocs.io/en/latest/production/deployment.html#using-zulip-with-amazon-rds-as-the-database
class zulip::profile::standalone_nodb {
include zulip::profile::app_frontend
include zulip::profile::memcached
include zulip::profile::rabbitmq
include zulip::profile::redis
include zulip::localhost_camo
}