GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So installieren Sie Gitlab mit PostgreSQL und Nginx unter Ubuntu 15.04

Gitlab ist eine webbasierte Anwendung zur Verwaltung von Git-Repositorys, die auf Ruby geschrieben wurde. Es ähnelt GitHub und enthält Funktionen wie ein Projekt-Wiki und ein Problemverfolgungssystem. Das Gitlab-Projekt wurde von Dmitriy Zaporozhets gestartet und die Software wird von mehr als 100.000 Technologieunternehmen verwendet, darunter IBM, StackExchange, NASA, Alibaba, Red Hat usw. Gitlab ist eine der besten Lösungen zum Erstellen Ihres eigenen Git-Servers. P>

Gitlab wird von den wichtigsten Linux-Distributionen wie Ubuntu, Debian und CentOS unterstützt. Gitlab stellt ein .deb-Paket für Debian/Ubuntu und .rpm-Pakete für Rhel und CentOS bereit. Das Paket enthält alle Abhängigkeiten einschließlich Ruby, Redis, Nginx, Unicorn und PostgreSQL. Gitlab ist in 2 Versionen verfügbar, der Community Edition (Gitlab CE) und der Enterprise Edition (Gitlab EE). Wenn Sie Ihren eigenen Git-Server erstellen möchten, bietet die kostenlose CE-Edition höchstwahrscheinlich alle Funktionen, die Sie benötigen.

In diesem Tutorial werde ich Sie Schritt für Schritt durch die Installation von Gitlab CE mit PostgreSQL als Datenbanksystem und Nginx als Webserver auf der Ubuntu 15.04-Version führen. Wir verwenden Ruby Version 2.x.x, Gitlab Stable Version 8.x.

Voraussetzungen

  • Ubuntu 15.04 – 64 Bit.
  • CPU 2 Kerne - von der Gitlab-Site empfohlen .
  • 2 GB RAM/Speicher - von der Gitlab-Site empfohlen .
  • Root-Rechte.

Schritt 1 - Aktualisieren Sie das Linux-System

Bevor wir die Gitlab-Abhängigkeiten installieren, holen wir uns die neuesten Updates aus dem Ubuntu-Repository. Melden Sie sich mit SSH-Zugriff beim Ubuntu-Server an,  werden Sie Root-Benutzer und aktualisieren Sie dann die Repositories.

sudo su
apt-get update

Schritt 2 – Gitlab-Abhängigkeiten installieren

Gitlab hat viele Softwareabhängigkeiten wie Redis-Server, Git-Core, Nodejs und Postfix zum Senden von E-Mail-Benachrichtigungen. Ich werde sie mit einem einzigen apt-Befehl installieren:

sudo apt-get install -y build-essential zlib1g-dev libyaml-dev libssl-dev libgdbm-dev libreadline-dev libncurses5-dev libffi-dev curl openssh-server redis-server checkinstall libxml2-dev libxslt-dev libcurl4-openssl-dev libicu-dev logrotate python-docutils pkg-config cmake nodejs git-core postfix

Hinweis:Während Postfix-Installation, wählen Sie "Internet-Site" und drücken Sie dann die Eingabetaste, um den Hostnamen zu bestätigen.

Wenn alle Pakete installiert sind, überprüfen Sie die Git-Version und stellen Sie sicher, dass die Git-Version 1.7.x oder höher ist.

git --version
git version 2.1.4

Schritt 3 – Ruby and Go installieren

Gitlab erfordert eine Ruby-Version 2.x oder höher. In diesem Tutorial verwenden wir die Ruby-Version 2.7. In dieser Phase müssen wir Ruby manuell (aus dem Quellcode) installieren. Wenn Sie zuvor Ruby auf Ihrem System installiert haben, entfernen Sie es mit dem folgenden Befehl:

apt-get remove ruby -y

Als nächstes werden wir Ruby manuell installieren. Neues Verzeichnis für die Ruby-Quelldateien erstellen:

mkdir -p /tmp/ruby && cd /tmp/ruby

Laden Sie die Ruby-Quelle mit dem Curl-Befehl herunter:

curl -O --progress https://cache.ruby-lang.org/pub/ruby/2.1/ruby-2.1.7.tar.gz

Überprüfen und extrahieren Sie nun ruby.tar.gz und geben Sie dann das Ruby-Verzeichnis ein:

echo 'e2e195a4a58133e3ad33b955c829bb536fa3c075  ruby-2.1.7.tar.gz' | shasum -c - && \
tar xzf ruby-2.1.7.tar.gz && \
cd ruby-2.1.7

Kompilieren und installieren Sie Ruby:

./configure --disable-install-rdoc --prefix=/usr/local
make
make install

