summaryrefslogtreecommitdiff
path: root/doc/administration/geo/setup
diff options
context:
space:
mode:
Diffstat (limited to 'doc/administration/geo/setup')
-rw-r--r--doc/administration/geo/setup/database.md44
-rw-r--r--doc/administration/geo/setup/external_database.md16
-rw-r--r--doc/administration/geo/setup/index.md23
3 files changed, 43 insertions, 40 deletions
diff --git a/doc/administration/geo/setup/database.md b/doc/administration/geo/setup/database.md
index 99f7b32be59..5f04326d49f 100644
--- a/doc/administration/geo/setup/database.md
+++ b/doc/administration/geo/setup/database.md
@@ -151,6 +151,13 @@ There is an [issue where support is being discussed](https://gitlab.com/gitlab-o
ALTER USER gitlab_replicator WITH REPLICATION ENCRYPTED PASSWORD '<replication_password>';
```
+1. Edit `/etc/gitlab/gitlab.rb` and set the role to `geo_primary_role` (for more information, see [Geo roles](https://docs.gitlab.com/omnibus/roles/#gitlab-geo-roles)):
+
+ ```ruby
+ ## Geo Primary role
+ roles(['geo_primary_role'])
+ ```
+
1. Configure PostgreSQL to listen on network interfaces:
For security reasons, PostgreSQL does not listen on any network interfaces
@@ -211,17 +218,6 @@ There is an [issue where support is being discussed](https://gitlab.com/gitlab-o
```ruby
##
- ## Geo Primary role
- ## - Configures Postgres settings for replication
- ## - Prevents automatic upgrade of Postgres since it requires downtime of
- ## streaming replication to Geo secondary sites
- ## - Enables standard single-node GitLab services like NGINX, Puma, Redis,
- ## or Sidekiq. If you are segregating services, then you will need to
- ## explicitly disable unwanted services.
- ##
- roles(['geo_primary_role'])
-
- ##
## Primary address
## - replace '<primary_node_ip>' with the public or VPC address of your Geo primary node
##
@@ -239,11 +235,13 @@ There is an [issue where support is being discussed](https://gitlab.com/gitlab-o
# postgresql['max_replication_slots'] = 1 # Set this to be the number of Geo secondary nodes if you have more than one
# postgresql['max_wal_senders'] = 10
# postgresql['wal_keep_segments'] = 10
+ ```
- ##
- ## Disable automatic database migrations temporarily
- ## (until PostgreSQL is restarted and listening on the private address).
- ##
+1. Disable automatic database migrations temporarily until PostgreSQL is restarted and listening on the private address.
+ Edit `/etc/gitlab/gitlab.rb` and change the configuration to false:
+
+ ```ruby
+ ## Disable automatic database migrations
gitlab_rails['auto_migrate'] = false
```
@@ -402,6 +400,16 @@ There is an [issue where support is being discussed](https://gitlab.com/gitlab-o
Ensure that the contents of `~gitlab-psql/data/server.crt` on the **primary** site
match the contents of `~gitlab-psql/.postgresql/root.crt` on the **secondary** site.
+1. Edit `/etc/gitlab/gitlab.rb` and set the role to `geo_secondary_role` (for more information, see [Geo roles](https://docs.gitlab.com/omnibus/roles/#gitlab-geo-roles)):
+
+ ```ruby
+ ##
+ ## Geo Secondary role
+ ## - configure dependent flags automatically to enable Geo
+ ##
+ roles(['geo_secondary_role'])
+ ```
+
1. Configure PostgreSQL:
This step is similar to how you configured the **primary** instance.
@@ -412,12 +420,6 @@ There is an [issue where support is being discussed](https://gitlab.com/gitlab-o
```ruby
##
- ## Geo Secondary role
- ## - configure dependent flags automatically to enable Geo
- ##
- roles(['geo_secondary_role'])
-
- ##
## Secondary address
## - replace '<secondary_site_ip>' with the public or VPC address of your Geo secondary site
##
diff --git a/doc/administration/geo/setup/external_database.md b/doc/administration/geo/setup/external_database.md
index 0fefc11f078..f93ef5f5d5e 100644
--- a/doc/administration/geo/setup/external_database.md
+++ b/doc/administration/geo/setup/external_database.md
@@ -217,14 +217,14 @@ the tracking database on port 5432.
`pg_hba.conf` that is associated with your tracking database.
Remember to restart PostgreSQL afterwards for the changes to take effect:
- ```plaintext
- ##
- ## Geo Tracking Database Role
- ## - pg_hba.conf
- ##
- host all all <trusted tracking IP>/32 md5
- host all all <trusted secondary IP>/32 md5
- ```
+ ```plaintext
+ ##
+ ## Geo Tracking Database Role
+ ## - pg_hba.conf
+ ##
+ host all all <trusted tracking IP>/32 md5
+ host all all <trusted secondary IP>/32 md5
+ ```
1. SSH into a GitLab **secondary** server and login as root:
diff --git a/doc/administration/geo/setup/index.md b/doc/administration/geo/setup/index.md
index c794b8ef219..022d9c00772 100644
--- a/doc/administration/geo/setup/index.md
+++ b/doc/administration/geo/setup/index.md
@@ -7,25 +7,22 @@ type: howto
# Setting up Geo **(PREMIUM SELF)**
-These instructions assume you have a working instance of GitLab. They guide you through:
+## Prerequisites
-1. Making your existing instance the **primary** site.
-1. Adding **secondary** sites.
+- Two (or more) independently working GitLab sites:
+ - One GitLab site serves as the Geo **primary** site. Use the [GitLab reference architectures documentation](../../reference_architectures/index.md) to set this up. You can use different reference architecture sizes for each Geo site. If you already have a working GitLab instance that is in-use, it can be used as a **primary** site.
+ - The second GitLab site serves as the Geo **secondary** site. Use the [GitLab reference architectures documentation](../../reference_architectures/index.md) to set this up. It's a good idea to sign in and test it. However, be aware that **all of the data on the secondary are lost** as part of the process of replicating from the **primary** site.
-You must use a [GitLab Premium](https://about.gitlab.com/pricing/) license or higher,
-but you only need one license for all the sites.
+ NOTE:
+ Geo supports multiple secondaries. You can follow the same steps and make any changes accordingly.
-WARNING:
-The steps below should be followed in the order they appear. **Make sure the GitLab version is the same on all sites. Do not create an account or sign in to the new secondary.**
+- Ensure the **primary** site has a [GitLab Premium](https://about.gitlab.com/pricing/) license or higher to unlock Geo. You only need one license for all the sites.
+- Confirm the [requirements for running Geo](../index.md#requirements-for-running-geo) are met by all sites. For example, sites must use the same GitLab version, and sites must be able to communicate with each other over certain ports.
## Using Omnibus GitLab
If you installed GitLab using the Omnibus packages (highly recommended):
-1. Confirm the [requirements for running Geo](../index.md#requirements-for-running-geo) are met.
-1. [Install GitLab Enterprise Edition](https://about.gitlab.com/install/) on the nodes that serve as the **secondary** site. **Do not create an account or sign in** to the new **secondary** site. The **GitLab version must match** across primary and secondary sites.
-1. [Add the GitLab License](../../../user/admin_area/license.md) on the **primary** site to unlock Geo. The license must be for [GitLab Premium](https://about.gitlab.com/pricing/) or higher.
-1. [Confirm network connectivity](../index.md#firewall-rules) between the **primary** and **secondary** site.
1. [Set up the database replication](database.md) (`primary (read-write) <-> secondary (read-only)` topology).
1. [Configure fast lookup of authorized SSH keys in the database](../../operations/fast_ssh_key_lookup.md). This step is required and needs to be done on **both** the **primary** and **secondary** sites.
1. [Configure GitLab](../replication/configuration.md) to set the **primary** and **secondary** sites.
@@ -34,6 +31,10 @@ If you installed GitLab using the Omnibus packages (highly recommended):
1. Optional: [Configure Geo secondary proxying](../secondary_proxy/index.md) to use a single, unified URL for all Geo sites. This step is recommended to accelerate most read requests while transparently proxying writes to the primary Geo site.
1. Follow the [Using a Geo Site](../replication/usage.md) guide.
+## Using GitLab Charts
+
+[Configure the GitLab chart with GitLab Geo](https://docs.gitlab.com/charts/advanced/geo/).
+
## Post-installation documentation
After installing GitLab on the **secondary** sites and performing the initial configuration, see the [following documentation for post-installation information](../index.md#post-installation-documentation).