PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Controle de versão do PostgreSQL com Atlassian Bitbucket

Na engenharia de sistemas, a comunicação é um elemento chave para alcançar o sucesso em qualquer projeto. Isso ocorre porque é fundamental para todo o ciclo de desenvolvimento; desde a coleta de requisitos até a entrega de um produto mínimo viável.

Usando um sistema de controle de versão distribuído (como Git - um padrão da indústria), os desenvolvedores podem enviar pequenos pedaços de código e trabalhar em conjunto com serviços como o Bitbucket construídos em torno dele. A hospedagem do Bitbucket é possível quando os dados gerados por seus usuários possuem um banco de dados para ficar, assim como o PostgreSQL, mas a integração de ambos requer configurações adicionais para execução em diferentes máquinas.

Visão geral da rede

Uma rede local pode passar as informações entre os programas sem a necessidade de expô-las à rede externa, dependendo de onde os usuários estiverem.
1.1. Rede de área local (LAN).

Com a separação de interesses, Bitbucket e PostgreSQL podem conversar entre si para atingir seu objetivo comum, fornecer uma plataforma de sistema de controle de versão distribuído.
1.2. Bitbucket acessando o PostgreSQL.

O PostgreSQL depende de um soquete fornecido pelo sistema operacional, de modo que os dados do cluster são mantidos atrás de uma porta protegida por regras de firewall.
1.3. fonte de dados PostgreSQL.

Primeiros passos

Não há muito o que dizer, pois este é um processo bastante simples. O PostgreSQL precisará ser configurado com um novo usuário e banco de dados pronto para o Bitbucket.

PostgreSQL

# Parte 1:Preparando o banco de dados.$ pg_lsclusters$ sudo systemctl -a | grep postgres$ sudo -u postgres psql -c "\du" -c "\l"
2.1. Verificando se já existem clusters rodando.
# Parte 2:Criando um novo usuário (role) e banco de dados.$ sudo -u postgres psql -c "criar role thiago com senha de login createdb 'Th14g0_P4ssw0rd'"$ psql -d postgres -c "criar banco de dados bitbucket_db"$ psql -d bitbucket_db -c "\du" -c "\l"
2.2. O dono do banco de dados não é o superusuário postgres.
# Parte 3:Alterando a configuração do cluster (postgresql.conf).$ sudo -u postgres psql -c "show config_file"$ sudo cat /etc/postgresql/11 /main/postgresql.conf | grep listen_addresses$ sudo sed -i "s|#listen_addresses ='localhost'|listen_addresses ='\*'\t|" /etc/postgresql/11/main/postgresql.conf$ sudo cat /etc/postgresql/11/main/postgresql.conf | grep listen_addresses
2.3. Permitindo conexões remotas (postgresql.conf).
# Parte 4:Alterando a configuração do cluster (pg_hba.conf).$ sudo wc -l /etc/postgresql/11/main/pg_hba.conf$ sudo tail -3 /etc /postgresql/11/main/pg_hba.conf$ sudo sed -i "$ a # Permitir conexões remotas (listen_addresses ='*') com autenticação" /etc/postgresql/11/main/pg_hba.conf$ sudo sed -i " $ a host\tall\t\tall\t\t192.168.0.0/16\t\tmd5" /etc/postgresql/11/main/pg_hba.conf$ sudo sed -i "$ a host\tall\t\ tall\t\t::/0\t\t\tmd5" /etc/postgresql/11/main/pg_hba.conf$ sudo wc -l /etc/postgresql/11/main/pg_hba.conf$ sudo tail -3 /etc/postgresql/11/main/pg_hba.conf
2.4. Alterando as permissões de acesso (pg_hba.conf).
# Parte 5:Reiniciando o cluster.$ sudo -u postgres psql -c "show listen_addresses"$ ss -nlp | grep 5432$ sudo systemctl restart [email protected]$ sudo -u postgres psql -c "show listen_addresses"$ ss -nlp | grep 5432
2.5. Aplicando as alterações.
# Parte 6:Abrindo a porta.$ sudo ufw status$ sudo ufw allow 5432/tcp$ sudo ufw status$ ip addr show
2.6. Configurando o firewall e exibindo o endereço IP.
# Parte 7:Defina uma senha para a função de superusuário.$ sudo -u postgres psql -c "\password"
2.7. Alterando a senha do administrador.

Bitbucket

Aqui está o que você precisará fazer no lado do Bitbucket.