Als nächsten Schritt müssen wir Go installieren. Seit gitlab 8.0 wird die git-HTTP-Anforderung von gitlab-workhorse verarbeitet, das in Go geschrieben ist. Um gitlab-workhorse zu installieren, benötigen wir den Go-Compiler, laden Sie ihn herunter und installieren Sie ihn.

Neues Verzeichnis für Go erstellen:

mkdir -p /tmp/go && cd /tmp/go

Laden Sie Go herunter - wir verwenden die 64-Bit-Version:

curl -O --progress https://storage.googleapis.com/golang/go1.5.1.linux-amd64.tar.gz

Überprüfen Sie es und extrahieren Sie es in das Verzeichnis „/usr/local/“:

echo '46eecd290d8803887dec718c691cc243f2175fe0  go1.5.1.linux-amd64.tar.gz' | shasum -c - && \
sudo tar -C /usr/local -xzf go1.5.1.linux-amd64.tar.gz

Erstellen Sie nun einen Symlink für Go im bin-Verzeichnis:

sudo ln -sf /usr/local/go/bin/{go,godoc,gofmt} /usr/local/bin/

Jetzt haben wir Ruby and Go installiert.

Schritt 4 – Erstellen Sie einen neuen Linux-Benutzer und konfigurieren Sie die PostgreSQL-Datenbank

In diesem Schritt erstellen wir einen neuen Linux-Systembenutzer namens "git" mit dem Home-Verzeichnis "/home/git". Gitlab wird später als Git-Benutzer ausgeführt.

Erstellen Sie einen neuen Benutzer-Git mit dem Befehl adduser:

sudo adduser --disabled-login --gecos 'GitLab' git

Jetzt konfigurieren wir die Datenbank für gitlab. Gitlab unterstützt MySQL und PostgreSQL, in diesem Tutorial verwenden wir den empfohlenen Datenbanktyp PostGreSQL.

Installieren Sie PostgreSQL mit dem folgenden apt-Befehl:

sudo apt-get install -y postgresql postgresql-client libpq-dev

Sobald dies erledigt ist, melden Sie sich bei PostgreSQL an und erstellen Sie eine neue Rolle/einen neuen Benutzer namens „git " für gitlab:

sudo -u postgres psql -d template1
CREATE USER git CREATEDB;

Erstellen Sie dann eine neue Datenbank für Gitlab namens „gitlabhq_production " und gewähren Sie der Datenbank git user/role:

CREATE DATABASE gitlabhq_production OWNER git;

Beenden Sie nun die postgresql-Shell und testen Sie die neue Rolle/den neuen Benutzer mit der von uns erstellten Datenbank:

\q
sudo -u git -H psql -d gitlabhq_production

Neuer Systembenutzer namens "git" wurde erstellt.

Neue Rolle/Benutzer „git“ für psotgreSQL, die der Gitlab-Datenbank „gitlabhq_production“ zugewiesen wurde, wurde ebenfalls erstellt.

Schritt 5 – Konfigurieren Sie den Redis-Server

Bevor wir die Redis-Konfigurationsdatei im Verzeichnis „/etc/redis“ bearbeiten, erstellen wir eine Sicherungskopie mit dem Namen redis.conf.original.

cd /etc/redis/
cp redis.conf redis.conf.original

Bearbeiten Sie dann die Datei "redis.conf" mit dem vim-Editor:

vim redis.conf


Gehen Sie zu Zeile 45 und ändern Sie den Wert auf 0 , weil Redis nur auf einem Unix-Socket und nicht auf einem Port lauschen soll:

Listen 0

Gehen Sie dann zum Ende der Datei und fügen Sie einen Redis-Socket und die Berechtigung dafür hinzu:

unixsocket /var/run/redis/redis.sock
unixsocketperm 777

Speichern Sie die Datei und beenden Sie sie.

Erstellen Sie als nächstes ein neues Verzeichnis für den Redis-Socket im Verzeichnis "/var/run" und passen Sie den Eigentümer und die Berechtigungen des Verzeichnisses an:

mkdir -p /var/run/redis
chown redis:redis /var/run/redis
chmod 755 /var/run/redis

Wechseln Sie in das Redis-Socket-Verzeichnis und führen Sie den folgenden Befehl aus:

cd /var/run/redis
if [ -d /etc/tmpfiles.d ]; then
  echo 'd  /var/run/redis  0755  redis  redis  10d  -' | sudo tee -a /etc/tmpfiles.d/redis.conf
fi

Wenn alles erledigt ist, starten Sie den Redis-Server neu und fügen Sie den Benutzer „git“ zur Gruppe „redis“ hinzu:

sudo service redis-server restart
sudo usermod -aG redis git

