В системното инженерство комуникацията е ключов елемент за постигане на успех по всеки проект. Това е така, защото е от решаващо значение за целия цикъл на развитие; като се започне от събиране на изисквания до предоставяне на минимално жизнеспособен продукт.
Използвайки разпределена система за контрол на версиите (като Git – индустриален стандарт), разработчиците могат да изпращат малки парчета код и да работят заедно с услуги като Bitbucket, изградени около него. Хостинг на Bitbucket е възможен, когато данните, генерирани от неговите потребители, имат база данни, за да останат, точно като PostgreSQL, но интегрирането на двете изисква допълнителни конфигурации за изпълнение на различни машини.
Преглед на мрежата
Локалната мрежа може да предава информацията между програмите, без да е необходимо да я излага на външната мрежа, в зависимост от това къде биха били потребителите.

С разделянето на проблемите Bitbucket и PostgreSQL могат да разговарят помежду си за постигане на общата си цел, осигурявайки платформа за разпределена система за контрол на версиите.

PostgreSQL разчита на сокет, предоставен от операционната система, така че данните на клъстера се съхраняват зад врата, защитена от правилата на защитната стена.

Първи стъпки
Няма много за казване, тъй като това е доста прост процес. PostgreSQL ще трябва да бъде настроен с нов потребител и база данни, готови за Bitbucket.
PostgreSQL
# Част 1:Подготовка на базата данни.$ pg_lsclusters$ sudo systemctl -a | grep postgres$ sudo -u postgres psql -c "\du" -c "\l"

# Част 2:Създаване на нов потребител (роля) и база данни.$ sudo -u postgres psql -c "създаване на роля thiago с парола за влизане createdb 'Th14g0_P4ssw0rd'"$ psql -d postgres -c "създаване на база данни bitbucket_db"$ psql -d bitbucket_db -c "\du" -c "\l"

# Част 3:Промяна на конфигурацията на клъстера (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

# Част 4:Промяна на конфигурацията на клъстера (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 # Разрешаване на отдалечени връзки (listen_addresses ='*') с удостоверяване" /etc/postgresql/11/main/pg_hba.conf$ sudo sed -i " $ хост\tall\t\tall\t\t192.168.0.0/16\t\tmd5" /etc/postgresql/11/main/pg_hba.conf$ sudo sed -i "$ хост\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

# Част 5:Рестартиране на клъстера.$ sudo -u postgres psql -c "show listen_addresses"$ ss -nlp | grep 5432$ sudo systemctl рестартиране [email protected]$ sudo -u postgres psql -c "show listen_addresses"$ ss -nlp | grep 5432

# Част 6:Отваряне на вратата.$ sudo ufw status$ sudo ufw allow 5432/tcp$ sudo ufw status$ ip addr show

# Част 7:Задайте парола за ролята на суперпотребител.$ sudo -u postgres psql -c "\password"

Bitbucket
Ето какво ще трябва да направите след това от страната на Bitbucket.
# Част 1:Проверка дали по-ранната настройка е била правилна.$ telnet 192.168.0.106 5432# (По избор) Използване на psql.$ sudo -u postgres psql -h 192.168.0.106 -p 5432 -d -U bitbucket_ c "\conninfo"

# Част 2:Извличане на 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$ дърво -L 1 atlassian-bitbucket-6.10.0/bin

# Част 3:Промяна на скрипта (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=/

# Част 4:Промяна на скрипта (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=/

# Част 5:Проверка на хардуера.$ cat /proc/cpuinfo | grep процесор | wc -l$ безплатно -h

# Част 6:Стартиране на Bitbucket Server с Elasticsearch.$ ./atlassian-bitbucket/bin/start-bitbucket.sh$ free -h

# Част 7:Изпълнение на Bitbucket Server без Elasticsearch.$ ./atlassian-bitbucket/bin/start-bitbucket.sh --no-search$ free -h

# Част 8:Бърз преглед на BITBUCKET_HOME.$ du -sh bitbucket-home$ tree -L 1 bitbucket-home

Интегриране на PostgreSQL и Bitbucket
След като конфигурирате PostgreSQL и Bitbucket, тяхната интеграция трябва да се извърши през браузъра (http://localhost:7990/).

# Показване на таблици$ psql -h 192.168.0.106 -d bitbucket_db -c "\dt"

Вече можете да настроите Bitbucket да използва Java Persistence API, с Hibernate като реализация, за създаване на модела на домейна в базата данни, използвайки PostgreSQL JDBC драйвера.

# Показване на таблици (отново)$ psql -h 192.168.0.106 -d bitbucket_db -c "\dt"

# Проверка на пула за връзки.$ psql -h 192.168.0.106 -d bitbucket_db -c "изберете pid,usename,application_name,state от pg_stat_activity, където datname_ 'bbucket" предварително>4.5. Показване на пула за връзки.
Заключение
Имайте предвид, че ако мрежата ви използва DHCP, добре е да конфигурирате IP адреса да е статичен във вашия рутер, или Bitbucket може да не успее да се опита да намери PostgreSQL по-късно.
По-голямата част от този блог е използвала регулярни изрази за промяна на конфигурационни файлове без отваряне на текстови редактори, но те могат да се използват и в уеб браузъри за целите на отстраняване на грешки, опитайте да потърсите съобщението за грешка „не може променете директорията на ?:Отказано разрешение“ с двойни кавички или друг проблем, който може да откриете, като замените специфичния за компютъра път със заместващ знак „?“.