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"
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214524510.png)
# 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"
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214524516.png)
# 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
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214524692.png)
# 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
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214524662.png)
# 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
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214524720.png)
# Parte 6:Abrindo a porta.$ sudo ufw status$ sudo ufw allow 5432/tcp$ sudo ufw status$ ip addr show
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214524879.png)
# Parte 7:Defina uma senha para a função de superusuário.$ sudo -u postgres psql -c "\password"
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214524880.png)
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"
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214524922.png)
# 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
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214524916.png)
# 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=/
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214525012.png)
# 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=/
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214525073.png)
# Parte 5:Verificando o hardware.$ cat /proc/cpuinfo | processador grep | wc -l$ free -h
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214525071.png)
# Parte 6:Executando o Bitbucket Server com Elasticsearch.$ ./atlassian-bitbucket/bin/start-bitbucket.sh$ free -h
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214525145.png)
# Parte 7:Executando o Bitbucket Server sem Elasticsearch.$ ./atlassian-bitbucket/bin/start-bitbucket.sh --no-search$ free -h
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214525288.png)
# Parte 8:Visão rápida de BITBUCKET_HOME.$ du -sh bitbucket-home$ tree -L 1 bitbucket-home
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214525291.png)
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"
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214525348.png)
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"
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214525492.png)
# 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 '?'.