I systemudvikling er kommunikation et nøgleelement for at opnå succes på ethvert projekt. Dette er fordi det er afgørende for hele udviklingscyklussen; fra indsamling af krav til levering af et minimumslevedygtigt produkt.
Ved at bruge et distribueret versionskontrolsystem (som Git - en industristandard) kan udviklere indsende små stykker kode og arbejde sammen med tjenester som Bitbucket bygget op omkring det. Hosting af Bitbucket er muligt, når de data, der genereres af dets brugere, har en database, der skal forblive, ligesom PostgreSQL, men at integrere begge kræver yderligere konfigurationer til afvikling på forskellige maskiner.
Netværksoversigt
Et lokalnetværk kan videregive informationen mellem programmerne uden at skulle udsætte den for det eksterne netværk, afhængigt af hvor brugerne ville være.

Med adskillelsen af bekymringer kan Bitbucket og PostgreSQL tale med hinanden for at nå deres fælles mål, ved at levere en distribueret versionskontrolsystemplatform.

PostgreSQL er afhængig af en socket fra operativsystemet, så dataene i klyngen opbevares bag en dør, der er beskyttet af firewall-regler.

Kom godt i gang
Der er ikke meget at sige, da dette er en ret simpel proces. PostgreSQL skal konfigureres med en ny bruger og database klar til Bitbucket.
PostgreSQL
# Del 1:Forberedelse af databasen.$ pg_lsclusters$ sudo systemctl -a | grep postgres$ sudo -u postgres psql -c "\du" -c "\l"

# Del 2:Oprettelse af en ny bruger (rolle) og database.$ sudo -u postgres psql -c "create role thiago with createdb login password 'Th14g0_P4ssw0rd'"$ psql -d postgres -c "opret database bitbucket_db"$ psql -d bitbucket_db -c "\du" -c "\l"

# Del 3:Ændring af klyngekonfigurationen (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 kat /etc/postgresql/11/main/postgresql.conf | grep lytte_adresser

# Del 4:Ændring af klyngekonfigurationen (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 # Tillad fjernforbindelser (listen_addresses ='*') med godkendelse" /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

# Del 5:Genstart af klyngen.$ sudo -u postgres psql -c "show listen_addresses"$ ss -nlp | grep 5432$ sudo systemctl genstart [email protected]$ sudo -u postgres psql -c "vis listen_addresses"$ ss -nlp | grep 5432

# Del 6:Åbning af døren.$ sudo ufw status$ sudo ufw tillade 5432/tcp$ sudo ufw status$ ip adr show

# Del 7:Indstil en adgangskode til superbrugerrollen.$ sudo -u postgres psql -c "\password"

Bitbucket
Her er, hvad du derefter skal gøre på Bitbucket-siden.
# Del 1:Bekræftelse af, om den tidligere opsætning var korrekt.$ telnet 192.168.0.106 5432# (Valgfri) Brug af psql.$ sudo -u postgres psql -h 192.168.0.106 -p 5432 -d bit thia_go_db - -U c "\conninfo"

# Del 2:Udpakning af Bitbucket-serveren.$ ls$ tar xzf atlassian-bitbucket-6.10.0$ ls$ du -sh atlassian-bitbucket-6.10.0$ træ -L 1 atlassian-bitbucket -6.10.0$ træ -L 1 atlassian-bitbucket-6.10.0/bin

# Del 3:Ændring af scriptet (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$ kat atlassian-bitbucket-6.10.0/bin/set-bitbucket-home.sh | grep BITBUCKET_HOME=/

# Del 4:Ændring af scriptet (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$ kat atlassian-bitbucket-6.10.0/bin/set-jre-home.sh | grep JRE_HOME=/

# Del 5:Kontrol af hardwaren.$ cat /proc/cpuinfo | grep processor | wc -l$ gratis -h

# Del 6:Kørsel af Bitbucket-serveren med Elasticsearch.$ ./atlassian-bitbucket/bin/start-bitbucket.sh$ free -h

# Del 7:Kørsel af Bitbucket-serveren uden Elasticsearch.$ ./atlassian-bitbucket/bin/start-bitbucket.sh --no-search$ free -h

# Del 8:Hurtigt kig på BITBUCKET_HOME.$ du -sh bitbucket-home$ tree -L 1 bitbucket-home

Integration af PostgreSQL og Bitbucket
Efter konfiguration af PostgreSQL og Bitbucket skal deres integration ske via browseren (http://localhost:7990/).

# Viser tabeller$ psql -h 192.168.0.106 -d bitbucket_db -c "\dt"

Du kan nu konfigurere Bitbucket til at bruge Java Persistence API, med Hibernate som implementering, til at oprette domænemodellen i databasen ved hjælp af PostgreSQL JDBC-driveren.

# Viser tabeller (igen)$ psql -h 192.168.0.106 -d bitbucket_db -c "\dt"

# Bekræfter forbindelsespuljen.$ psql -h 192.168.0.106 -d bitbucket_db -c "select pid,usename,application_name,state from pg_stat_activity where datname ='bitbucket_db'" før>4.5. Viser forbindelsespuljen.
Konklusion
Husk på, at hvis dit netværk bruger DHCP, er det en god idé at konfigurere IP-adressen til statisk i din router, ellers kan Bitbucket mislykkes ved at forsøge at finde PostgreSQL senere.
Det meste af denne blog har gjort brug af regulære udtryk til at ændre konfigurationsfiler uden at åbne teksteditorer, men de kan også bruges på webbrowsere til fejlfindingsformål, prøv at søge efter fejlmeddelelsen "kunne ikke skift mappe til ?:Tilladelse nægtet" med dobbelte anførselstegn eller ethvert andet problem, du måtte finde, og erstatte den computerspecifikke sti med jokertegn '?'.