Manual de instalação de um servidor Linux para o cliente

1 - Instalando o Linux

O Linux homologado para o sistema é o Debian 11, para informações sobre hardware suportado clique aqui.

1.1 Instalando o Linux:

Baixe o ISO do Debian 11 clicando aqui, e proceda com a instalação conforme demonstração abaixo, se desejar mais detalhes consulte o guia oficial de instalação:

Demonstração:

Particionamento:

/swap   ( dobro da memória )

/           ( 20%  do restante disponível)

/var       ( 80% do restante disponível)

 

1.2 Instale as ferramentas:

apt install sudo

sudo apt update && sudo apt install nano && sudo apt-get install mlocate && sudo apt install htop && sudo updatedb

1.3 Fixando o IP do servidor

Obtenha o nome da rede com o comando abaixo:

ip addr show

Abra o arquivo interfaces:

sudo nano /etc/network/interfaces

Configure conforme o exemplo abaixo, onde o nome da rede é eth0 e o IP fixo é 192.168.0.250:

auto eth0

iface eth0 inet static

address 192.168.0.250

gateway 192.168.0.1

netmask 255.255.255.0

 

1.4 UFW Firewall  

sudo apt update && sudo apt install ufw && sudo ufw enable

Confira a situação

sudo ufw status

1.4.1 Habilitando SSH

sudo apt update && sudo apt install openssh-server && sudo systemctl enable ssh

Confira a situação

 sudo systemctl status ssh

Configure qual subrede (Nota: troque 192.168.2.0 por sua subrede) que vai ter permissão para se conectar via ssh no servidor:

sudo ufw allow from 192.168.2.0/24 to any port 22 proto tcp

Confira a situação

sudo ufw status

1.4.2 Permitindo acesso via root

nano /etc/ssh/sshd_config

Ache a configuração "PermitRootLogin", remova o "#" e coloque  "yes". Resultado:

PermitRootLogin yes 

 Reinicie o serviço

sudo systemctl restart ssh

1.4.3 Desabilitando qualquer tipo de hibernação

sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target

 

2 - Instalando o Postgres

A versão homologada para o sistema é a do PostgreSQL 13:

2.1 - Instalação:

sudo sh -c 'echo "deb https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update
sudo apt-get -y install postgresql-13
sudo apt-get -y install postgresql-contrib-13


sudo systemctl start postgresql@13-main.service
sudo systemctl enable postgresql@13-main.service

 

Instalação concluída. Confira a situação do serviço do PG:

sudo systemctl status postgresql@13-main.service

2.2 - Dando permissão para o acesso a porta do PG pela subrede (Nota: troque 192.168.2.0 por sua subrede) que o sistema estará utilizando:

sudo ufw allow  from 192.168.2.0/24 to any port 5432

3 - Configurando o Postgres 

3.1 - Configuração padrão:

postgresql.conf

Acesse o arquivo de configuração:

nano /etc/postgresql/13/main/postgresql.conf

Altere as seguintes configurações:

listen_addresses='*'

max_locks_per_transaction=1000

datestyle = 'iso, mdy'

log_destination = 'stderr'
logging_collector = on
log_directory = '/var/log/postgresql'
log_filename = 'postgresql-%a.log' 
log_truncate_on_rotation = on
log_rotation_age = 1440
log_rotation_size = 3072
log_min_duration_statement = 10000
log_statement = 'all'
log_timezone = 'America/Sao_Paulo'

 

Alterando a senha do usuário postgres

sudo -u postgres psql
postgres=# \password postgres
Enter new password: <new-password>
postgres=# \q

3.1.1 Alterando todos os tipos de acesso do pg_hba.conf para MD5

Execute os comandos abaixo para alterar o arquivo pg_hba.conf:

sed -i '/^local/s/peer/md5/' /etc/postgresql/13/main/pg_hba.conf

