Instalação¶
Nota
Recordamos que a mudança para root nas máquinas Debian deve ser feita com o seguinte comando:
1 | |
As instruções indicadas nesta página devem ser seguidas para a instalação de todos os nós do cluster PostgreSQL.
Definições dos sistemas¶
Ligação à máquina¶
Por predefinição, existem duas contas nas appliances virtuais: uma conta de utilizador e uma conta de superutilizador.
- Conta de utilizador
- Identificador :
systancia - Palavra-passe:
systnci
- Identificador :
- Conta de superutilizador
- Identificador :
root - Palavra-passe:
systnci
- Identificador :
Ligue-se à máquina em modo consola.
Nota
A disposição predefinida do teclado é QWERTY.
Modificação da disposição do teclado¶
Pode alterar a disposição do teclado com a linha de comandos seguinte:
1 | |
Aparece um menu que lhe permite escolher outra disposição de teclado.
Utilize depois a linha de comandos seguinte para aplicar e guardar as definições:
1 | |
As definições entram em vigor imediatamente após a execução deste comando.
Configuração da rede¶
A appliance virtual pode não receber uma configuração de rede ao arrancar, pelos seguintes motivos:
- O nome da interface de rede não é
ens192: a appliance está configurada para DHCP apenas na interfaceens192 - Não está disponível nenhum servidor DHCP
Para verificar o nome da interface de rede, o seu estado e os endereços IP atribuídos, execute o seguinte comando como root:
1 | |
Exemplo
Após a execução do comando, é apresentada a seguinte resposta:
1 | |
O nome da interface de rede no exemplo é ens192, a interface está ativa e tem o endereço IP 10.100.0.51/24.
Se o nome for diferente de ens192 ou se o comando não devolver nenhuma configuração de rede, terá de configurar a rede manualmente com os seguintes comandos:
1 2 | |
Substitua:
IP_ADDRESSpelo endereço IP da máquinaSUBNETpela sub-redeDEV_NAMEnome da interface de rede obtida anteriormenteGATEWAYpelo gateway de rede
Exemplo
Para configurar o nó PostgreSQL com as seguintes informações:
- Endereço IP:
10.100.0.51 - Sub-rede:
/24ou255.255.255.0 - Nome da interface de rede:
eth0 - Gateway de rede:
10.100.0.254
Os comandos são os seguintes:
1 2 | |
Nota
Esta configuração de rede é temporária, pelo que qualquer reinício do servidor irá restabelecer as definições manuais efetuadas com os comandos ip address e ip route.
A configuração permanente será realizada pelo utilitário de configuração do cluster PostgreSQL.
No entanto, graças a esta configuração de rede, já pode aceder ao nó PostgreSQL por SSH.
Modificação do fuso horário¶
Por predefinição, a appliance virtual está configurada no fuso horário Europe/Paris.
Para alterar este fuso horário, utilize primeiro o comando seguinte para obter a sintaxe dos fusos horários disponíveis:
1 | |
Utilize em seguida a linha de comandos seguinte:
1 | |
Exemplo
Para definir o fuso horário para Londres, deve executar-se o comando seguinte:
1 | |
Verifique o fuso horário do servidor com a linha de comandos seguinte:
1 | |
Configuração de um servidor de tempo NTP¶
Perigo
Recomenda-se vivamente configurar um servidor de tempo para manter o relógio do sistema atualizado: qualquer diferença horária entre os nós PostgreSQL pode provocar instabilidade, ou mesmo deixar o cluster fora de serviço.
As etapas necessárias estão descritas na página de configuração NTP (a configuração é equivalente à dos servidores Mediation Controller do CyberElements Bastion).
Criação de uma PKI para gerar os certificados dos nós PostgreSQL¶
Informação
Esta secção é opcional se já dispuser de uma PKI com a qual tenha podido gerar os certificados indicados nos pré-requisitos.
Esta secção apresenta as várias etapas de criação de uma PKI e dos certificados necessários para o cluster PostgreSQL. Tenha em conta que não será indicado como renová-los, uma vez que a renovação de um certificado implica voltar a criá-lo.
Atenção!
O procedimento descrito foi validado numa máquina Debian 12 com o pacote openssl. No entanto, qualquer máquina que disponha de uma versão recente do OpenSSL (a versão validada é 3.0.17) poderá concluir o procedimento. Exceto no Windows ou MacOS, onde os comandos do sistema terão de ser adaptados.
Definição de variáveis e personalizações¶
Esta secção fornece diversos comandos e ficheiros de configuração que utilizam variáveis que podem ser modificadas.
A tabela abaixo resume todos os valores e permite defini-los para que possa modificá-los diretamente nos comandos apresentados nesta página.
| Valor | Variável | Definição |
|---|---|---|
PSQL_IP |
Endereço IP virtual do cluster PostgreSQL. | |
PSQL_NAME |
Nome curto (não o FQDN) associado ao endereço IP virtual do cluster PostgreSQL. | |
PSQL_1_IP |
Endereço IP do nó n.º 1 do cluster PostgreSQL. | |
PSQL_1_NAME |
Nome curto (não o FQDN) do nó n.º 1 do cluster PostgreSQL. | |
PSQL_2_IP |
Endereço IP do nó n.º 2 do cluster PostgreSQL. | |
PSQL_2_NAME |
Nome curto (não o FQDN) do nó n.º 2 do cluster PostgreSQL. | |
PSQL_3_IP |
Endereço IP do nó n.º 3 do cluster PostgreSQL. | |
PSQL_3_NAME |
Nome curto (não o FQDN) do nó n.º 3 do cluster PostgreSQL. | |
CA_ROOT_NAME |
Nome atribuído à autoridade de certificação (CA) raiz da PKI. |
Preparação¶
As ações seguintes serão realizadas num novo diretório, a fim de reunir todos os ficheiros novos num único diretório. Pode utilizar-se qualquer diretório, mas o seu acesso deve ser limitado o mais possível. *Ligue-se ao nó PostgreSQL n.º 1 como root e execute os seguintes comandos:
1 2 3 | |
Criação da autoridade de certificação raiz¶
Execute o seguinte comando para criar uma nova CA raiz. Será-lhe pedida uma palavra-passe para proteger a CA:
1 | |
Substitua CA_ROOT_NAME pelo nome da CA raiz se não o tiver personalizado aqui.
Criação dos certificados¶
Os comandos necessários para gerar os certificados dos nós PostgreSQL são os seguintes:
1 2 3 | |
Substitua CA_ROOT_NAME, PSQL_IP, PSQL_NAME, PSQL_1_IP e PSQL_1_NAME se não os tiver personalizado aqui.
1 2 3 | |
Substitua CA_ROOT_NAME, PSQL_IP, PSQL_NAME, PSQL_2_IP e PSQL_2_NAME se não os tiver personalizado aqui.
1 2 3 | |
Substitua CA_ROOT_NAME, PSQL_IP, PSQL_NAME, PSQL_3_IP e PSQL_3_NAME se não os tiver personalizado aqui.
O primeiro comando cria uma nova chave, o segundo gera um ficheiro de pedido de assinatura de certificado CSR e o terceiro cria o próprio certificado.
Falta apenas converter o certificado para P12, o que exigirá que defina uma palavra-passe:
1 | |
1 | |
1 | |
Os ficheiros necessários para instalar o cluster PostgreSQL encontram-se aqui (substitua as variáveis CA_ROOT_NAME, PSQL_1_NAME, PSQL_2_NAME e PSQL_3_NAME pelos valores que selecionou anteriormente):
/root/psql-certificates/CA_ROOT_NAME.crt: certificado da CA raiz/root/psql-certificates/PSQL_1_NAME.p12: certificado do nó PostgreSQL n.º 1/root/psql-certificates/PSQL_2_NAME.p12: certificado do nó PostgreSQL n.º 2/root/psql-certificates/PSQL_3_NAME.p12: certificado do nó PostgreSQL n.º 3
Instalação de um cluster PostgreSQL¶
Informação
As etapas seguintes devem ser realizadas nos três nós PostgreSQL.
Preparação para a configuração do cluster PostgreSQL¶
É necessário estabelecer uma ligação SFTP ou SCP para enviar para a appliance:
- O certificado da autoridade de certificação que assinou os certificados dos nós PostgreSQL
- O certificado do nó PostgreSQL em formato
P12
Tenha em conta que as ligações SFTP ou SCP não podem ser iniciadas com a conta root. Além disso, os ficheiros podem simplesmente ser colocados em /home/systancia/.
É necessário mover estes ficheiros para um novo diretório:
1 2 3 | |
Substitua:
PSQL_?_NAMEpelo nome do certificado destinado ao nó PostgreSQL que está a ser instaladoROOT_CA_NAMEpelo nome do certificado da autoridade de certificação raiz
1 2 3 | |
Os comandos acima devem ter sido personalizados de acordo com os parâmetros de personalização.
1 2 3 | |
Os comandos acima devem ter sido personalizados de acordo com os parâmetros de personalização.
1 2 3 | |
Os comandos acima devem ter sido personalizados de acordo com os parâmetros de personalização.
Configuração do nó PostgreSQL¶
Para iniciar a inicialização da configuração do nó, devem ser executados os seguintes comandos:
1 2 | |
O segundo comando inicia um utilitário que solicitará as seguintes informações:
- As novas palavras-passe dos utilizadores locais
rootesystancia - O nome do nó PostgreSQL (não o FQDN)
- O endereço IP do nó PostgreSQL, o nome da sua interface de rede, o gateway de rede predefinido a utilizar, bem como os servidores DNS e o sufixo DNS
- A versão do PostgreSQL; recomendamos utilizar a versão
15 - A porta de acesso ao cluster PostgreSQL; recomendamos utilizar a porta
5432 - A palavra-passe da conta PostgreSQL utilizada para a replicação e para
pg_rewind - O nome e o endereço IP de um segundo nó PostgreSQL
- O nome e o endereço IP do último nó PostgreSQL
- O endereço IP virtual do cluster PostgreSQL
- Os endereços IP (separados por vírgulas) dos Edge Gateway do CyberElements Bastion ou de qualquer outra máquina que tenha de se ligar ao cluster
- O nome e a palavra-passe da conta de utilizador PostgreSQL
- Os endereços IP ou as redes (separados por vírgulas) autorizados a ligar-se por SSH aos nós PostgreSQL
- As informações de certificado do nó PostgreSQL (certificado do nó em formato P12 + certificado da CA raiz)
Após introduzir estas informações, é apresentado um resumo de tudo o que indicou antes da validação.
Após confirmar as informações fornecidas, aparece uma mensagem relativa às alterações ao ficheiro /etc/ssh/sshd_config. Selecione a opção predefinida, keep the local version currently installed.
Para aplicar a configuração, é necessário reiniciar:
1 | |
Sugestão para acelerar a instalação dos nós PostgreSQL n.º 2 e n.º 3
Após instalar o nó PostgreSQL n.º 1, pode recuperar os parâmetros de configuração utilizados para o configurar no ficheiro /etc/cleanroom-vault.ini.
Exemplo do ficheiro /etc/cleanroom-vault.ini
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | |
Basta modificar as linhas destacadas com os valores do nó PostgreSQL que está a ser instalado, a partir do ficheiro que recuperou do nó PostgreSQL n.º 1.
Perigo
Se reutilizar o ficheiro de exemplo, terá de modificar todos os valores destacados seguintes de acordo com o seu ambiente:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | |
Configurações adicionais para patronictl¶
Para poder utilizar os comandos de gestão do cluster PostgreSQL com patronictl, faltam ainda alguns comandos que devem ser executados como root no nó PostgreSQL:
1 2 3 4 | |
Configurações adicionais para etcd¶
Para ativar a compactação e a desfragmentação automáticas da base de dados do etcd, execute os seguintes comandos como root no nó PostgreSQL:
1 2 3 4 5 6 7 | |
Criação da base de dados default necessária para a instalação do CyberElements Bastion¶
Ao instalar o CyberElements Bastion, deve primeiro criar uma base de dados chamada default.
Para isso, preencha a tabela seguinte para personalizar o comando que terá de executar a partir de qualquer um dos nós do cluster PostgreSQL:
| Valor | Variável | Definição |
|---|---|---|
PSQL_VIP |
Endereço IP virtual do cluster PostgreSQL. | |
DB_USER |
O nome de utilizador da base de dados indicado durante a configuração do nó PostgreSQL |
Comando a executar a partir de qualquer um dos nós do cluster PostgreSQL:
1 | |