# Parte 1:Verificando se a configuração anterior estava correta.$ telnet 192.168.0.106 5432# (Opcional) Usando psql.$ sudo -u postgres psql -h 192.168.0.106 -p 5432 -d bitbucket_db -U thiago - c "\conninfo"
3.1. Alcançando o banco de dados remotamente.
# Parte 2:Extraindo o Servidor Bitbucket.$ ls$ tar xzf atlassian-bitbucket-6.10.0$ ls$ du -sh atlassian-bitbucket-6.10.0$ tree -L 1 atlassian-bitbucket -6.10.0$ árvore -L 1 atlassian-bitbucket-6.10.0/bin
3.2. Scripts para Linux e Windows.
# Parte 3:Modificando o script (set-bitbucket-home.sh).$ mkdir bitbucket-home$ echo $(pwd)/bitbucket-home$ cat atlassian-bitbucket-6.10.0 /bin/set-bitbucket-home.sh | grep BITBUCKET_HOME=$$ sed -i 's|BITBUCKET_HOME=$|BITBUCKET_HOME=/home/thiago/Documents/severalnines.com/database-blog/bitbucket-home|' atlassian-bitbucket-6.10.0/bin/set-bitbucket-home.sh$ cat atlassian-bitbucket-6.10.0/bin/set-bitbucket-home.sh | grep BITBUCKET_HOME=/
3.3. Configurando BITBUCKET_HOME.
# Parte 4:Modificando o script (set-jre-home.sh).$ readlink -f $(which java)$ cat atlassian-bitbucket-6.10.0/bin/set-jre-home. sh | grep JRE_HOME=$$ sed -i 's|JRE_HOME=$|JRE_HOME=/usr/lib/jvm/java-11-openjdk-amd64|' atlassian-bitbucket-6.10.0/bin/set-jre-home.sh$ cat atlassian-bitbucket-6.10.0/bin/set-jre-home.sh | grep JRE_HOME=/
3.4. Configurando JRE_HOME (Java).
# Parte 5:Verificando o hardware.$ cat /proc/cpuinfo | processador grep | wc -l$ free -h
3.5. Núcleos de CPU e RAM na inicialização.
# Parte 6:Executando o Bitbucket Server com Elasticsearch.$ ./atlassian-bitbucket/bin/start-bitbucket.sh$ free -h
3.6. Executando com Elasticsearch (padrão).
# Parte 7:Executando o Bitbucket Server sem Elasticsearch.$ ./atlassian-bitbucket/bin/start-bitbucket.sh --no-search$ free -h
3.7. Executando sem Elasticsearch (economiza 1 GB de RAM).
# Parte 8:Visão rápida de BITBUCKET_HOME.$ du -sh bitbucket-home$ tree -L 1 bitbucket-home
3.8. Dentro de BITBUCKET_HOME.

Integrando PostgreSQL e Bitbucket

Após configurar o PostgreSQL e o Bitbucket, sua integração deve ser feita através do navegador (http://localhost:7990/).
4.1. Inicialização do Bitbucket.

# Exibindo tabelas$ psql -h 192.168.0.106 -d bitbucket_db -c "\dt"
4.2. Listando as tabelas atuais do banco de dados.

Agora você pode configurar o Bitbucket para usar a API Java Persistence, com Hibernate como implementação, para criar o modelo de domínio no banco de dados, usando o driver PostgreSQL JDBC.
4.3. Configuração da fonte de dados.

# Exibindo tabelas (novamente)$ psql -h 192.168.0.106 -d bitbucket_db -c "\dt"
4.4. Listando novamente, mostrando 10 de 164 linhas.
# Verificando o pool de conexões.$ psql -h 192.168.0.106 -d bitbucket_db -c "select pid,usename,application_name,state from pg_stat_activity where datname ='bitbucket_db'" 4.5. Exibindo o pool de conexões. 

Conclusão

Tenha em mente que se sua rede estiver usando DHCP, é uma boa ideia configurar o endereço IP para estático em seu roteador, ou o Bitbucket pode falhar ao tentar encontrar o PostgreSQL mais tarde.

A maior parte deste blog fez uso de expressões regulares para alterar arquivos de configuração sem abrir editores de texto, mas elas também podem ser usadas em navegadores da Web para fins de depuração, tente pesquisar a mensagem de erro "não foi possível mude o diretório para ?:Permissão negada” com aspas duplas ou qualquer outro problema que você possa encontrar, substituindo o caminho específico do computador pelo curinga '?'.