In der Systemtechnik ist Kommunikation ein Schlüsselelement für den Erfolg eines jeden Projekts. Dies liegt daran, dass es für den gesamten Entwicklungszyklus von entscheidender Bedeutung ist; angefangen von der Sammlung von Anforderungen bis hin zur Lieferung eines minimal lebensfähigen Produkts.
Durch die Verwendung eines verteilten Versionskontrollsystems (wie Git – ein Industriestandard) können Entwickler kleine Codeteile einreichen und mit darauf aufbauenden Diensten wie Bitbucket zusammenarbeiten. Das Hosten von Bitbucket ist möglich, wenn die von seinen Benutzern generierten Daten eine Datenbank haben, um zu bleiben, genau wie PostgreSQL, aber die Integration beider erfordert zusätzliche Konfigurationen für die Ausführung auf verschiedenen Computern.
Netzwerkübersicht
Ein lokales Netzwerk kann die Informationen zwischen den Programmen übertragen, ohne dass sie dem externen Netzwerk zugänglich gemacht werden müssen, je nachdem, wo sich die Benutzer befinden.
1.1. Lokales Netzwerk (LAN).Durch die Trennung der Anliegen können Bitbucket und PostgreSQL miteinander kommunizieren, um ihr gemeinsames Ziel zu erreichen, nämlich die Bereitstellung einer Plattform für ein verteiltes Versionskontrollsystem.
1.2. Bitbucket greift auf PostgreSQL zu.PostgreSQL ist auf einen vom Betriebssystem bereitgestellten Socket angewiesen, sodass die Daten des Clusters hinter einer durch Firewallregeln geschützten Tür aufbewahrt werden.
1.3. PostgreSQL-Datenquelle.Erste Schritte
Es gibt nicht viel zu sagen, da dies ein ziemlich einfacher Vorgang ist. PostgreSQL muss mit einem neuen Benutzer und einer Datenbank eingerichtet werden, die für Bitbucket bereit sind.
PostgreSQL
# Teil 1:Vorbereiten der Datenbank.$ pg_lsclusters$ sudo systemctl -a | grep postgres$ sudo -u postgres psql -c "\du" -c "\l"2.1. Überprüfen, ob bereits Cluster ausgeführt werden.
# Teil 2:Erstellen eines neuen Benutzers (einer neuen Rolle) und einer neuen Datenbank.$ sudo -u postgres psql -c "erstelle die Rolle thiago mit dem erstellten Login-Passwort 'Th14g0_P4ssw0rd'"$ psql -d postgres -c "Datenbank bitbucket_db erstellen"$ psql -d bitbucket_db -c "\du" -c "\l"2.2. Der Eigentümer der Datenbank ist nicht der Superuser postgres.
# Teil 3:Ändern der Cluster-Konfiguration (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. Fernverbindungen zulassen (postgresql.conf).
# Teil 4:Clusterkonfiguration ändern (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 # Fernverbindungen zulassen (listen_addresses ='*') mit Authentifizierung" /etc/postgresql/11/main/pg_hba.conf$ sudo sed -i " $ ein Host\groß\t\groß\t\t192.168.0.0/16\t\tmd5" /etc/postgresql/11/main/pg_hba.conf$ sudo sed -i "$ ein Host\groß\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. Ändern der Zugriffsberechtigungen (pg_hba.conf).
# Teil 5:Neustart des Clusters.$ 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. Anwenden der Änderungen.
# Teil 6:Öffnen der Tür.$ sudo ufw status$ sudo ufw allow 5432/tcp$ sudo ufw status$ ip addr show2.6. Konfigurieren der Firewall und Anzeigen der IP-Adresse.
# Teil 7:Legen Sie ein Passwort für die Superuser-Rolle fest.$ sudo -u postgres psql -c "\password"2.7. Ändern des Admin-Passworts.
Bitbucket
Hier ist, was Sie dann auf der Bitbucket-Seite tun müssen.
# Teil 1:Überprüfen, ob die frühere Einrichtung korrekt war.$ telnet 192.168.0.106 5432# (Optional) Verwendung von psql.$ sudo -u postgres psql -h 192.168.0.106 -p 5432 -d bitbucket_db -U thiago - c "\conninfo"3.1. Fernzugriff auf die Datenbank.
# Teil 2:Extrahieren des Bitbucket-Servers.$ 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. Skripte für Linux und Windows.
# Teil 3:Ändern des Skripts (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. Konfigurieren von BITBUCKET_HOME.
# Teil 4:Ändern des Skripts (set-jre-home.sh).$ readlink -f $(what java)$ cat atlassian-bitbucket-6.10.0/bin/set-jre-home. sch | 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$ Katze atlassian-bitbucket-6.10.0/bin/set-jre-home.sh | grep JRE_HOME=/3.4. Konfiguration von JRE_HOME (Java).
# Teil 5:Überprüfung der Hardware.$ cat /proc/cpuinfo | grep-Prozessor | wc -l$ free -h3.5. CPU-Kerne und RAM beim Start.
# Teil 6:Ausführen des Bitbucket-Servers mit Elasticsearch.$ ./atlassian-bitbucket/bin/start-bitbucket.sh$ free -h3.6. Ausführen mit Elasticsearch (Standard).
# Teil 7:Ausführen des Bitbucket-Servers ohne Elasticsearch.$ ./atlassian-bitbucket/bin/start-bitbucket.sh --no-search$ free -h3.7. Ausführung ohne Elasticsearch (spart 1 GB RAM).
# Teil 8:Kurzer Blick auf BITBUCKET_HOME.$ du -sh bitbucket-home$ tree -L 1 bitbucket-home3.8. Innerhalb von BITBUCKET_HOME.
Integration von PostgreSQL und Bitbucket
Nach der Konfiguration von PostgreSQL und Bitbucket muss deren Integration über den Browser erfolgen (http://localhost:7990/).
4.1. Bitbucket wird gestartet.# Tabellen anzeigen$ psql -h 192.168.0.106 -d bitbucket_db -c "\dt"4.2. Aktuelle Datenbanktabellen auflisten.
Sie können Bitbucket jetzt so einrichten, dass es die Java Persistence API mit Hibernate als Implementierung verwendet, um das Domänenmodell in der Datenbank mit dem PostgreSQL-JDBC-Treiber zu erstellen.
4.3. Datenquellenkonfiguration.# Tabellen (erneut) anzeigen$ psql -h 192.168.0.106 -d bitbucket_db -c "\dt"4.4. Erneutes Auflisten, zeigt 10 von 164 Zeilen.
# Überprüfung des Verbindungspools.$ 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. Anzeigen des Verbindungspools.Fazit
Denken Sie daran, dass es eine gute Idee ist, die IP-Adresse in Ihrem Router auf statisch zu konfigurieren, wenn Ihr Netzwerk DHCP verwendet, oder dass Bitbucket später möglicherweise nicht versucht, PostgreSQL zu finden.
Der größte Teil dieses Blogs hat reguläre Ausdrücke verwendet, um Konfigurationsdateien zu ändern, ohne Texteditoren zu öffnen, aber sie können auch in Webbrowsern zu Debugging-Zwecken verwendet werden, versuchen Sie, nach der Fehlermeldung „could not change directory to ?:Permission denied“ mit doppelten Anführungszeichen oder einem anderen Problem, das Sie möglicherweise finden, indem Sie den computerspezifischen Pfad durch den Platzhalter „?“ ersetzen.