Tôi quyết định đi trước một câu trả lời vì đây là loại cần thiết cho Cộng đồng Gerrit. Hiện tại, không có nhiều hướng dẫn bao gồm các thiết lập nâng cao cho Gerrit. Tôi hy vọng điều này sẽ giúp những người khác khám phá các thực tiễn XP / Agile và giúp Gerrit hoạt động. Đây là một công cụ tuyệt vời khi bạn vượt qua tất cả các thách thức và chi tiết thiết lập tinh tế.
Hướng dẫn cài đặt này khá độc đáo ở chỗ nó phục vụ môi trường cụ thể:
- Máy chủ Windows 2008
- PostgreSql
- Mèo con
- LDAP thông qua Active Directory
- Gerrit
- msysgit
Trước khi bạn bắt đầu, hãy chắc chắn rằng bạn đã cài đặt git trên hệ thống của bạn. Tải xuống công cụ dòng lệnh msysgit mới nhất cho các cửa sổ từ http://code.google.com.vn/p/msysgit/doads/list
Đảm bảo bạn nhận được "Trình cài đặt đầy đủ cho Git chính thức cho Windows".
- Cài đặt MSysGit
- Sử dụng mặc định khi được nhắc
- Cấu hình Git
Nếu bạn có ý định sử dụng phiên bản GitWeb trong msysgit, bạn sẽ nhận thấy một số vấn đề xung quanh CGI.pm. Tôi muốn đề cập đến một sửa chữa để giải quyết vấn đề này.
Perl đi kèm với distro msysgit, kể từ 1.7.8, bị hỏng, http://groups.google.com/group/msysgit/browse_thread/thread/ba3501f1f0ed95af . Thư mục unicore bị thiếu cùng với utf8_ematvy.pl và CGI.pm. Bạn có thể xác minh bằng cách kiểm tra các mô-đun perl:
perl -mCGI -mEncode -mFcntl -mFile :: Find -mFile :: Basename -e "" Bạn có thể sẽ gặp ngoại lệ sau:
$ perl -mCGI -mEncode -mFcntl -mFile :: Find -mFile :: Basename -e "" Không thể định vị CGI.pm trong @INC (@INC chứa: /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 thất bại - biên dịch bị hủy bỏ.
Nếu bạn thiếu CGI.pm, bạn sẽ phải triển khai mô-đun đến môi trường msys: Bạn sẽ phải truy xuất chúng từ bản phân phối 5.8.8 trên:
http://strawberryperl.com/release.html
Tập tin: Strawberry-perl-5.8.8.3.zip
nội dung: bin / lib / trang web /
sao chép nội dung của lib vào msysgit / lib / perl5 / 5.8.8 và ghi đè lên các tệp hiện có.
Nếu sử dụng git dòng lệnh, hãy thêm cài đặt cấu hình toàn cầu của bạn vào git:
git config --global user.name "Your Name"
git config --global user.email you@corporation.com
git config --global core.autocrlf false
Đảm bảo thông tin đăng nhập được sử dụng ở đây khớp với thông tin đăng nhập trong gerrit. Nếu không, gerrit sẽ từ chối yêu cầu của bạn.
Các hướng dẫn để cài đặt và định cấu hình Gerrit như sau:
- Đầu tiên, đăng nhập vào máy chủ lưu trữ postgres và tạo người dùng và cơ sở dữ liệu cho Gerrit
- người tạo --username = postgres -A -D -P -E gerrit2
- createdb --username = postgres -E UTF-8 -O gerrit2 reviewdb
- Bây giờ, chuyển trở lại máy chủ, nếu khác, cho Gerrit và tạo 3 thư mục để triển khai Gerrit
- Tạo thư mục cài đặt cơ sở cho gerrit, tốt nhất là thư mục được phiên bản cho nội dung triển khai chiến tranh
- Tạo thư mục con cho tomcat
- Tạo một thư mục cấu hình để triển khai lược đồ và cấu hình
- Các nội dung sẽ trông như thế này:
- gerrit
- mèo con
- cấu hình
- gerrit-XX
- Tải xuống tomcat từ http://tomcat.apache.org/doad-60.cgi
- Lưu ý: Hầu hết các bản phân phối Linux sẽ có sẵn bản này từ các trình quản lý cập nhật của họ. Ví dụ: Sử dụng Synaptic trên Ubuntu
- Triển khai cài đặt tomcat của bạn vào thư mục tomcat
- Tải xuống gerrit.war mới nhất từ
http://code.google.com.vn/p/gerrit/doads/list .
- sao chép tập tin vào thư mục gerrit cơ sở
- trích xuất tệp tin chiến tranh vào thư mục con gerrit-XX
- CD vào thư mục cơ sở gerrit và chạy
java -jar gerrit-2.4-rc0.war
init -d config
- Cấu hình này bao gồm các tính năng bổ sung cho LDAP và chạy phía sau proxy, không định cấu hình các tùy chọn này nếu không cần thiết.
Hành hình:
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.
- Đừng lo lắng về việc thiết lập Gerrit làm máy chủ, chúng tôi sẽ định cấu hình sau
- Chỉnh sửa cấu hình \ etc \ gerrit.config
- trong phần gerrit, thêm cài đặt cho conicalWebUrl =
http://review.corpination.com/
- Nếu các dự án của bạn không tuân theo định dạng dự án truyền thống, hãy thêm phần sau:
- thêm vị trí tệp và url vào máy chủ gitweb của bạn cùng với các thuộc tính được liên kết
Cập nhật 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}
- Nếu bạn đang sử dụng http / https để phục vụ, hãy thêm vào như sau:
Cập nhật gerrit.config:
[download]
scheme = http
- Nếu bạn đang sử dụng LDAP với thư mục hoạt động, bạn sẽ cần điều chỉnh cài đặt của mình thêm cài đặt bổ sung để hỗ trợ AD:
Cập nhật 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
Máy chủ:
<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>
Bạn không cần trình kết nối AJP trừ khi bạn có ý định ủy quyền với Máy chủ HTTP Apache. Tôi sử dụng nó để giảm tải mã hóa SSL và quản lý chứng chỉ. Chỉ cần loại bỏ nó nếu không cần thiết. Hãy chắc chắn thay đổi cổng kết nối HTTP của bạn thành 80 nếu bạn có ý định chạy độc lập.
Các cấu hình ở trên là để sử dụng với postgres. Nếu bạn đang sử dụng MySQL, bạn sẽ phải thay thế tài nguyên bằng cách sau cho MySQL:
Máy chủ:
<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"
/>
Tại thời điểm này, bạn đã sẵn sàng Cấu hình Gerrit như một dịch vụ và đưa hệ thống đánh giá trực tuyến.
- Đầu tiên, điều chỉnh Cài đặt Tomcat để Chạy Gerrit dưới dạng Dịch vụ
- Goto tomcat / bin và chỉnh sửa dịch vụ.bat
Các tùy chọn jvm được đặt riêng cho dịch vụ nt. Bạn phải sửa đổi tệp service.bat trước khi cài đặt dịch vụ nt. Tập tin này nằm trong thư mục tomcat / bin với các tập lệnh khởi động và tắt máy khác. Cuộn xuống phần sau:
"%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
Sửa đổi dòng này để phù hợp với những điều sau đây:
"%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
Bộ nhớ ban đầu, jvmMs, chắc chắn nên được đặt thành 512Mb cho gerrit và mở rộng, JvmMx, thành 1024Mb.
Bây giờ bạn đã sẵn sàng để triển khai gerrit như một dịch vụ dưới cửa sổ. Chỉ cần thực hiện như sau:
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 trình quản lý máy chủ của bạn và mở nút Dịch vụ. Mở các thuộc tính cho Gerrit và đảm bảo bạn đặt loại khởi động thành Tự động:
Áp dụng và Đóng hộp thoại.
OK ... Chúng ta đã xong chưa? Thật không may, chỉ một vài bước nữa để đi. Treo ở đó.
Bây giờ bạn đã sẵn sàng để bắt đầu dịch vụ. Chỉ cần tô sáng dịch vụ Gerrit và nhấp vào tùy chọn Bắt đầu bên trái.
Xem lại các bản ghi trong thư mục tomcat / log. Đảm bảo không có lỗi nổi bật. Nếu bạn gặp vấn đề, bạn có thể đặt câu hỏi tại đây hoặc trên danh sách gửi thư của gerrit:
http://groups.google.com/group/repo-discuss
Bạn sẽ có thể truy cập trình duyệt của mình và nhập url của máy chủ để xem Gerrit ngay bây giờ: http://review.corpination.com:8080
Bạn sẽ được nhắc nhập khóa công khai ssh của bạn. Điều này chỉ cần thiết nếu bạn có ý định sử dụng Git / Gerrit qua ssh thay vì HTTP. Tôi đã đi trước và thiết lập nó bởi vì đó là một lựa chọn tốt để có.
Định cấu hình SSH
Tạo khóa ssh để truy cập:
Quản trị viên @ SERVER ~ / test $ ssh-keygen -t rsa
Đăng ký tài khoản mới trong Gerrit thông qua giao diện web với địa chỉ email bạn chọn. Người dùng đầu tiên đăng nhập và đăng ký tài khoản sẽ được tự động đặt vào nhóm Quản trị viên đặc quyền hoàn toàn, cho phép quản lý máy chủ trên web và qua SSH. Người dùng sau đó sẽ được đăng ký tự động là người dùng không có đặc quyền.
Sau khi đăng nhập với tư cách là người dùng của bạn, bạn tìm thấy một trình hướng dẫn nhỏ để bắt đầu. Trình hướng dẫn giúp bạn điền vào:
- Tên thật (tên hiển thị trong Gerrit)
- Đăng ký email của bạn (nó phải được xác nhận sau)
- Chọn tên người dùng để liên lạc với Gerrit qua ssh + git
Máy chủ sẽ yêu cầu bạn cung cấp khóa công khai RSA. Đó là khóa chúng tôi đã tạo ở trên và đã đến lúc đảm bảo rằng Gerrit biết về khóa mới của chúng tôi và có thể nhận dạng chúng tôi bằng khóa đó.
người dùng @ máy chủ: ~ $ cat .ssh / id_rsa.pub
Định cấu hình truy cập HTTP chỉ cho người dùng đã đăng ký, trừ khi dự án của bạn mở cửa cho công chúng:
Tạo mật khẩu HTTP
Mặc dù đã định cấu hình đăng nhập của riêng bạn, bạn vẫn phải tạo mật khẩu cho gerrit đến máy chủ qua http / https. Xem cài đặt của bạn-> Cấu hình mật khẩu HTTP và nhấp vào 'Tạo mật khẩu'. Sử dụng mật khẩu này cho tất cả các hoạt động git qua http (s).
Bây giờ chúng tôi có thể kiểm tra Gerrit qua HTTP. Bạn sẽ có thể sao chép bất kỳ dự án nào hiện có trong kho lưu trữ mà bạn đã tham chiếu trong cấu hình Gerrit.
Kiểm tra với hoạt động nhân bản
Administrator@SERVER ~/test
$ git clone https://review.corporation.com/sandbox
Kiểm tra tài khoản ssh của bạn
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.
Sao chép một dự án từ Gerrit qua 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.
Nếu bây giờ bạn chưa từ bỏ, bạn có thể thư giãn, bạn nên tìm cho mình một hệ thống Đánh giá mã Gerrit đang hoạt động được lưu trữ bởi Máy chủ Windows 2008 :) Nó không phổ biến như một thiết lập và như bạn có thể nói, đảm bảo tất cả các bổ sung các bước. Tuy nhiên, một số người trong chúng ta có nguồn lực hạn chế và chỉ có thể sử dụng những gì được cung cấp. Tôi hy vọng hướng dẫn này sẽ giúp những người tìm cách chạy Gerrit trong một môi trường tương tự. Bạn nên sẵn sàng ngay bây giờ để bắt đầu sử dụng Gerrit! Thưởng thức!
Để biết thêm thông tin về việc sử dụng Gerrit, vui lòng tham khảo hướng dẫn sử dụng từ dự án Gerrit:
http://gerrit-documentation.googlecode.com/svn/Documentation/2.3/index.html
Cảm ơn bạn Shawn Pierce vì sự giúp đỡ trên IRC!
Để tham khảo trong tương lai
Hướng dẫn đã được chuyển đổi thành tài liệu cho dự án Gerrit. Đối với những người quan tâm và cần một tài liệu tham khảo tốt. Xin vui lòng xem yêu cầu vá ở đây:
https://gerrit-review.googlesource.com/#/c/37072