fbpx
devstyle.pl - Blog dla każdego programisty
devstyle.pl - Blog dla każdego programisty
6 minut

Konfiguracja środowiska do prowadzenia projektów na Vipserv.org


08.11.2010

Jak pisałem poprzednio, wykupiłem konto na Vipserv.org i przenoszę tam wszystkie swoje projekty (git, hg i svn) trzymane dotychczas na dysku. Poniżej kroki, które musiałem wykonać (na świeżej wirtualce z Windows) aby, mieć działający projekt zarządzany przez Redmine, a trzymany w Gicie.

I. Rejestracja

1) Założyłem konto na http://vipserv.org/zamow.php. Do testów polecam konto demo, na którym można dowolnie poszaleć (http://vipserv.org/demo.php) za darmo.

2) Podczas rejestracji wybrałem sobie jedną subdomenę (na potrzeby tego posta niechaj będzie to procentpost.vipserv.org).

3) Wiem że chcę korzystać z Redmine. Wiem też że bardzo bym chciał, aby komunikacja ta odbywała się po SSL. Dlatego też wyprzedzając fakty kliknąłem w panelu administracyjnym opcję “https“, gdzie dla swojej domeny utworzyłem na domyślnym porcie 443 hosta https. Wszystko zajęło dwa czy trzy kliknięcia.

II. Redmine

1) Z panelu administracyjnego wybrałem “Autoinstalacje oprogramowania“, a następnie RedMine (doh!).

2) Nadałem projektowi nazwę.

3) Z listy “struktur projektów”  wybrałem “Redmine checkout 1.0.x“.

4) Zaznaczyłem opcję “Stwórz i prekonfiguruj bazę mysql dla projektu redmine” (bez tego musiałbym instalować bazę sam, a… po co?). Dodatkowo zapamiętałem że początkowe dane do logowania to admin/admin:).

5) Odznaczyłem opcję “Stwórz repozytorium…” – nie planuję samemu modyfikować kodu Redmine, więc nie ma takiej potrzeby.

6) Po stworzeniu projektu zostałem przeniesiony na stronę “Projekty Rack“, gdzie w tabelce pojawiło się moje Redmine; aby się do niego dostać musiałem nadać mu adres poprzez link “dodaj nowy adres“. Z dostępnych opcji wybrałem oczywiście przygotowany wcześniej https://procentpost.vipserv.org:443.

7) Dwie minuty później mogłem wejść pod ten adres i cieszyć swe ślepia widokiem pustego panelu logowania Redmine. Jeach!

8) Od razu zalogowałem się (admin/admin), i dodałem pierwszy projekt.

III. Git – zdalnie

1) Nadszedł czas na przygotowanie ciepłego miejsca na nasz kod. W tym celu w panelu admina wybrałem opcję “Git Bazaar Mercurial“, gdzie kliknąłem “Dodaj nowe repozytorium

2) Dodawanie repo jest banalne – wystarczy wpisać nazwę oraz wybrać jego typ.

3) Po utworzeniu repozytorium należy pamiętać o dodaniu do niego jakiegoś użytkownika. Podszedłem do sprawy dość logicznie i dodałem samego siebie. W kolumnie “dostęp SSH” wybrałem “dodaj nowego użytkownika (adres)” i dodałem nowego usera z pełnymi uprawnieniami (o nazwie procent_postusr).

IV. Git – lokalnie

1) Mając przygotowane repozytorium na serwerze czas zająć się lokalną maszyną deweloperską. Po pierwsze – należy ściągnąć i zainstalować samego Gita (http://code.google.com/p/msysgit/downloads/list?can=3).

2) Od razu warto przedstawić się Gitowi, czyli ustawić swoje dane w configuracji:

git config –global user.name Procent
git config –global user.email
emailProcenta@domena.com

Dodatkowo zawsze ustawiam Notepad jako edytor zamiast domyślnego:

git config –global core.editor Notepad

3) Na swoim zdalnym repozytorium dodałem użytkownika mogącego korzystać z Git poprzez protokół SSH. Muszę więc wygenerować odpowiednią parę kluczy. Zrobiłem to w konsoli Gita (git bash) za pomocą polecenia

ssh-keygen

W moim katalogu użytkownika (/Users/Procent/) pojawił się folder .ssh.

4) Ze wspomnianego katalogu .ssh otworzyłem w notatniku plik id_rsa.pub (mój klucz publiczny) i skopiowałem jego zawartość.

5) Wróciłem na stronę zarządzania repozytorium i w odpowiednim wierszu kliknąłem link “klucz użytkownika“. Na wyświetlonym panelu wkleiłem skopiowany klucz… i wszystko jest gotowe do działania!

6) Sklonowałem do jakiegoś katalogu repozytorium z vipserv:

git clone ssh://[mojlogin]_postusr@procentpost.vipserv.org/ my_repo

7) Dodałem jakiś plik, zrobiłem pierwszy commit aby zainicjować repo i pchnąłem zmiany:

cd my_repo

touch first-file.txt

git add .

