Jak działa staging - iiuni/projektzapisy GitHub Wiki
Serwer stagingowy służy do testowania większych zmian przed wrzuceniem ich 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
zapisyna 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.pyzmiennąenv.git_branchna 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