Saya memutuskan untuk meneruskan jawaban ini karena ini diperlukan untuk Komunitas Gerrit. Saat ini, tidak ada banyak tutorial yang mencakup pengaturan lanjutan untuk Gerrit. Saya berharap ini akan membantu orang lain mengeksplorasi praktik XP / Agile dan membangun Gerrit. Ini adalah alat yang hebat setelah Anda melewati semua tantangan dan detail pengaturan yang halus.
Tutorial pemasangan ini agak unik karena melayani lingkungan tertentu:
- Windows 2008 Server
- PostgreSql
- Kucing jantan
- LDAP melalui Direktori Aktif
- Gerrit
- msysgit
Sebelum Anda mulai, pastikan Anda telah menginstal git di sistem Anda. Unduh alat baris perintah msysgit terbaru untuk windows dari http://code.google.com/p/msysgit/downloads/list
Pastikan Anda mendapatkan "Penginstal lengkap untuk Git resmi untuk Windows".
- Instal MSysGit
- Gunakan default saat diminta
- Konfigurasikan Git
Jika Anda bermaksud menggunakan versi GitWeb di msysgit, Anda akan melihat beberapa masalah di sekitar CGI.pm. Saya ingin menyebutkan perbaikan untuk menyelesaikan masalah ini.
Perl yang disertakan dengan distro msysgit, pada 1.7.8, rusak, http://groups.google.com/group/msysgit/browse_thread/thread/ba3501f1f0ed95af . Folder unicore hilang bersama dengan utf8_heavy.pl dan CGI.pm. Anda dapat memverifikasi dengan memeriksa modul perl:
perl -mCGI -mEncode -mFcntl -mFile :: Find -mFile :: Basename -e "" Anda mungkin akan menemukan pengecualian berikut:
$ perl -mCGI -mEncode -mFcntl -mFile :: Find -mFile :: Basename -e "" Tidak dapat menemukan CGI.pm di @INC (@INC berisi: /usr/lib/perl5/5.8.8/msys / usr / lib / p erl5 / 5.8.8 /usr/lib/perl5/site_perl/5.8.8/msys /usr/lib/perl5/site_perl/5.8.8 / u sr / lib / perl5 / site_perl.). BEGIN gagal - kompilasi dibatalkan.
Jika Anda kehilangan CGI.pm, Anda harus menggunakan modul ke lingkungan msys: Anda harus mengambilnya dari distro 5.8.8 yang aktif:
http://strawberryperl.com/releases.html
File: strawberry-perl-5.8.8.3.zip
isi: bin / lib / situs /
salin isi lib ke msysgit / lib / perl5 / 5.8.8 dan timpa file yang ada.
Jika menggunakan commandline git, tambahkan pengaturan konfigurasi global Anda ke git:
git config --global user.name "Your Name"
git config --global user.email you@corporation.com
git config --global core.autocrlf false
Pastikan kredensial yang digunakan di sini cocok dengan kredensial di gerrit. Jika tidak, gerrit akan menolak permintaan Anda.
Petunjuk untuk menginstal dan mengkonfigurasi Gerrit adalah sebagai berikut:
- Pertama, login ke server hosting postgres dan buat pengguna dan database untuk Gerrit
- createuser --username = postgres -A -D -P -E gerrit2
- Createdb --username = postgres -E UTF-8 -O gerrit2 reviewdb
- Sekarang, kembali ke host, jika berbeda, untuk Gerrit dan buat 3 direktori untuk menggunakan Gerrit
- Buat direktori install pangkalan untuk gerrit, lebih disukai direktori berversi untuk konten penyebaran perang
- Buat subdirektori untuk kucing jantan
- Buat direktori config untuk menyebarkan skema dan konfigurasi
- Isi akan terlihat seperti ini:
- gerrit
- kucing jantan
- konfigurasi
- gerrit-XX
- Unduh tomcat dari http://tomcat.apache.org/download-60.cgi
- Catatan: Sebagian besar Distribusi Linux akan memiliki ini tersedia dari manajer pembaruan mereka. Contoh: Gunakan Synaptic di Ubuntu
- Sebarkan tomcat Anda instal ke direktori tomcat
- Unduh gerrit.war terbaru dari
http://code.google.com/p/gerrit/downloads/list .
- salin file ke direktori pangkalan gerrit
- ekstrak file perang ke subdirektori gerrit-XX
- CD ke direktori basis gerrit dan jalankan
java -jar gerrit-2.4-rc0.war
init -d config
- Konfigurasi ini mencakup ekstra untuk LDAP dan berjalan di belakang proxy, jangan mengonfigurasi opsi ini jika tidak diperlukan.
Menjalankan:
C:\your_path\gerrit>java -jar gerrit-2.4-rc0.war init -d config
*** Gerrit Code Review 2.4-rc0
***
Create 'C:\your_path\gitserver\gerrit\config' [Y/n]? Y
*** Git Repositories
***
Location of Git repositories [git]: C:\your_path\gitserver\repository\ha
*** SQL Database
***
Database server type [H2/?]: postgresql
Server hostname [localhost]: database.corp.local
Server port [(POSTGRESQL default)]:
Database name [reviewdb]:
Database username [Administrator]: gerrit2
gerrit2's password :
confirm password :
*** User Authentication
***
Authentication method [OPENID/?]: LDAP
LDAP server [ldap://localhost]: ldaps://ldap.corp.local:
636
LDAP username : CN=Administrator,CN=Users,DC=corp,DC=local
CN=Administrator,CN=Users,DC=corp,DC=local's password :
confirm password :
Account BaseDN [DC=corp,DC=local:636]: CN=Users,DC=corp,DC=l
ocal
Group BaseDN [CN=Users,DC=corp,DC=local]:
*** Email Delivery
***
SMTP server hostname [localhost]: smtp.corporation.com
SMTP server port [(default)]: 465
SMTP encryption [NONE/?]: SSL
SMTP username [Administrator]: build@corporation.com
build@corporation.com's password :
confirm password :
*** Container Process
***
Run as [Administrator]:
Java runtime [C:\Program Files\Java\jre6]:
Copy gerrit.war to C:\your_path\gitserver\gerrit\config\bin\gerrit.war [Y/n]?
Copying gerrit.war to C:\your_path\gitserver\gerrit\config\bin\gerrit.war
*** SSH Daemon
***
Listen on address [*]:
Listen on port [29418]:
Gerrit Code Review is not shipped with Bouncy Castle Crypto v144
If available, Gerrit can take advantage of features
in the library, but will also function without it.
Download and install it now [Y/n]? n
Generating SSH host key ... rsa(simple)... done
*** HTTP Daemon
***
Behind reverse proxy [y/N]?
Use SSL (https://) [y/N]?
Listen on address [*]:
Listen on port [8080]:
Initialized C:\your_path\gitserver\gerrit\config
Automatic startup not supported on Win32.
- Jangan khawatir tentang pengaturan Gerrit sebagai server, kami akan mengonfigurasinya nanti
- Edit config \ etc \ gerrit.config
- di bawah bagian gerrit, tambahkan pengaturan untuk conicalWebUrl =
http://review.corporation.com/
- Jika proyek Anda tidak mengikuti format tradisional project.git, tambahkan bagian berikut:
- tambahkan file locaiton dan url ke server gitweb Anda bersama dengan properti terkait
Pembaruan gerrit.config:
[gitweb]
cgi = C:\\path to msysgit\\Git\\share\\gitweb\\gitweb.cgi
url = https://gitweb.corporation.com
type = custom
project = ?p=${project};a=summary
revision = ?p=${project};a=commit;h=${commit}
branch = ?p=${project};a=shortlog;h=${branch}
filehistory = ?p=${project};a=history;hb=${branch};f=${file}
- Jika Anda menggunakan http / https untuk melayani, tambahkan yang berikut:
Pembaruan gerrit.config:
[download]
scheme = http
- Jika Anda menggunakan LDAP dengan direktori aktif, Anda perlu mengubah pengaturan Anda menambahkan pengaturan tambahan untuk mendukung AD:
Pembaruan gerrit.config:
[ldap]
sslVerify = true
server = ldaps://ldap.corp.local:636
username = CN=Administrator,CN=Users,DC=corp,DC=local
accountBase = CN=Users,DC=corp,DC=local
accountPattern = (&(objectClass=person)(sAMAccountName=${username}))
accountFullName = displayName
accountEmailAddress = mail
accountSshUserName = sAMAccountName
groupBase = CN=Users,DC=corp,DC=local
groupMemberPattern = (sAMAccountName=${username})
groupName = cn
Server.xml:
<Server port="8006" shutdown="SHUTDOWN">
<Service name="Catalina">
<Engine name="Catalina" defaultHost="localhost">
<Host name="localhost" appBase="webapps" unpackWARs="true">
<Context path="" docBase="C:\your_path\gitserver\gerrit\gerrit-2.4" debug="0" reloadable="false">
<Resource
name="jdbc/ReviewDb"
type="javax.sql.DataSource"
username="gerrit2"
driverClassName="org.postgresql.Driver"
password="secret"
url="dbc:postgresql://yourPsqlServer:5432/reviewdb"
/>
</Context>
</Host>
</Engine>
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"/>
<Connector port="8011" protocol="AJP/1.3" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
disableUploadTimeout="true" enableLookups="false"
acceptCount="100" URIEncoding="UTF-8" />
</Service>
</Server>
Anda tidak memerlukan konektor AJP kecuali Anda bermaksud melakukan proxy dengan Apache HTTP Server. Saya menggunakannya untuk mengeluarkan enkripsi SSL dan mengelola sertifikat. Hapus saja jika tidak diperlukan. Pastikan untuk mengubah port konektor HTTP Anda menjadi 80 jika Anda bermaksud menjalankan standalone.
Konfigurasi di atas adalah untuk digunakan dengan postgres. Jika Anda menggunakan MySQL, Anda harus mengganti sumber daya dengan yang berikut untuk MySQL:
Server.xml:
<Resource
name="jdbc/ReviewDb"
type="javax.sql.DataSource"
username="gerrit2"
driverClassName="org.gjt.mm.mysql.Driver"
password="secret"
url="jdbc:mysql://yourMsqlServer/reviewdb?autoReconnect=true"
/>
Pada titik ini, Anda sekarang siap untuk Mengkonfigurasi Gerrit sebagai layanan dan membawa sistem ulasan online.
- Pertama, tweak Pengaturan Tomcat untuk Menjalankan Gerrit sebagai Layanan
- Pergi tomcat / bin dan edit service.bat
Opsi jvm diatur secara terpisah untuk layanan nt. Anda harus mengubah file service.bat Anda sebelum menginstal layanan nt. File ini berada di direktori tomcat / bin dengan skrip startup.bat dan shutdown lainnya. Gulir ke bawah ke bagian berikut:
"%EXECUTABLE%" //US//%SERVICE_NAME% \++JvmOptions "-Djava.io.tmpdir=%CATALINA_BASE%\temp;-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager;-Djava.util.logging.config.file=%CATALINA_BASE%\conf\logging.properties" \--JvmMs 128 \--JvmMx 256
Ubah baris ini agar sesuai dengan yang berikut:
"%EXECUTABLE%" //US//%SERVICE_NAME% \++JvmOptions "-Djava.io.tmpdir=%CATALINA_BASE%\temp;-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager;-Djava.util.logging.config.file=%CATALINA_BASE%\conf\logging.properties" \++JvmOptions="-XX:MaxPermSize=256m" \++JvmOptions="-XX:+CMSClassUnloadingEnabled" \++JvmOptions="-XX:+CMSPermGenSweepingEnabled" \--JvmMs 512 \--JvmMx 1024
Memori awal, jvmMs, pasti harus diatur ke 512Mb untuk gerrit dan diperluas, JvmMx, ke 1024Mb.
Sekarang Anda siap menggunakan gerrit sebagai layanan di bawah windows. Cukup jalankan yang berikut ini:
C:\your_path\gitserver\gerrit\tomcat\bin>service install gerrit
Installing the service 'gerrit' ...
Using CATALINA_HOME: "C:\your_path\gitserver\gerrit\tomcat"
Using CATALINA_BASE: "C:\your_path\gitserver\gerrit\tomcat"
Using JAVA_HOME: "C:\Program Files\Java\jdk1.6.0_31"
Using JVM: "C:\Program Files\Java\jdk1.6.0_31\jre\bin\server\jvm.dl
l"
The service 'gerrit' has been installed.
C:\your_path\gitserver\gerrit\tomcat\bin>
Goto manajer server Anda dan buka simpul Layanan. Buka properti untuk Gerrit dan pastikan Anda mengatur jenis startup ke Otomatis:
Terapkan dan Tutup Dialog.
OKE ... Apakah kita sudah selesai? Sayangnya tidak, hanya beberapa langkah lagi. Tetap bertahan.
Sekarang Anda siap memulai layanan. Cukup sorot layanan Gerrit dan klik opsi Mulai di sebelah kiri.
Tinjau log di bawah direktori tomcat / log. Pastikan tidak ada kesalahan luar biasa. Jika Anda memiliki masalah, Anda dapat mengajukan pertanyaan di sini atau di milis gerrit:
http://groups.google.com/group/repo-discuss
Anda seharusnya dapat membuka browser Anda dan memasukkan url server Anda untuk melihat Gerrit sekarang: http://review.corporation.com:8080
Anda akan diminta untuk memasukkan kunci publik ssh Anda. Ini hanya diperlukan jika Anda bermaksud menggunakan Git / Gerrit via ssh, bukan HTTP. Saya pergi ke depan dan mengaturnya karena itu pilihan yang baik untuk dimiliki.
Konfigurasikan SSH
Buat kunci ssh untuk akses:
Administrator @ SERVER ~ / test $ ssh-keygen -t rsa
Daftarkan akun baru di Gerrit melalui antarmuka web dengan alamat email pilihan Anda. Pengguna pertama yang masuk dan mendaftarkan akun akan secara otomatis ditempatkan ke dalam grup Administrator yang sepenuhnya istimewa, yang mengizinkan manajemen server melalui web dan melalui SSH. Pengguna selanjutnya akan secara otomatis terdaftar sebagai pengguna yang tidak memiliki hak.
Setelah masuk sebagai pengguna, Anda menemukan sedikit wizard untuk memulai. Wisaya membantu Anda mengisi:
- Nama asli (nama yang terlihat dalam bahasa Gerrit)
- Daftarkan email Anda (harus dikonfirmasi nanti)
- Pilih nama pengguna untuk berkomunikasi dengan Gerrit di atas ssh + git
Server akan meminta Anda kunci publik RSA. Itulah kunci yang kami buat di atas, dan inilah saatnya untuk memastikan bahwa Gerrit mengetahui tentang kunci baru kami dan dapat mengidentifikasi kami dengan kunci itu.
user @ host: ~ $ cat .ssh / id_rsa.pub
Konfigurasikan akses HTTP hanya untuk pengguna terdaftar, kecuali proyek Anda terbuka untuk umum:
Buat Kata Sandi HTTP
Meskipun telah mengonfigurasi login Anda sendiri, Anda masih harus membuat kata sandi untuk gerrit ke server melalui http / https. Ambil Pengaturan Anda-> Konfigurasi Kata Sandi HTTP dan klik 'Buat Kata Sandi'. Gunakan kata sandi ini untuk semua operasi git melalui http (s).
Sekarang kita dapat menguji Gerrit melalui HTTP. Anda harus dapat mengkloning semua proyek yang ada di repositori yang telah Anda referensikan di konfigurasi Gerrit.
Uji dengan operasi klon
Administrator@SERVER ~/test
$ git clone https://review.corporation.com/sandbox
Uji akun ssh Anda
Administrator@SERVER~/test
$ ssh jhuntley@localhost -p 29418
**** Welcome to Gerrit Code Review ****
Hi Jason Huntley, you have successfully connected over SSH.
Unfortunately, interactive shells are disabled.
To clone a hosted Git repository, use:
git clone ssh://jhuntley@review.corporation.com:29418/REPOSITORY_NAME.g
it
Connection to localhost closed.
Mengkloning proyek dari Gerrit melalui SSH:
Administrator@SERVER~/test
$ git clone ssh://jhuntley@127.0.0.1:29418/sandbox
Cloning into 'sandbox'...
remote: Counting objects: 183, done
remote: Finding sources: 100% (183/183)
remote: Total 183 (delta 0), reused 0 (delta 0)Receiving objects: 50% (92/183)
Receiving objects: 52% (96/183)
Receiving objects: 100% (183/183), 23.76 KiB, done.
Jika Anda belum menyerah sekarang, Anda dapat bersantai, Anda harus menemukan diri Anda dengan sistem Gerrit Code Review bekerja dengan Windows Server 2008 :) Ini tidak biasa seperti pengaturan dan seperti yang Anda tahu, menjamin semua tambahan Langkah. Namun, sebagian dari kita memiliki sumber daya yang terbatas dan hanya dapat menggunakan apa yang disediakan. Saya harap tutorial ini membantu mereka yang ingin menjalankan Gerrit di lingkungan yang sama. Anda harus siap sekarang untuk mulai menggunakan Gerrit! Nikmati!
Untuk informasi lebih lanjut tentang penggunaan Gerrit, silakan berkonsultasi dengan panduan pengguna dari proyek Gerrit:
http://gerrit-documentation.googlecode.com/svn/Documentation/2.3/index.html
Terima kasih, Shawn Pierce, atas bantuan di IRC!
Untuk referensi di masa mendatang
Tutorial telah dikonversi ke dokumentasi untuk proyek Gerrit. Bagi yang berminat dan butuh referensi yang baik. Silakan lihat permintaan tambalan di sini:
https://gerrit-review.googlesource.com/#/c/37072