Schritt 6 – GitLab installieren

Gehen Sie in das Verzeichnis „/home/git“ und laden Sie gitlab aus seinem GIT-Repository herunter:

cd /home/git
sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-ce.git -b 8-2-stable gitlab

Hinweis:

sudo -u git -H Klon command =Wir führen den Befehl „clone“ als Benutzer „git“ aus.

- GitLab konfigurieren

Gehen Sie zum Gitlab-Verzeichnis, um Gitlab zu konfigurieren:

cd /home/git/gitlab

Kopieren Sie das Beispiel der Gitlab-Konfigurationsdatei gitlab.yml.example nach gitlab.yml in das Verzeichnis „config“:

sudo -u git -H cp config/gitlab.yml.example config/gitlab.yml

Ändern Sie im Gitlab-Verzeichnis den Besitzer der Unterverzeichnisse „log und tmp“ auf den Git-Benutzer:

sudo chown -R git {log,tmp}

Ändern Sie dann die Berechtigungen für die anderen Verzeichnisse, damit gitlab (der Git-Benutzer) in sie schreiben kann:

mkdir -p public/uploads/
sudo chmod -R u+rwX,go-w log/
sudo chmod -R u+rwX {tmp,tmp/pids,tmp/sockets,builds,shared/artifacts}
sudo chmod -R 0750 public/uploads

Kopieren Sie die Beispiele der Einhorn- und Rack-Angriffskonfigurationen:

sudo -u git -H cp config/unicorn.rb.example config/unicorn.rb
sudo -u git -H cp config/initializers/rack_attack.rb.example config/initializers/rack_attack.rb

Jetzt müssen wir die globalen Einstellungen für den Git-Benutzer mit dem folgenden Git-Befehl konfigurieren:

sudo -u git -H git config --global core.autocrlf input

Und wir müssen die Redis-Verbindung konfigurieren, indem wir die Datei „resque.yml“ in das Konfigurationsverzeichnis kopieren, sie dann mit vim bearbeiten, um die Redis-Konfiguration zu ändern, Unix-Socket verwenden, da wir Redis so konfiguriert haben, dass es auf einem Socket lauscht:

sudo -u git -H cp config/resque.yml.example config/resque.yml

- Datenbankkonfiguration

Der nächste Schritt ist die Konfiguration der GitLab DB-Einstellungen, wir verwenden postgreSQL für unsere Datenbank. Kopieren Sie die Konfigurationsdatei und ändern Sie die Berechtigungen:

sudo -u git -H cp config/database.yml.postgresql config/database.yml
sudo -u git -H chmod o-rwx config/database.yml

- Installiere die Gems

sudo gem install bundler
sudo -u git -H bundle install --deployment --without development test mysql aws kerberos

Warten Sie, bis die Befehle beendet sind.

- Installieren Sie die Gitlab-Shell

Gitlab-Shell ermöglicht SSH-Zugriff und Repository-Verwaltung für Gitlab. Wir verwenden die Standardkonfiguration, sodass wir sie nicht bearbeiten müssen. Führen Sie den folgenden Befehl aus, um die Gitlab-Shell zu installieren:

sudo -u git -H bundle exec rake gitlab:shell:install[v2.6.8] REDIS_URL=unix:/var/run/redis/redis.sock RAILS_ENV=production

REDIS_URL =Stellen Sie sicher, dass Sie den Unix-Socket für die Redis-Konfiguration in der Produktionsumgebung verwenden.

- Installiere gitlab-workhorse

Gitlab-workhorse ist ein kleiner Deamon zur Verarbeitung von Git-HTTP-Datenverkehr von Unicorn, der in Go codiert ist. Klonen und installieren Sie es:

cd /home/git
sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-workhorse.git
cd gitlab-workhorse
sudo -u git -H git checkout 0.4.2
sudo -u git -H make

- Initialisieren Sie die Datenbank und aktivieren Sie die Gitlab-Funktionen

Wechseln Sie in das Installationsverzeichnis von gitlab und führen Sie den folgenden Befehl aus:

cd /home/git/gitlab
sudo -u git -H bundle exec rake gitlab:setup RAILS_ENV=production

geben Sie "ja" ein um die Tabellen zu erstellen.

Das Ergebnis ist ein Gitlab-Konto mit dem Benutzernamen „root " und das Passwort "5iveL!fe ".

Schritt 7 - Konfigurieren Sie das Init-Skript

Kopieren Sie das gitlab-Init-Skript aus dem gitlab-Installationsverzeichnis und fügen Sie gitlab hinzu, um es beim Booten mit dem Befehl update-rc.d zu starten:

sudo cp lib/support/init.d/gitlab /etc/init.d/gitlab
sudo update-rc.d gitlab defaults 21

