4.9 KiB
title, intro, redirect_from, versions, type, topics
| title | intro | redirect_from | versions | type | topics | |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Initializing the cluster | A {% data variables.product.prodname_ghe_server %} cluster must be set up with a license and initialized using the administrative shell (SSH). |
|
|
how_to |
|
{% data reusables.enterprise_clustering.clustering-requires-https %}
Installing {% data variables.product.prodname_ghe_server %}
- On each cluster node, provision and install {% data variables.product.prodname_ghe_server %}. For more information, see "[Setting up a {% data variables.product.prodname_ghe_server %} instance](/enterprise/{{ currentVersion }}/admin/guides/installation/setting-up-a-github-enterprise-server-instance)."
- Using the administrative shell or DHCP, only configure the IP address of each node. Don't configure any other settings.
Configuring the first node
- Connect to the node that will be designated as MySQL primary in
cluster.conf. For more information, see "[About the cluster configuration file](/enterprise/{{ currentVersion }}/admin/guides/clustering/initializing-the-cluster/#about-the-cluster-configuration-file)." - In your web browser, visit
https://<ip address>:8443/setup/. {% data reusables.enterprise_installation.upload-a-license-file %} {% data reusables.enterprise_installation.save-settings-in-web-based-mgmt-console %} {% data reusables.enterprise_installation.instance-will-restart-automatically %}
Initializing the cluster
To initialize the cluster, you need a cluster configuration file (cluster.conf). For more information, see “[About the cluster configuration file](/enterprise/{{ currentVersion }}/admin/guides/clustering/initializing-the-cluster/#about-the-cluster-configuration-file)".
- From the first node that was configured, run
ghe-cluster-config-init. This will initialize the cluster if there are nodes in the cluster configuration file that are not configured. - Run
ghe-cluster-config-apply. This will validate thecluster.conffile, apply the configuration to each node file and bring up the configured services on each node.
To check the status of a running cluster use the ghe-cluster-status command.
About the cluster configuration file
The cluster configuration file (cluster.conf) defines the nodes in the cluster, and what services they run.
For more information, see "[About cluster nodes](/enterprise/{{ currentVersion }}/admin/guides/clustering/about-cluster-nodes)."
This example cluster.conf defines a cluster with five nodes.
- Two nodes (called
ghe-app-node-\*) run theweb-serverandjob-serverservices responsible for responding to client requests. - Three nodes (called
ghe-data-node-\*) run the services responsible for storage and retrieval of {% data variables.product.prodname_ghe_server %} data.
The names of the nodes can be any valid hostname you choose. The names are set as the hostname of each node, and will also be added to /etc/hosts on each node, so that the nodes are locally resolvable to each other.
Specify the first cluster node you configured as the MySQL primary via mysql-server and mysql-master.
[cluster]
mysql-master = ghe-data-node-1
redis-master = ghe-data-node-1
primary-datacenter = default
[cluster "ghe-app-node-1"]
hostname = ghe-app-node-1
ipv4 = 192.168.0.2
# ipv6 = fd12:3456:789a:1::2
web-server = true
job-server = true
[cluster "ghe-app-node-2"]
hostname = ghe-app-node-2
ipv4 = 192.168.0.3
# ipv6 = fd12:3456:789a:1::3
web-server = true
job-server = true
[cluster "ghe-data-node-1"]
hostname = ghe-data-node-1
ipv4 = 192.168.0.4
# ipv6 = fd12:3456:789a:1::4
consul-server = true
consul-datacenter = default
git-server = true
pages-server = true
mysql-server = true
elasticsearch-server = true
redis-server = true
memcache-server = true
metrics-server = true
storage-server = true
[cluster "ghe-data-node-2"]
hostname = ghe-data-node-2
ipv4 = 192.168.0.5
# ipv6 = fd12:3456:789a:1::5
consul-server = true
consul-datacenter = default
git-server = true
pages-server = true
mysql-server = true
elasticsearch-server = true
redis-server = true
memcache-server = true
metrics-server = true
storage-server = true
[cluster "ghe-data-node-3"]
hostname = ghe-data-node-3
ipv4 = 192.168.0.6
# ipv6 = fd12:3456:789a:1::6
consul-server = true
consul-datacenter = default
git-server = true
pages-server = true
mysql-server = true
elasticsearch-server = true
redis-server = true
memcache-server = true
metrics-server = true
storage-server = true
Create the file /data/user/common/cluster.conf on the configured first node. For example, using vim:
ghe-data-node-1:~$ sudo vim /data/user/common/cluster.conf