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 dosudo
- user
ubuntu
- ma on dostęp dosudo
, 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:
- Pobrać aktualną wersję skryptu
fabric
-a. tj.fabfile.py
: https://github.com/iiuni/projektzapisy-kitchen/blob/master/fabfile.py (najlepiej mieć sklonowane u siebie repozytoriumprojektzapisy-kitchen
- Zmodyfikować w
fabfile.py
zmiennąenv.git_branch
na docelowy branch - 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