git commit -m “initial commit”

git push origin master

8) Na tym etapie lubię zmienić domyślną nazwę zdalnego repoytorium z origin na coś innego, na przykład:

git remote rename origin vipserv

V. Integracja Redmine z Git

1) Z działającym repozytorium możemy pokusić się o jego integrację z Redmine. Po wejściu w ustawienia utworzonego wcześniej projektu wybrałem zakładkę Repository. Z listy obsługiwanych systemów kontroli wersji wybrałem Git.

2) Kolejne pole(“Path to .git directory”) zatrzymało mnie na kilka chwil. Okazało się, że należy tam podać lokalną ścieżkę repozytorium na serwerze vipserv. Ze strony zarządzania Gitem skopiowałem zawartość komórki “lokalizacja” i…

3) Po kliknięciu w menu Repository (w sekcji użytkownika, nie admina) oczom moim ukazał się puszczony właśnie commit.

4) Na samym dole strony http://www.redmine.org/wiki/1/RedmineSettings można przeczytać o bardzo fajnej funkcjonalności Redmine – skanowaniu commit messages w poszukiwaniu referencji do zadań. Zagłębiać się w to nie będę, zachęcam do eksperymentowania, świetna sprawa:).

VI. Dostęp readonly do Git po https

1) Na koniec mam jeszcze jedno wymaganie: chcę umożliwić wybranym osobom dostęp readonly do mojego repozytorium przez https. Wróciłem więc do zarządzania domenami, dodałem subdomenę git.procentpost.vipserv.org i w sposób identyczny jak wcześniej skonfigurowałem dla niej hosta https.

2) W panelu zarządzania repozytorium w kolumnie “dostęp http/https” kliknąłem “dodaj nowy adres” i wybrałem https://git.procentpost.vipserv.org, zgodnie z sugestią dodając dowolny końcowy element /repo. Stworzyłem też nowego użytkownika, nadając mu wyłącznie prawa do odczytu.

3) Wystarczy teraz wywołać polecenie

git clone http://[username]@git.procentpost.vipserv.org/repo readonly-repo

i po podaniu zdefiniowanych przeze mnie danych uwierzytelniających ktoś otrzymuje źródła po https, bez możliwości ich zmodyfikowania na serwerze.

Uwaga: w przypadku certyfikatów self-signed można natknąć się na błąd “error: SSL certificate problem, verify that the CA cert is OK.”. Pomoże wyłączenie weryfikacji certyfikatów przez Gita poprzez komendę w bashu:

export GIT_SSL_NO_VERIFY=true

0 0 votes
Article Rating
17 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
andrzejp
14 years ago

Bardzo dobry poradnik. Też miotam się z różnymi opcjami dotyczącymi trzymania /backupowania projektów. Z tego co napisałeś wynika, że hosting nieźle przygotowany do obsługi wszystkiego-co-potrzeba-dla-developera ;) Pewnie przybędzie klientów po Twoim poście, muszę i ja poczynić podobny ruch.

procent
14 years ago

@andrzejp:
Dzięki:) Jedyny minus z punktu widzenia dotnetowca to linux a nie windows, więc nie ma możliwości skonfigurowania jakiegokolwiek zautomatyzowanego buildu. Ale zawsze można odpalić sobie lokalnie wirtualkę z jakimś CI-serverem i w ten sposób sobie poradzić (ja planuję wgryźć się wreszcie w Team City, pewnie o tym też napiszę;) )

klm_
14 years ago

well, mozliwosc taka jest, tylko trzeba troche pokombinowac. Moim zdaniem za 10 pln za miesiac to i tak za duzo daja ;>

procent
14 years ago

@klm_:
Jakbyś rozwinął zdanie "możliwość taka jest" to byłbym wdzięczny:)

Kamil Hawdziejuk
14 years ago

Maciek, dzięki za tutorial:) postawiłem sobie właśnie taki projekcik… Git integruje mi się z Redmine, gdy wpisuję polecenia a linii komend. Zainstalowałem sobie jednak też TortoiseGit i takich commitów już mi nie loguje. Jakiś pomysł;)?

Jeszcze co do samej integracji, to w pracy mamy zintegrowanego SVNa z Redmine. Wpisuje się w commicie tylko "fix #ID_buga" i zadanie się automatycznie zamyka. świetna sprawa. Może dopytam naszego admina:)

procent
14 years ago

@Kamil Hawdziejuk:
My pleasure:).
Co do Redmine/Git to nie ma znaczenia z jakiego klienta korzystasz. Redmine po prostu zasysa sobie kod z repozytorium, skanuje commity i szuka zdefiniowanego wzorca (domyślnie ref #ID, fix #ID itd).
Może robisz lokalnie commit, a zapominasz o push?
Pamiętaj też że domyślnie Redmine nie śledzi automatycznie repo. Ściąga commity dopiero po kliknięciu zakładki "repository" w projekcie. Może tu jest problem.

Kurs Gita

Zaawansowany frontend

Szkolenie z Testów

Szkolenie z baz danych

Książka

Zobacz również