Kopieren Sie dann die gitlab logrotate-Konfiguration für die Protokollverwaltung:

sudo cp lib/support/logrotate/gitlab /etc/logrotate.d/gitlab

Und überprüfen Sie den Anwendungsstatus und stellen Sie Assets zusammen:

sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production
sudo -u git -H bundle exec rake assets:precompile RAILS_ENV=production

Wenn es keinen Fehler gibt, starten Sie gitlab mit:

/etc/init.d/gitlab start

Schritt 8 – Nginx installieren und konfigurieren

Wir werden Nginx als Front-End-Webserver verwenden, um Browseranfragen zu verarbeiten. Installieren Sie es einfach mit diesem apt-Befehl:

apt-get install nginx -y

Kopieren Sie die Konfiguration des virtuellen Nginx-Hosts aus dem gitlab-Verzeichnis und entfernen Sie den standardmäßigen virtuellen Nginx-Standardhost:

sudo cp lib/support/nginx/gitlab /etc/nginx/sites-available/gitlab
sudo rm /etc/nginx/sites-enabled/default

Bearbeiten Sie die Konfigurationsdatei mit vim:

sudo vim /etc/nginx/sites-available/gitlab

Ändern Sie den Wert der Listen- und ServerName-Zeilen im HTTP-Abschnitt:

Listen *:80; #Port Default

#Listen 0.0.0.0:80; #comment one of this

ServerName my.gitlab.me; #Gitlab FQDN/Domain

Speichern und beenden.

Aktivieren Sie den Gitlab-Virtualhost, starten Sie Nginx und starten Sie Gitlab neu:

sudo ln -s /etc/nginx/sites-available/gitlab /etc/nginx/sites-enabled/gitlab
service nginx start
/etc/init.d/gitlab restart

Jetzt kannst du mit deinem Browser unter my.gitlab.me auf Gitlab zugreifen (den Hostnamen, den Sie für Ihren Server gewählt haben) und melden Sie sich mit dem Standardbenutzernamen "root an " und das Passwort "5iveL!fe ".

Zuerst sollten Sie das gitlab-Standardpasswort durch Ihr Passwort ersetzen.

Gitlab 8 mit PostgreSQL und Nginx auf Ubuntu 15.04 ist jetzt erfolgreich installiert.

Hinweis:

Wenn Sie einen Fehler haben, zum Beispiel „502 Bad Gateway“, beheben Sie ihn mit, indem Sie das Einhorn-Timeout erhöhen oder Ihre Hardware aktualisieren. Wechseln Sie in das Installationsverzeichnis von gitlab und bearbeiten Sie die Datei unicorn.rb mit vim:

sudo -u git -H vim config/unicorn.rb

Weitere Informationen zur Gitlab-Fehlerbehebung finden Sie hier https://github.com/gitlabhq/gitlab-public-wiki/wiki/Trouble-Shooting-Guide.

Schlussfolgerung

Gitlab ist eine in Ruby geschriebene Open-Source-Git-Repository-Verwaltungssoftware. Es ist eine der besten Lösungen, um einen eigenen Git-Server zu erstellen. Gitlab wurde von Dmitriy Zaporozhets erstellt und ist in 2 Versionen erhältlich, Gitlab CE (Community Edition) und Gitlab EE (Enterprise Edition). Gitlab ist einfach zu installieren und zu konfigurieren und verfügt über eine schöne Benutzeroberfläche, die von mehr als 100.000 Technologieunternehmen verwendet wird. Es ist eine sehr leistungsfähige Software, die Entwicklern hilft, gemeinsam mit anderen Entwicklern Anwendungen zu erstellen.


Ubuntu
  1. So installieren Sie Mattermost mit PostgreSQL und Nginx unter Ubuntu 16.04

  2. So installieren Sie Ruby on Rails (RoR) mit PostgreSQL unter Ubuntu 16.04

  3. So installieren Sie MediaWiki mit Nginx unter Ubuntu 16.04

  4. So installieren Sie Postgresql und phpPgAdmin unter Ubuntu 15.04

  5. So installieren Sie Nginx mit PHP5 und MySQL unter Ubuntu 11.10

So installieren Sie Redmine 3.2 mit Nginx unter Ubuntu 16.04

So installieren Sie Django mit PostgreSQL und Nginx unter Ubuntu 16.04

So installieren und konfigurieren Sie GitLab unter Ubuntu 16.04

So installieren Sie OSClass mit Nginx unter Ubuntu 20.04

So installieren Sie Wordpress mit Nginx, MariaDB und HHVM in Ubuntu 15.04

So installieren Sie Nginx mit ModSecurity unter Ubuntu 15.04