Instalacja gitlab-ci na istniejącej instancji nginx’a - www.srebniak.pl
Instalacja gitlab-ci na istniejącej instancji nginx’a
24 września 2015
Categories: Git, Linux
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. Wklejamy 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
  2. 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
  3. 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.
© 2021 Więcej informacji
o mnie