
Migracja
Greenlight v3 to całkowicie nowa aplikacja o zaktualizowanym wyglądzie i architekturze. Utworzono system migracji umożliwiający przenoszenie zasobów z instancji Greenlight v2 do v3.
System migracji wymaga zarówno Greenlight v2, jak i Greenlight v3 oraz musi być wdrożony, uruchomiony i dostępny poprzez sieć.
Proces ma na celu migrację następujących zasobów:
- Użytkownicy
- Role i uprawnienia ról — Pokoje i ustawienia pomieszczeń — Dostęp współdzielony — Konfiguracja pokoi — Ustawienia witryny
Jak to działa
System migracji składa się z wielu zadań rake i spokojnego API:
-
Zadania rake mają być wykonywane z poziomu wdrożenia Greenlight v2.
-
Zadania rake będą wysyłać dane do wdrożonego serwera Greenlight v3.
-
Istnieją cztery zadania rake: role, użytkownicy, pokoje i ustawienia. Zachowanie tej kolejności podczas migracji jest konieczne.
-
Punkty końcowe migracji są dostępne tak długo, jak działa serwer Greenlight v3.
-
Spoczynkowe API odbierze i zweryfikuje migrowane zasoby.
Wymagania wstępne
Przed procesem migracji upewnij się, że serwer Greenlight v3 działa i jest dostępny w Twojej sieci.
Aktualizacja v2 do najnowszej wersji
Przed rozpoczęciem aktualizacji bardzo ważne jest, aby zaktualizować Greenlight v2 do najnowszej wersji. Dzięki temu będziesz mieć pewność, że używasz najnowszej wersji skryptów migracji.
Aby to zrobić, uruchom następujące polecenia na komputerze w wersji 2:
cd ~/greenlight
docker-compose pull
docker-compose down
docker-compose up -d
Konfiguracja środowiska
W pliku Greenlight v2 .env dodaj następujące zmienne:
- V3_ENDPOINT, które wskazują Twój adres URL Greenlight v3.
- V3_SECRET_KEY_BASE, kopia z Greenlight v3 SECRET_KEY_BASE. Jest potrzebny do procesu szyfrowania.

Omówienie migracji
Migracje należy przeprowadzić w następującej kolejności: role, użytkownicy, pokoje, ustawienia.
Dzienniki będą wskazywały stan migrowanych zasobów w czasie rzeczywistym, w konsoli.
Po pomyślnej migracji zasobu w konsoli zostanie wyświetlony zielony komunikat o powodzeniu.

W przypadku wystąpienia błędu w konsoli wyświetli się czerwony komunikat o błędzie, który powinien zawierać szczegółowe informacje dotyczące błędu.

