Nota: GitHub Enterprise Server o clustering deve ser configurado com HTTPS.
Instalar o GitHub Enterprise Server
- Em cada nó de cluster, provisione e instale o GitHub Enterprise Server. Para obter mais informações, consulte "Configurar uma instância do GitHub Enterprise Server".
- Usando o shell administrativo ou DHCP, configure somente o endereço IP de cada nó. Não altere outras configurações.
Configurar o primeiro nó
- Conecte-se ao nó a ser designado como
mysql-master
nocluster.conf
. Para obter mais informações, consulte “Sobre o arquivo de configuração do cluster." - No navegador, 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, consulte "Managing your GitHub Enterprise license."
- No Console de gerenciamento, configure e salve as configurações desejadas.
- A instância será reiniciada automaticamente.
Inicializar o cluster
Para inicializar o cluster, você precisa de um arquivo de configuração de cluster (cluster.conf
). Para obter mais informações, consulte “Sobre o arquivo de configuração do cluster".
- Desde o primeiro nó 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
. Fazer isso vai validar o arquivocluster.conf
, aplicar a configuração a cada arquivo de nó e ativar 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 cada nó executa. Para obter mais informações, consulte "Sobre os nós do cluster."
O exemplo cluster.conf
define um cluster com cinco nós.
- Dois nós (chamados
ghe-app-node-\*
) executam os serviçosweb-server
ejob-server
responsáveis por responder às solicitações do cliente. - Três nós (chamados
ghe-data-node-\*
) executam o serviço de armazenamento e recuperação de dados do GitHub Enterprise Server.
Os nomes dos nós podem ser qualquer nome de host válido. Cada nome é definido como nome de host e será adicionado a /etc/hosts
em cada nó. Assim, os nós podem ser resolvidos localmente entre si.
Especifique o primeiro nó de cluster configurado como MySQL master mysql-server
e 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
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