Instalacja gitlab-ci na istniejącej instancji nginx’a

Dzisiaj mam dla was garść informacji jak zainstalować gitlab wraz z dodatkiem gitlab-ci. Od domyślnej instalacji różni się tym, ze będziemy używać istniejącej instancji nginx – a nie tej dostarczanej przez gitlab.

Na moich serwerach mam zainstalowany panel administracyjny ajenti.org. Bindowanie dwóch instancji nginx’a na jeden port jest niemożliwe, więc postanowiłem zmusić gitlab’a do używania już istniejącej. Rozwiązanie znajduje się praktycznie w dokumentacji, ale postanowiłem zebrać te informacje w jednym miejscu.

Instalacja Gitlab-CI

Nasza instancja gitlaba będzie instalowana za pomocą omnipackage.

1. Wchodzimy na stronę projektu. I wybieramy naszą dystrybucję.
2. Wklejamu link.
3. sudo apt-get update
4. sudo apt-get install gitlab-ce

Instalacja nginx

1. Edytujemy plik /etc/apt/sources.list


$ sudo nano /etc/apt/sources.list

Dodajemy odpowiednie wpisy dla naszego systemu


deb http://nginx.org/packages/debian/ wheezy nginx
deb-src http://nginx.org/packages/debian/ wheezy nginx

2. Instalujemy paczkę.


$ sudo apt-get update
$ sudo apt-get install nginx apt-transport-https ca-certificates

3. Zatrzymujemy instancje gitlab’a

$ sudo gitlab-ctl stop

W zwrotce z polecenia będzie się pokazywała informacja odnośnie zatrzymania Nginx.


# Pod jakim linkiem bedzie widoczny nasz gitlab
external_url "http://git.example.com/"

# Nie chcemy wymuszac przekierowania na polaczenie szyfrowane
nginx['redirect_http_to_https'] = false

# Nasze ssh nie dziala na domyslnym porcie. 
gitlab_rails['gitlab_shell_ssh_port'] = 49653

# informujemy gitlab'a, ze chcemy uzywac wlasnej instancji nginx'a.
nginx['enable'] = false

# informujemy gitlab-ci, ze chcemy uzywac wlasnej instancji nginx'a.
ci_nginx['enable'] = false

4. Zmiana domyślnego portu dla ssh
Poza zmianą w konfiguracji trzeba dodać jeszcze wpis do pliku /etc/hosts


$ sudo nano /etc/hosts

I dodajemy tam linijkę

    111.222.333.444    git.example.com

Po wprowadzaniu powyższych zmian rekonfigurujemy instancje Gitlab'a i uruchamiamy ją ponownie.

$ sudo gitlab-ctl reconfigure
$ sudo gitlab-ctl start

A tutaj efekt uruchomienia polecenia startu Gitlaba.

$ sudo gitlab-ctl start
ok: run: logrotate: (pid 31474) 2617s
ok: run: postgresql: (pid 4547) 326623s
ok: run: redis: (pid 4555) 326622s
ok: run: sidekiq: (pid 4563) 326620s
ok: run: unicorn: (pid 4585) 326619s

Instalacja modułu passenger

Do poprawnego działania potrzebujemy zainstalować moduł obsługi passenger dla nginx.

1. Dodanie kluczy repozytorium.


$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 561F9B9CAC40B2F7

1. Edytujemy plik /etc/apt/sources.list


$ sudo nano /etc/apt/sources.list

Dodajemy odpowiednie wpisy dla naszego systemu


deb https://oss-binaries.phusionpassenger.com/apt/passenger wheezy main

2. Instalujemy paczkę.


$ sudo apt-get update
$ sudo apt-get -y nginx-extras passenger

Po poprawnym skonfigurowaniu pliku vhostu dla nginx - gitlab będzie działał na istniejącej wcześniej instancji Nginx'a.

Efekty naszych zmian

Poza działającą instancją gitlaba powinniśmy widzieć inny układ linków przy klonowaniu naszego projektu:

ssh://git@git.example:49653/superuser/test-repository.git

Podsumowanie

Poniżej dodaje linki do instrukcji instalacji Passengera oraz najnowsze stabilne wydanie nginx:

  1. https://www.phusionpassenger.com/library/install/nginx/install/oss/wheezy/
  2. https://www.phusionpassenger.com/library/install/nginx/install_as_nginx_module.html
  3. http://nginx.org/en/linux_packages.html#stable

Jeżeli podobał się wpis - zostaw komentarz i polub stronę na Facebooku, aby być informowanym o nowych wpisach na blogu.

Comments

comments

Comments

Leave a Reply

You must be logged in to post a comment.