summaryrefslogtreecommitdiff
path: root/doc/administration/high_availability
diff options
context:
space:
mode:
Diffstat (limited to 'doc/administration/high_availability')
-rw-r--r--doc/administration/high_availability/consul.md2
-rw-r--r--doc/administration/high_availability/database.md52
-rw-r--r--doc/administration/high_availability/gitlab.md2
-rw-r--r--doc/administration/high_availability/nfs.md6
-rw-r--r--doc/administration/high_availability/nfs_host_client_setup.md12
-rw-r--r--doc/administration/high_availability/pgbouncer.md6
-rw-r--r--doc/administration/high_availability/redis.md8
7 files changed, 45 insertions, 43 deletions
diff --git a/doc/administration/high_availability/consul.md b/doc/administration/high_availability/consul.md
index 71d380dbec7..0ea5e55cc35 100644
--- a/doc/administration/high_availability/consul.md
+++ b/doc/administration/high_availability/consul.md
@@ -58,7 +58,7 @@ On each Consul node perform the following:
Before moving on, make sure Consul is configured correctly. Run the following
command to verify all server nodes are communicating:
-```sh
+```shell
/opt/gitlab/embedded/bin/consul members
```
diff --git a/doc/administration/high_availability/database.md b/doc/administration/high_availability/database.md
index 8e57b049730..daeb0f9baf5 100644
--- a/doc/administration/high_availability/database.md
+++ b/doc/administration/high_availability/database.md
@@ -46,7 +46,7 @@ deploy the bundled PostgreSQL.
and confirmation. Use the value that is output by this command in the next
step as the value of `POSTGRESQL_PASSWORD_HASH`.
- ```sh
+ ```shell
sudo gitlab-ctl pg-password-md5 gitlab
```
@@ -202,7 +202,7 @@ When using default setup, minimum configuration requires:
- `CONSUL_PASSWORD_HASH`. This is a hash generated out of Consul username/password pair.
Can be generated with:
- ```sh
+ ```shell
sudo gitlab-ctl pg-password-md5 CONSUL_USERNAME
```
@@ -245,7 +245,7 @@ We will need the following password information for the application's database u
- `POSTGRESQL_PASSWORD_HASH`. This is a hash generated out of the username/password pair.
Can be generated with:
- ```sh
+ ```shell
sudo gitlab-ctl pg-password-md5 POSTGRESQL_USERNAME
```
@@ -258,7 +258,7 @@ When using default setup, minimum configuration requires:
- `PGBOUNCER_PASSWORD_HASH`. This is a hash generated out of PgBouncer username/password pair.
Can be generated with:
- ```sh
+ ```shell
sudo gitlab-ctl pg-password-md5 PGBOUNCER_USERNAME
```
@@ -376,13 +376,13 @@ Select one node as a primary node.
1. Open a database prompt:
- ```sh
+ ```shell
gitlab-psql -d gitlabhq_production
```
1. Enable the `pg_trgm` extension:
- ```sh
+ ```shell
CREATE EXTENSION pg_trgm;
```
@@ -390,7 +390,7 @@ Select one node as a primary node.
1. Verify the cluster is initialized with one node:
- ```sh
+ ```shell
gitlab-ctl repmgr cluster show
```
@@ -411,7 +411,7 @@ Select one node as a primary node.
1. Set up the repmgr standby:
- ```sh
+ ```shell
gitlab-ctl repmgr standby setup MASTER_NODE_NAME
```
@@ -436,7 +436,7 @@ Select one node as a primary node.
1. Verify the node now appears in the cluster:
- ```sh
+ ```shell
gitlab-ctl repmgr cluster show
```
@@ -457,7 +457,7 @@ Before moving on, make sure the databases are configured correctly. Run the
following command on the **primary** node to verify that replication is working
properly:
-```sh
+```shell
gitlab-ctl repmgr cluster show
```
@@ -475,7 +475,7 @@ If the 'Role' column for any node says "FAILED", check the
Also, check that the check master command works successfully on each node:
-```sh
+```shell
su - gitlab-consul
gitlab-ctl repmgr-check-master || echo 'This node is a standby repmgr node'
```
@@ -512,7 +512,7 @@ attributes set, but the following need to be set.
Ensure that all migrations ran:
-```sh
+```shell
gitlab-rake gitlab:db:configure
```
@@ -702,7 +702,7 @@ After deploying the configuration follow these steps:
Enable the `pg_trgm` extension
- ```sh
+ ```shell
gitlab-psql -d gitlabhq_production
```
@@ -714,7 +714,7 @@ After deploying the configuration follow these steps:
Make this node a standby of the primary
- ```sh
+ ```shell
gitlab-ctl repmgr standby setup 10.6.0.21
```
@@ -722,7 +722,7 @@ After deploying the configuration follow these steps:
Make this node a standby of the primary
- ```sh
+ ```shell
gitlab-ctl repmgr standby setup 10.6.0.21
```
@@ -730,13 +730,13 @@ After deploying the configuration follow these steps:
Set `gitlab-consul` user's PgBouncer password to `toomanysecrets`
- ```sh
+ ```shell
gitlab-ctl write-pgpass --host 127.0.0.1 --database pgbouncer --user pgbouncer --hostuser gitlab-consul
```
Run database migrations
- ```sh
+ ```shell
gitlab-rake gitlab:db:configure
```
@@ -863,7 +863,7 @@ If you need to failover manually, you have two options:
Run:
-```sh
+```shell
gitlab-ctl stop postgresql
```
@@ -875,14 +875,14 @@ standby nodes.
1. Ensure the old master node is not still active.
1. Login to the server that should become the new master and run:
- ```sh
+ ```shell
gitlab-ctl repmgr standby promote
```
1. If there are any other standby servers in the cluster, have them follow
the new master server:
- ```sh
+ ```shell
gitlab-ctl repmgr standby follow NEW_MASTER
```
@@ -894,7 +894,7 @@ after it has been restored to service.
- If you want to remove the node from the cluster, on any other node in the
cluster, run:
- ```sh
+ ```shell
gitlab-ctl repmgr standby unregister --node=X
```
@@ -902,7 +902,7 @@ after it has been restored to service.
To find this, you can use:
- ```sh
+ ```shell
awk -F = '$1 == "node" { print $2 }' /var/opt/gitlab/postgresql/repmgr.conf
```
@@ -914,13 +914,13 @@ after it has been restored to service.
Then you will use this id to unregister the node:
- ```sh
+ ```shell
gitlab-ctl repmgr standby unregister --node=959789412
```
- To add the node as a standby server:
- ```sh
+ ```shell
gitlab-ctl repmgr standby follow NEW_MASTER
gitlab-ctl restart repmgrd
```
@@ -972,7 +972,7 @@ the previous section:
1. On the current master node, create a password for the `gitlab` and
`gitlab_repmgr` user:
- ```sh
+ ```shell
gitlab-psql -d template1
template1=# \password gitlab_repmgr
Enter password: ****
@@ -992,7 +992,7 @@ the previous section:
1. Create a `.pgpass` file. Enter the `gitlab_repmgr` password twice to
when asked:
- ```sh
+ ```shell
gitlab-ctl write-pgpass --user gitlab_repmgr --hostuser gitlab-psql --database '*'
```
diff --git a/doc/administration/high_availability/gitlab.md b/doc/administration/high_availability/gitlab.md
index b4269cd4e38..ad00cb8df9f 100644
--- a/doc/administration/high_availability/gitlab.md
+++ b/doc/administration/high_availability/gitlab.md
@@ -101,7 +101,7 @@ these additional steps before proceeding with GitLab installation.
On the first application server, run:
-```sh
+```shell
sudo gitlab-ctl reconfigure
```
diff --git a/doc/administration/high_availability/nfs.md b/doc/administration/high_availability/nfs.md
index 1d0dc420987..0d88191151a 100644
--- a/doc/administration/high_availability/nfs.md
+++ b/doc/administration/high_availability/nfs.md
@@ -55,7 +55,7 @@ NOTE: **Note:** From GitLab 12.1, it will automatically be detected if Rugged ca
If you previously enabled Rugged using the feature flag, you will need to unset the feature flag by using:
-```sh
+```shell
sudo gitlab-rake gitlab:features:unset_rugged
```
@@ -82,7 +82,7 @@ on an Linux NFS server, do the following:
1. On the NFS server, run:
- ```sh
+ ```shell
echo 0 > /proc/sys/fs/leases-enable
sysctl -w fs.leases-enable=0
```
@@ -186,7 +186,7 @@ single NFS mount point as you normally would in `/etc/fstab`. Let's assume your
NFS mount point is `/gitlab-nfs`. Then, add the following bind mounts in
`/etc/fstab`:
-```bash
+```shell
/gitlab-nfs/gitlab-data/git-data /var/opt/gitlab/git-data none bind 0 0
/gitlab-nfs/gitlab-data/.ssh /var/opt/gitlab/.ssh none bind 0 0
/gitlab-nfs/gitlab-data/uploads /var/opt/gitlab/gitlab-rails/uploads none bind 0 0
diff --git a/doc/administration/high_availability/nfs_host_client_setup.md b/doc/administration/high_availability/nfs_host_client_setup.md
index 5b6b28bf633..75dec1eef29 100644
--- a/doc/administration/high_availability/nfs_host_client_setup.md
+++ b/doc/administration/high_availability/nfs_host_client_setup.md
@@ -27,7 +27,7 @@ Using EFS may negatively impact performance. Please review the [relevant documen
Installing the nfs-kernel-server package allows you to share directories with the clients running the GitLab application.
-```sh
+```shell
apt-get update
apt-get install nfs-kernel-server
```
@@ -47,7 +47,7 @@ In this setup we will share the home directory on the host with the client. Edit
Restart the NFS server after making changes to the `exports` file for the changes
to take effect.
-```sh
+```shell
systemctl restart nfs-kernel-server
```
@@ -64,7 +64,7 @@ inside your HA environment to the NFS server configured above.
The nfs-common provides NFS functionality without installing server components which
we don't need running on the application nodes.
-```sh
+```shell
apt-get update
apt-get install nfs-common
```
@@ -76,14 +76,14 @@ Please note that if your mount point directory contains any files they will be h
once the remote shares are mounted. An empty/new directory on the client is recommended
for this purpose.
-```sh
+```shell
mkdir -p /nfs/home
```
Confirm that the mount point works by mounting it on the client and checking that
it is mounted with the command below:
-```sh
+```shell
mount <host_ip_address>:/home
df -h
```
@@ -134,7 +134,7 @@ Check that NFS traffic from the client is allowed by the firewall on the host by
the command: `sudo ufw status`. If it's being blocked, then you can allow traffic from a specific
client with the command below.
-```sh
+```shell
sudo ufw allow from <client-ip-address> to any port nfs
```
diff --git a/doc/administration/high_availability/pgbouncer.md b/doc/administration/high_availability/pgbouncer.md
index 7b93159628d..cea55e6c9b4 100644
--- a/doc/administration/high_availability/pgbouncer.md
+++ b/doc/administration/high_availability/pgbouncer.md
@@ -57,7 +57,7 @@ In a HA setup, it's recommended to run a PgBouncer node separately for each data
1. Create a `.pgpass` file so Consul is able to
reload PgBouncer. Enter the `PGBOUNCER_PASSWORD` twice when asked:
- ```sh
+ ```shell
gitlab-ctl write-pgpass --host 127.0.0.1 --database pgbouncer --user pgbouncer --hostuser gitlab-consul
```
@@ -65,7 +65,7 @@ In a HA setup, it's recommended to run a PgBouncer node separately for each data
1. Ensure each node is talking to the current master:
- ```sh
+ ```shell
gitlab-ctl pgb-console # You will be prompted for PGBOUNCER_PASSWORD
```
@@ -77,7 +77,7 @@ In a HA setup, it's recommended to run a PgBouncer node separately for each data
1. Once the console prompt is available, run the following queries:
- ```sh
+ ```shell
show databases ; show clients ;
```
diff --git a/doc/administration/high_availability/redis.md b/doc/administration/high_availability/redis.md
index 8e94b56a940..01ee94ce208 100644
--- a/doc/administration/high_availability/redis.md
+++ b/doc/administration/high_availability/redis.md
@@ -8,8 +8,10 @@ type: reference
The following are the requirements for providing your own Redis instance:
-- Redis version 2.8 or higher. Version 3.2 or higher is recommend as this is
- what ships with the GitLab Omnibus package.
+- GitLab 12.0 and later requires Redis version 3.2 or higher. Version 3.2 or higher is recommend as this is
+ what ships with the GitLab Omnibus package. Older Redis versions do not
+ support an optional count argument to SPOP which is now required for
+ [Merge Trains](../../ci/merge_request_pipelines/pipelines_for_merged_results/merge_trains/index.md).
- Standalone Redis or Redis high availability with Sentinel are supported. Redis
Cluster is not supported.
- Managed Redis from cloud providers such as AWS Elasticache will work. If these
@@ -978,7 +980,7 @@ To make sure your configuration is correct:
1. To simulate a failover on master Redis, SSH into the Redis server and run:
- ```bash
+ ```shell
# port must match your master redis port, and the sleep time must be a few seconds bigger than defined one
redis-cli -h localhost -p 6379 DEBUG sleep 20
```