Jednak awaria zasobu migracyjnego nie powinna utrudniać całego procesu migracji - proces nie powinien zakończyć się niepowodzeniem dla wszystkich zasobów.
Jeśli wystąpił błąd, spróbuj ponownie uruchomić zadanie migracji, aby rozwiązać problem nieudanej migracji zasobów.
Jeśli ponowne uruchomienie migracji nie rozwiąże problemu, komunikat o błędzie powinien dać Ci wskazówkę, co poszło nie tak.
Migracja ról
Role niestandardowe i odpowiadające im uprawnienia ról zostaną poddane migracji.
Należy pamiętać, że:
- Role domyślne (użytkownik, moderator, gość) nie zostaną przeniesione, ponieważ są już obecne w Greenlight v3. — Kolor roli nie zostanie przeniesiony, ponieważ ta funkcja nie została zaimplementowana w wersji 3.
Aby przeprowadzić migrację ról i uprawnień ról, uruchom następującą komendę:
sudo docker exec -it greenlight-v2 bundle exec rake migrations:roles
Jeśli wystąpił błąd, spróbuj ponownie uruchomić zadanie migracji, aby rozwiązać problem nieudanej migracji zasobów. Upewnij się także, że serwer Greenlight v3 działa i jest dostępny w Twojej sieci.
Migracja użytkowników
Użytkownicy zostaną przeniesione wraz z odpowiadającą im rolą.
Ważne uwagi:
- Migrowani zostaną zarówno użytkownicy lokalni, jak i zewnętrzni.
Konta lokalne
** Jeśli masz tylko użytkowników zewnętrznych (google, office365, LDAP, SAML itp.), przejdź do następnej sekcji.**
Podczas migracji kont lokalnych z GLv2 do GLv2 GLv3, pole hasło_digest zostanie bezpiecznie przeniesione z wersji 2 do wersji 3. Dzięki temu lokalni klienci mogą bezproblemowo logować się przy użyciu dokładnie tego samego hasła, co w wersji 2.
Aby to umożliwić, ważne jest, aby zarówno GLv2, jak i GLv3 miały tę samą wartość zmiennej środowiskowej SECRET_KEY_BASE, która jest ustawiona w pliku .env.
Wykonaj następujące kroki:
- Pobierz
SECRET_KEY_BASEGLv2:
Na maszynie GLv2 wykonaj następujące polecenie w terminalu:
cd ~/greenlight
cat .env | grep SECRET_KEY_BASE
Skopiuj zwróconą wartość.
- Aktualizacja pliku GLv2
.env:
Edytuj plik .env na maszynie GLv2 i zastąp wartość V3_SECRET_KEY_BASE skopiowaną wartością.
- Aktualizacja pliku GLv3
.env:
Na komputerze GLv3 zastąp SECRET_KEY_BASE w pliku .env tą samą wartością, którą skopiowałeś z GLv2.
Upewnij się, że wartości SECRET_KEY_BASE dla GLv2, GLv3 i zmiennej V3_SECRET_KEY_BASE w pliku .env GLv2 są teraz zsynchronizowane.
Migracja użytkowników
Aby przeprowadzić migrację wszystkich użytkowników z wersji 2 do wersji 3, uruchom następującą komendę:
sudo docker exec -it greenlight-v2 bundle exec rake migrations:users
Jeśli wystąpił błąd, spróbuj ponownie uruchomić zadanie migracji, aby rozwiązać wszelkie nieudane migracje zasobów. Upewnij się także, że migracja ról przebiegła pomyślnie.
Migracja pokoi
Pokoje zostaną przeniesione wraz z odpowiadającymi im pokojami Ustawienia. Przeniesione zostaną także dostępy współdzielone.
Ważne uwagi:
- Migrowane zostaną tylko pokoje aktywnych użytkowników
- Migrowane pokoje zostaną przypisane do odpowiednich migrowanych użytkowników w wersji 3
- Wraz z najnowszymi aktualizacjami Greenlight 2, prezentacje zostaną przeniesione, jeśli są obecne w systemie źródłowym. Jednakże:
- Jeśli w bazie danych znajdują się odniesienia do prezentacji, ale nie istnieją one na dysku, zostaną zignorowane.
- Jeśli ten krok zakończy się niepowodzeniem z powodu błędu
413 Entity too large, musisz zwiększyć ustawienieclient_max_body_sizew odwrotnym proxy nginx swojej instancji Greenlight 3 i spróbować ponownie. Jeśli używasz innego odwrotnego proxy, zapoznaj się z instrukcją dotyczącą zwiększania maksymalnego rozmiaru treści dla żądań HTTP.
Aby przeprowadzić migrację pomieszczeń, uruchom następującą komendę:
sudo docker exec -it greenlight-v2 bundle exec rake migrations:rooms
Jeśli wystąpił błąd, spróbuj ponownie uruchomić zadanie migracji, aby rozwiązać problem nieudanej migracji zasobów. Upewnij się także, że migracja użytkowników przebiegła pomyślnie.
Migracja ustawień
Ustawienia witryny i konfiguracja pokoi zostaną wyemigrował.
-
Ustawienia witryny to konfigurowalne ustawienia związane z aplikacją Greenlight, takie jak kolory marki, wizerunek marki, metoda rejestracji, Warunki.
-
Konfiguracja pokoi to ustawienia powiązane z domyślną konfiguracją wszystkich pomieszczeń, takie jak Zezwalaj na nagrywanie pokoju, Zezwalaj każdemu użytkownikowi na rozpoczęcie spotkania, Kody dostępu.
Uwaga:
- Obraz marki nie zostanie przeniesiony - będzie musiał zostać ponownie przesłany do Greenlight v3 przez administratora. — Administrator będzie musiał ponownie przypisać limit pomieszczeń jako uprawnienie roli (dla poszczególnych ról), a nie jako globalne ustawienie witryny.
Aby przeprowadzić migrację ustawień, uruchom następującą komendę:
sudo docker exec -it greenlight-v2 bundle exec rake migrations:settings
Jeśli wystąpił błąd, spróbuj ponownie uruchomić zadanie migracji, aby rozwiązać wszelkie nieudane migracje zasobów.
Po migracji
Po pomyślnym zakończeniu migracji ostatnim krokiem jest zaimportowanie nagrań do wersji 3.
Aby ponownie zsynchronizować listę nagrań, uruchom następującą komendę na maszynie v3:
sudo docker exec -it greenlight-v3 bundle exec rake server_recordings_sync