W inżynierii systemów komunikacja jest kluczowym elementem do osiągnięcia sukcesu w każdym projekcie. Dzieje się tak, ponieważ ma kluczowe znaczenie dla całego cyklu rozwoju; począwszy od zbierania wymagań do dostarczenia minimalnego opłacalnego produktu.
Korzystając z rozproszonego systemu kontroli wersji (takiego jak Git – standard branżowy), programiści mogą przesyłać małe fragmenty kodu i współpracować z usługami, takimi jak Bitbucket, które są na nim oparte. Hosting Bitbucket jest możliwy, gdy dane generowane przez użytkowników mają bazę danych, tak jak PostgreSQL, ale integracja obu wymaga dodatkowych konfiguracji do wykonywania na różnych maszynach.
Omówienie sieci
Sieć lokalna może przekazywać informacje między programami bez konieczności udostępniania ich sieci zewnętrznej, w zależności od tego, gdzie byliby użytkownicy.
1.1. Sieć lokalna (LAN).Dzięki rozdzieleniu obaw Bitbucket i PostgreSQL mogą komunikować się ze sobą, aby osiągnąć swój wspólny cel, zapewniając platformę rozproszonego systemu kontroli wersji.
1.2. Dostęp Bitbucket do PostgreSQL.PostgreSQL opiera się na gnieździe zapewnianym przez system operacyjny, więc dane klastra są przechowywane za drzwiami chronionymi przez reguły zapory.
1.3. Źródło danych PostgreSQL.Pierwsze kroki
Nie ma wiele do powiedzenia, ponieważ jest to dość prosty proces. PostgreSQL będzie musiał być skonfigurowany z nowym użytkownikiem i bazą danych gotową na Bitbucket.
PostgreSQL
# Part 1: Preparing the database. $ pg_lsclusters $ sudo systemctl -a | grep postgres $ sudo -u postgres psql -c "\du" -c "\l"2.1. Sprawdzanie, czy istnieją już działające klastry.
# Part 2: Creating a new user (role) and database. $ sudo -u postgres psql -c "create role thiago with createdb login password 'Th14g0_P4ssw0rd'" $ psql -d postgres -c "create database bitbucket_db" $ psql -d bitbucket_db -c "\du" -c "\l"2.2. Właścicielem bazy danych nie jest postgres superużytkownika.
# Part 3: Changing the cluster configuration (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_addresses2.3. Zezwalanie na połączenia zdalne (postgresql.conf).
# Part 4: Changing the cluster configuration (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 # Allow remote connections (listen_addresses = '*') with authentication" /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.conf2.4. Zmiana uprawnień dostępu (pg_hba.conf).
# Part 5: Restarting the 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 54322.5. Stosowanie zmian.
# Part 6: Opening the door. $ sudo ufw status $ sudo ufw allow 5432/tcp $ sudo ufw status $ ip addr show2.6. Konfigurowanie zapory i wyświetlanie adresu IP.
# Part 7: Set a password for the superuser role. $ sudo -u postgres psql -c "\password"2.7. Zmiana hasła administratora.
Bitbucket
Oto, co musisz zrobić po stronie Bitbucket.
# Part 1: Verifying if the earlier set up was correct. $ telnet 192.168.0.106 5432 # (Optional) Using psql. $ sudo -u postgres psql -h 192.168.0.106 -p 5432 -d bitbucket_db -U thiago -c "\conninfo"3.1. Zdalne dotarcie do bazy danych.
# Part 2: Extracting the Bitbucket Server. $ ls $ tar xzf atlassian-bitbucket-6.10.0 $ ls $ du -sh atlassian-bitbucket-6.10.0 $ tree -L 1 atlassian-bitbucket-6.10.0 $ tree -L 1 atlassian-bitbucket-6.10.0/bin3.2. Skrypty dla systemu Linux i Windows.
# Part 3: Modifying the 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. Konfiguracja BITBUCKET_HOME.
# Part 4: Modifying the 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. Konfiguracja JRE_HOME (Java).
# Part 5: Checking the hardware. $ cat /proc/cpuinfo | grep processor | wc -l $ free -h3.5. Rdzenie procesora i pamięć RAM podczas uruchamiania.
# Part 6: Running the Bitbucket Server with Elasticsearch. $ ./atlassian-bitbucket/bin/start-bitbucket.sh $ free -h3.6. Wykonywanie z Elasticsearch (domyślnie).
# Part 7: Running the Bitbucket Server without Elasticsearch. $ ./atlassian-bitbucket/bin/start-bitbucket.sh --no-search $ free -h3.7. Wykonywanie bez Elasticsearch (Oszczędza 1 GB pamięci RAM).
# Part 8: Quick look at BITBUCKET_HOME. $ du -sh bitbucket-home $ tree -L 1 bitbucket-home3.8. Wewnątrz BITBUCKET_HOME.
Integracja PostgreSQL i Bitbucket
Po skonfigurowaniu PostgreSQL i Bitbucket ich integracja musi być wykonana przez przeglądarkę (http://localhost:7990/).
4.1. Uruchamianie Bitbucket.# Displaying tables $ psql -h 192.168.0.106 -d bitbucket_db -c "\dt"4.2. Wyświetlanie listy aktualnych tabel bazy danych.
Możesz teraz skonfigurować Bitbucket tak, aby używał Java Persistence API, z implementacją Hibernate, do tworzenia modelu domeny w bazie danych przy użyciu sterownika PostgreSQL JDBC.
4.3. Konfiguracja źródła danych.# Displaying tables (again) $ psql -h 192.168.0.106 -d bitbucket_db -c "\dt"4.4. Listing ponownie, pokazujący 10 ze 164 wierszy.
# Verifying the connection pool. $ 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. Wyświetlanie puli połączeń.
Wnioski
Pamiętaj, że jeśli Twoja sieć używa DHCP, dobrym pomysłem jest skonfigurowanie statycznego adresu IP w routerze, w przeciwnym razie Bitbucket może się nie powieść podczas późniejszego odnalezienia PostgreSQL.
Większość tego bloga używa wyrażeń regularnych do zmiany plików konfiguracyjnych bez otwierania edytorów tekstu, ale można ich również używać w przeglądarkach internetowych do celów debugowania, spróbuj wyszukać komunikat o błędzie „nie można zmień katalog na ?:Permission denied” z podwójnymi cudzysłowami lub innym problemem, który możesz znaleźć, zastępując ścieżkę specyficzną dla komputera symbolem wieloznacznym „?”.