V systémovém inženýrství je komunikace klíčovým prvkem k dosažení úspěchu na jakémkoli projektu. Je to proto, že je rozhodující pro celý cyklus vývoje; počínaje shromažďováním požadavků až po dodání minimálního životaschopného produktu.
Pomocí distribuovaného systému správy verzí (jako je Git – průmyslový standard) mohou vývojáři odesílat malé kousky kódu a spolupracovat se službami, jako je Bitbucket, které jsou na něm postavené. Hostování Bitbucketu je možné, když data generovaná jeho uživateli mají uloženou databázi, stejně jako PostgreSQL, ale integrace obou vyžaduje další konfigurace pro spouštění na různých počítačích.
Přehled sítě
Místní síť může předávat informace mezi programy, aniž by je bylo nutné vystavovat vnější síti, v závislosti na tom, kde by se uživatelé nacházeli.
1.1. Local area network (LAN).S oddělenými zájmy mohou Bitbucket a PostgreSQL vzájemně hovořit za účelem dosažení svého společného cíle, kterým je poskytnutí platformy distribuovaného systému správy verzí.
1.2. Bitbucket přistupující k PostgreSQL.PostgreSQL se spoléhá na soket poskytovaný operačním systémem, takže data clusteru jsou uchovávána za dveřmi chráněnými pravidly brány firewall.
1.3. Zdroj dat PostgreSQL.Začínáme
Není moc co říct, protože je to docela jednoduchý proces. PostgreSQL bude muset být nastaven s novým uživatelem a databází připravenou pro Bitbucket.
PostgreSQL
# Část 1:Příprava databáze.$ pg_lsclusters$ sudo systemctl -a | grep postgres$ sudo -u postgres psql -c "\du" -c "\l"2.1. Ověření, zda již klastry běží.
# Část 2:Vytvoření nového uživatele (role) a databáze.$ sudo -u postgres psql -c "vytvořit roli thiago s přihlašovacím heslem createdb 'Th14g0_P4ssw0rd'"$ psql -d postgres -c "vytvořit databázi bitbucket_db"$ psql -d bitbucket_db -c "\du" -c "\l"2.2. Vlastníkem databáze není superuživatel postgres.
# Část 3:Změna konfigurace clusteru (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. Povolení vzdálených připojení (postgresql.conf).
# Část 4:Změna konfigurace clusteru (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 # Povolit vzdálená připojení (listen_addresses ='*') s ověřením" /etc/postgresql/11/main/pg_hba.conf$ sudo sed -i " $ a hostitel\vysoký\t\vysoký\t\t192.168.0.0/16\t\tmd5" /etc/postgresql/11/main/pg_hba.conf$ sudo sed -i "$ hostitel\vysoký\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. Změna přístupových oprávnění (pg_hba.conf).
# Část 5:Restartování clusteru.$ 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. Aplikování změn.
# Část 6:Otevření dveří.$ sudo ufw status$ sudo ufw allow 5432/tcp$ sudo ufw status$ ip addr show2.6. Konfigurace firewallu a zobrazení IP adresy.
# Část 7:Nastavení hesla pro roli superuživatele.$ sudo -u postgres psql -c "\password"2.7. Změna hesla správce.
Bitbucket
Zde je to, co budete muset udělat na straně Bitbucket.
# Část 1:Ověření, zda bylo předchozí nastavení správné.$ telnet 192.168.0.106 5432# (Volitelné) Pomocí psql.$ sudo -u postgres psql -h 192.168.0.106 -p 5432 -d bitbucket_db - -U thia c "\conninfo"3.1. Vzdálený přístup k databázi.
# Část 2:Extrahování serveru Bitbucket.$ ls$ tar xzf atlassian-bitbucket-6.10.0$ ls$ du -sh atlassian-bitbucket-6.10.0$ strom -L 1 atlassian-bitbucket -6.10.0$ strom -L 1 atlassian-bitbucket-6.10.0/bin3.2. Skripty pro Linux a Windows.
# Část 3:Úprava skriptu (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. Konfigurace BITBUCKET_HOME.
# Část 4:Úprava skriptu (set-jre-home.sh).$ readlink -f $(která 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. Konfigurace JRE_HOME (Java).
# Část 5:Kontrola hardwaru.$ cat /proc/cpuinfo | procesor grep | wc -l$ zdarma -h3.5. Jádra CPU a RAM při spuštění.
# Část 6:Spuštění serveru Bitbucket s Elasticsearch.$ ./atlassian-bitbucket/bin/start-bitbucket.sh$ zdarma -h3.6. Spouštění s Elasticsearch (výchozí).
# Část 7:Spuštění serveru Bitbucket bez Elasticsearch.$ ./atlassian-bitbucket/bin/start-bitbucket.sh --no-search$ free -h3.7. Spouštění bez Elasticsearch (Ušetří 1 GB RAM).
# Část 8:Rychlý pohled na BITBUCKET_HOME.$ du -sh bitbucket-home$ tree -L 1 bitbucket-home3.8. Uvnitř BITBUCKET_HOME.
Integrace PostgreSQL a Bitbucket
Po konfiguraci PostgreSQL a Bitbucket musí být jejich integrace provedena prostřednictvím prohlížeče (http://localhost:7990/).
4.1. Bitbucket se spouští.# Zobrazení tabulek$ psql -h 192.168.0.106 -d bitbucket_db -c "\dt"4.2. Výpis aktuálních databázových tabulek.
Nyní můžete nastavit Bitbucket tak, aby používal Java Persistence API s implementací Hibernate pro vytváření modelu domény v databázi pomocí ovladače PostgreSQL JDBC.
4.3. Konfigurace zdroje dat.# Zobrazení tabulek (opět)$ psql -h 192.168.0.106 -d bitbucket_db -c "\dt"4.4. Výpis znovu, zobrazuje 10 ze 164 řádků.
# Ověření fondu připojení.$ psql -h 192.168.0.106 -d bitbucket_db -c "vyberte pid,usename,application_name,state from pg_stat_activity where dataname ='bitbucket_db'" 4.5. Zobrazení fondu připojení.Závěr
Mějte na paměti, že pokud vaše síť používá DHCP, je dobré nakonfigurovat IP adresu ve vašem routeru na statickou, jinak by Bitbucket mohl selhat při pokusu o nalezení PostgreSQL později.
Většina tohoto blogu používá regulární výrazy pro změnu konfiguračních souborů bez otevírání textových editorů, ale lze je použít i ve webových prohlížečích pro účely ladění, zkuste vyhledat chybovou zprávu „nemohl změnit adresář na ?:Permission denied” s dvojitými uvozovkami nebo s jakýmkoli jiným problémem, který můžete najít, nahrazením cesty specifické pro počítač zástupným znakem '?'.