Jak działa staging - iiuni/projektzapisy GitHub Wiki

Serwer stagingowy służy do testowania większych zmian przed wrzuceniem je na produkcję. Jego konfiguracja jest możliwie najbardziej zbliżona do konfiguracji produkcyjnej. W szczególności obydwa serwery są konfigurowane tymi samymi skryptami Chef-a.

Stan serwera

Strony są serwowane przez proxy nginx i gunicorn na maszynie wirtualnej w II (Centrum Obliczeniowe). Adres strony głównej to 156.17.4.42 lub https://zapisy-staging.ii.uni.wroc.pl/.

Logowanie

Jest dwóch użytkowników:

  • user zapisy na którym działa aplikacja; nie ma on dostępu do sudo
  • user ubuntu - ma on dostęp do sudo, w dodatku jest NOPASSWD.

Aby zyskać dostęp należy przesłać mi swój klucz publiczny. Wtedy można logować się poprzez ssh [email protected] lub ssh [email protected].

W terminalu: ssh [email protected]. Jeśli potrzebny jest dostęp sudo, to logujemy się na usera ubuntu ssh [email protected].

Aktualizowanie kodu aplikacji

Aby wgrać na serwer stagingowy kod z dowolnego branch-a, np. master-dev należy:

  1. Pobrać aktualną wersję skryptu fabric-a. tj. fabfile.py: https://github.com/iiuni/projektzapisy-kitchen/blob/master/fabfile.py (najlepiej mieć sklonowane u siebie repozytorium projektzapisy-kitchen
  2. Zmodyfikować w fabfile.py zmienną env.git_branch na docelowy branch
  3. Uruchomić fab staging deploy

Jeśli wszystko pójdzie dobrze, w kanale bugs na slacku powinno pojawić się powiadomienie o deploy-u. Kod aplikacji można znaleźć w folderze $~/projektzapisy/current/$

Virtualenv

W głównym folderze użytkownika zapisy można znaleźć katalogi envXX, gdzie XX odpowiada wersja pythona. Chcąc wykonać jakąś operację z użyciem manage.py należy najpierw aktywować odpowiedni virtualenv poprez source envXX/bin/activate.

Logi

Logi Django i gunicorn można znaleźć w folderze ~/projektzapisy/shared/logs

Settings-y

Ustawienia Django (takie jak DEBUG=FALSE można znaleźć w ~/projektzapisy/shared/.env)

Restartowanie zapisów

Aby zrestartować aplikację zapisy wystarczy po połączeniu się przez ssh wpisać: service zapisy restart