PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Controllo della versione di PostgreSQL con Atlassian Bitbucket

Nell'ingegneria dei sistemi, la comunicazione è un elemento chiave per raggiungere il successo in qualsiasi progetto. Questo perché è fondamentale per l'intero ciclo di sviluppo; dalla raccolta dei requisiti alla fornitura di un prodotto minimo praticabile.

Utilizzando un sistema di controllo della versione distribuito (come Git, uno standard del settore), gli sviluppatori possono inviare piccoli pezzi di codice e collaborare con servizi come Bitbucket costruiti attorno ad esso. L'hosting di Bitbucket è possibile quando i dati generati dai suoi utenti hanno un database su cui rimanere, proprio come PostgreSQL, ma l'integrazione di entrambi richiede configurazioni aggiuntive per l'esecuzione su macchine diverse.

Panoramica della rete

Una rete locale può passare le informazioni tra i programmi senza la necessità di esporle alla rete esterna, a seconda di dove si troverebbero gli utenti.

1.1. Rete locale (LAN).

Con la separazione delle preoccupazioni, Bitbucket e PostgreSQL possono dialogare tra loro per raggiungere il proprio obiettivo comune, fornendo una piattaforma del sistema di controllo della versione distribuito.

1.2. Bitbucket che accede a PostgreSQL.

PostgreSQL si basa su un socket fornito dal sistema operativo, quindi i dati del cluster sono tenuti dietro una porta protetta dalle regole del firewall.

1.3. Origine dati PostgreSQL.

Per iniziare

Non c'è molto da dire in quanto si tratta di un processo piuttosto semplice. PostgreSQL dovrà essere configurato con un nuovo utente e un database pronto per Bitbucket.

PostgreSQL

# Part 1: Preparing the database.

$ pg_lsclusters

$ sudo systemctl -a | grep postgres

$ sudo -u postgres psql -c "\du" -c "\l"
2.1. Verifica se ci sono cluster già in esecuzione.
# 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. Il proprietario del database non è il superutente postgres.
# 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_addresses
2.3. Consentire connessioni remote (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.conf
2.4. Modifica dei permessi di accesso (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 5432
2.5. Applicazione delle modifiche.
# Part 6: Opening the door.

$ sudo ufw status

$ sudo ufw allow 5432/tcp

$ sudo ufw status

$ ip addr show
2.6. Configurazione del firewall e visualizzazione dell'indirizzo IP.
# Part 7: Set a password for the superuser role.

$ sudo -u postgres psql -c "\password"
2.7. Modifica della password dell'amministratore.

Bitbucket

Ecco cosa dovrai fare poi sul lato 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. Raggiungere il database da remoto.
# 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/bin
3.2. Script per Linux e 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. Configurazione di 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. Configurazione di JRE_HOME (Java).
# Part 5: Checking the hardware.

$ cat /proc/cpuinfo | grep processor | wc -l

$ free -h
3.5. Core della CPU e RAM all'avvio.
# Part 6: Running the Bitbucket Server with Elasticsearch.

$ ./atlassian-bitbucket/bin/start-bitbucket.sh

$ free -h
3.6. Esecuzione con Elasticsearch (impostazione predefinita).
# Part 7: Running the Bitbucket Server without Elasticsearch.

$ ./atlassian-bitbucket/bin/start-bitbucket.sh --no-search

$ free -h
3.7. Esecuzione senza Elasticsearch (risparmio di 1 GB di RAM).
# Part 8: Quick look at BITBUCKET_HOME.

$ du -sh bitbucket-home

$ tree -L 1 bitbucket-home
3.8. All'interno di BITBUCKET_HOME.

Integrazione di PostgreSQL e Bitbucket

Dopo aver configurato PostgreSQL e Bitbucket, la loro integrazione deve essere fatta tramite il browser (http://localhost:7990/).

4.1. Bitbucket in avvio.
# Displaying tables

$ psql -h 192.168.0.106 -d bitbucket_db -c "\dt"

4.2. Elenco delle tabelle del database correnti.

Ora puoi configurare Bitbucket per utilizzare Java Persistence API, con Hibernate come implementazione, per creare il modello di dominio nel database, utilizzando il driver JDBC PostgreSQL.

4.3. Configurazione dell'origine dati.
# Displaying tables (again)

$ psql -h 192.168.0.106 -d bitbucket_db -c "\dt"
4.4. Elenco di nuovo, mostrando 10 righe su 164.
# 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. Visualizzazione del pool di connessioni.

Conclusione

Tieni presente che se la tua rete utilizza DHCP, è una buona idea configurare l'indirizzo IP su statico nel router, altrimenti Bitbucket potrebbe non riuscire a trovare PostgreSQL in seguito.

La maggior parte di questo blog ha utilizzato le espressioni regolari per modificare i file di configurazione senza aprire editor di testo, ma possono essere utilizzate anche sui browser Web per scopi di debug, prova a cercare il messaggio di errore "non potrebbe cambia directory in ?:Permesso negato" con virgolette doppie o qualsiasi altro problema che potresti riscontrare, sostituendo il percorso specifico del computer con il carattere jolly '?'.