sed -i '/^host/s/ident/md5/' /etc/postgresql/13/main/pg_hba.conf

3.1.2 Especifique quem terá acesso ao bando de dados

Acesse o arquivo pg_hba.conf para adicionar a configuração que dá acesso aos bancos das outras máquinas:

nano /etc/postgresql/13/main/pg_hba.conf

Informe as faixas de IPs que terão acesso:

Adicione a faixa de IP para o docker:

host all all 172.19.0.0/16 md5

Adicione a faixa de IP da rede local do cliente (Nota: troque 192.168.1.0 por sua subrede), exemplo:

host all all 192.168.1.0/24 md5

Exemplo:

 

3.2 - Configurações conforme a máquina:

3.2.1 - Acesse o site PGTune clicando aqui, informe as configurações da máquina do cliente a configuração necessária para o PostgreSQL. 

Por exemplo, caso a máquina tiver 16GB de memória e 4 CPUs, ao informar esses dados e clicar em "Generate" temos as configurações apresentadas abaixo:

NOTA: Para confirmar como o campo Data Storage deve ser preenchido use o seguinte comando: cat /sys/block/sda/queue/rotational (Se a saída for 1 , o disco é HDD. Se a saída for 0 (zero), o disco é SDD)

3.2.2 - Abra o arquivo de configurações do Postgres, com o comando abaixo, e altere as configurações sugeridas acima.

nano /etc/postgresql/13/main/postgresql.conf

3.2.3 - Reinicie o PG:

sudo systemctl restart postgresql@13-main.service

 

4 - Instalando o Docker 

NOTA: Caso você está lendo esse tópico para instalar o Docker em um linux diferente do Debian, clique aqui para conferir se o Linux precisa ser atualizado e como proceder com a instalação.

4.1 Instalando o Docker no Debian:

Como garantia, clique aqui para remover pacotes antigos que possam estar instalados.

Configure o repositório do docker e instale a última versão utilizando os comandos listados aqui

Teste para ver se deu tudo certo, execute o seguinte comando:

sudo docker run hello-world

Se aparecer Hello World está tudo funcionando corretamente.

Para mais informações consulte o site oficial.

4.2 Permitir acesso ao PG

Dê permissão para o docker acessar a porta do PG:

sudo ufw allow  from 172.19.0.0/16 to any port 5432

4.3 Instale a ferramenta Portainer: Clique aqui para saber sobre como instalar os serviços da Market

 

7 - Para restaurar uma base de dados da Market, acesse o artigo abaixo:

Como restaurar uma base de dados em um novo servidor linux do cliente?

6 - Instalar o Java 8

apt-get update
apt-get install software-properties-common

apt-add-repository 'deb http://security.debian.org/debian-security stretch/updates main'
apt-get update

apt-get install openjdk-8-jdk

 


Comandos úteis:

Verificar o espaço em disco, selecione o diretório e execute o comando abaixo:

echo; pwd; echo; ls -AlhF; echo; du -h --max-depth=1; echo; du -sh

Listar informações sobre os discos

fdisk -l

NOTA: No comando df -h o espaço utilizado pelo docker não é real, o que aparece é apenas um espelho do root.
DICA: Caso o disco estiver cheio entre na pasta /var/log/postgresql e remova todos os logs, isso vai dar um espaço suficiente para restabelecer o sistema e ver o que ocorreu. Se ainda não foi o suficiente, copie um diretório de algum serviço que esteja parado da pasta /var para a pasta /home, apague a pasta original e tente restabelecer o serviço do PG. Com o serviço restabelecido e com mais espaço, volte a pasta que foi removida para o seu local original. ( Para copiar utilize o comando "cp -RT [Diretório origem] [Diretório destino]")

 


Sistema operacional \ Linux

Escrito por Josué Diniz Lourenço e revisado por Matheus Leandro Ferreira em 26/04/2024.


Link público: www.conhecimento.market.com.br/artigo/629