Sobre a inicialização de um cluster do GitHub Enterprise Server
Para implantar um cluster do GitHub Enterprise Server em seu ambiente, instale o GitHub Enterprise Server, carregue uma licença habilitada para cluster, configure o primeiro nó e inicialize-o com um arquivo de configuração.
Note
O clustering de GitHub Enterprise Server deve ser configurado com HTTPS.
Instalar o GitHub Enterprise Server
Para começar a configurar o cluster, instale o dispositivo do GitHub Enterprise Server na VM (máquina virtual) de cada nó e configure um endereço IP.
- Em cada nó de cluster, provisione e instale o GitHub Enterprise Server. Para saber mais, confira Configurar uma instância do GitHub Enterprise Server.
- Usando o shell administrativo ou o DHCP, configure apenas o endereço IP de cada nó. Não altere nenhuma outra configuração.
Configurar o primeiro nó
No nó que funcionará como o nó primário do MySQL, instale a licença do GitHub Enterprise Server.
- Conecte-se ao nó que será designado como o primário do MySQL em
cluster.conf
. Para saber mais, confira Inicializar o cluster. - No navegador da Web, acesse
https://<ip address>:8443/setup/
. - No prompt, carregue seu arquivo de licença e defina uma senha de gerenciamento do console. Para obter mais informações, confira "Gerenciando a sua licença para o GitHub Enterprise".
- No Console de Gerenciamento, defina e salve as configurações desejadas.
- A instância será reiniciada automaticamente.
Inicializar o cluster
Para inicializar o cluster, você precisa ter um arquivo de configuração do cluster (cluster.conf
). Para saber mais, confira Inicializar o cluster.
- No primeiro nó que foi configurado, execute
ghe-cluster-config-init
. Essa ação inicializará o cluster caso haja nós no arquivo de configuração que não estão configurados. - Execute
ghe-cluster-config-apply
. Isso validará o arquivocluster.conf
, aplicará a configuração a cada arquivo de nó e apresentará os serviços configurados em cada nó.
Para verificar o status de um cluster em execução, use o comando ghe-cluster-status
.
Sobre o arquivo de configuração do cluster
O arquivo de configuração do cluster (cluster.conf
) define os nós no cluster e os serviços que eles executam.
Para saber mais, confira Sobre nós de cluster.
Este exemplo de cluster.conf
define um cluster com 11 nós.
- Dois nós chamados
ghes-front-end-node-\*
executam os serviços responsáveis por responder às solicitações do cliente. - Três nós chamados
ghes-database-node-\*
executam serviços responsáveis pelo armazenamento, pela recuperação e pela replicação de dados de banco de dados. - Três nós chamados
ghes-search-node-\*
executam serviços responsáveis pela funcionalidade de pesquisa. - Três nós chamados
ghes-storage-node-\*
executam serviços responsáveis pelo armazenamento, pela recuperação e pela replicação de dados.
Você deve escolher um nome de host válido e exclusivo e um endereço IPv4 para cada nó. Para garantir que os nós sejam localmente resolvíveis uns para os outros, o GitHub Enterprise Server adicionará um registro para o nome de host de cada nó a /etc/hosts
em cada nó.
- Para saber mais sobre nomes de host válidos para o GitHub Enterprise Server, confira Configurando o nome do host para sua instância.
- Cada endereço IPv4 deve ser um endereço em uma rede privada. Consulte RFC 1918 no site da IETF.
Especifique o primeiro nó de cluster que você configurou como o primário do MySQL por meio de mysql-server
e mysql-master
.
[cluster]
mysql-master = ghes-database-node-1
redis-master = ghes-database-node-1
primary-datacenter = primary
[cluster "ghes-front-end-node-1"]
hostname = ghes-front-end-node-1
ipv4 = 192.168.0.2
# ipv6 = fd12:3456:789a:1::2
consul-datacenter = primary
datacenter = primary
web-server = true
job-server = true
memcache-server = true
[cluster "ghes-front-end-node-2"]
hostname = ghes-front-end-node-2
ipv4 = 192.168.0.3
# ipv6 = fd12:3456:789a:1::3
consul-datacenter = primary
datacenter = primary
web-server = true
job-server = true
memcache-server = true
[cluster "ghes-database-node-1"]
hostname = ghes-database-node-1
ipv4 = 192.168.0.4
# ipv6 = fd12:3456:789a:1::4
consul-datacenter = primary
datacenter = primary
consul-server = true
mysql-server = true
redis-server = true
[cluster "ghes-database-node-2"]
hostname = ghes-database-node-2
ipv4 = 192.168.0.5
# ipv6 = fd12:3456:789a:1::5
consul-datacenter = primary
datacenter = primary
consul-server = true
mysql-server = true
redis-server = true
[cluster "ghes-database-node-3"]
hostname = ghes-database-node-3
ipv4 = 192.168.0.6
# ipv6 = fd12:3456:789a:1::6
consul-datacenter = primary
datacenter = primary
consul-server = true
mysql-server = true
redis-server = true
[cluster "ghes-search-node-1"]
hostname = ghes-search-node-1
ipv4 = 192.168.0.7
# ipv6 = fd12:3456:789a:1::7
consul-datacenter = primary
datacenter = primary
elasticsearch-server = true
[cluster "ghes-search-node-2"]
hostname = ghes-search-node-2
ipv4 = 192.168.0.8
# ipv6 = fd12:3456:789a:1::8
consul-datacenter = primary
datacenter = primary
elasticsearch-server = true
[cluster "ghes-search-node-3"]
hostname = ghes-search-node-3
ipv4 = 192.168.0.9
# ipv6 = fd12:3456:789a:1::9
consul-datacenter = primary
datacenter = primary
elasticsearch-server = true
[cluster "ghes-storage-node-1"]
hostname = ghes-storage-node-1
ipv4 = 192.168.0.10
# ipv6 = fd12:3456:789a:1::10
consul-datacenter = primary
datacenter = primary
git-server = true
pages-server = true
storage-server = true
metrics-server = true
[cluster "ghes-storage-node-2"]
hostname = ghes-storage-node-2
ipv4 = 192.168.0.11
# ipv6 = fd12:3456:789a:1::11
consul-datacenter = primary
datacenter = primary
git-server = true
pages-server = true
storage-server = true
metrics-server = true
[cluster "ghes-storage-node-3"]
hostname = ghes-storage-node-3
ipv4 = 192.168.0.12
# ipv6 = fd12:3456:789a:1::12
consul-datacenter = primary
datacenter = primary
git-server = true
pages-server = true
storage-server = true
metrics-server = true
Crie o arquivo /data/user/common/cluster.conf
no primeiro nó configurado. Por exemplo, usando vim
:
ghe-data-node-1:~$ sudo vim /data/user/common/cluster.conf