2011-09-25 24 views
6

Tôi đã cố gắng trong nhiều ngày để có được gitolite làm việc với jenkins để tôi có thể có repos lưu trữ từ máy chủ và làm việc với Jenkins (họ đang ở trên cùng một sever).Cố gắng để có được jenkins và gitolite để làm việc thành công - Cho phép từ chối (publickey, password)

Tôi có gitolite làm việc nhưng tôi đoán tôi có vấn đề với ssh. Tôi được trợ giúp về trò chuyện và thêm khóa cá nhân vào jenkins/.ssh.

Tôi có người dùng "git" lưu trữ gitolite và tôi có người dùng "gitolite" và người dùng "jenkins". Tôi có thể sao chép một repo bằng cách sử dụng git clone [email protected]: Ma trận

Nhưng tôi không thể sử dụng nó trong jenkins. Tôi nhận được điều này khi tôi cố gắng xây dựng.

Checkout:workspace//var/lib/jenkins/jobs/Matrix/workspace - 
[email protected] 
Using strategy: Default 
Checkout:workspace//var/lib/jenkins/jobs/Matrix/workspace - 
[email protected] 

Cloning the remote Git repository 
Cloning repository origin 
ERROR: Error cloning remote repo 'origin' : Could not clone [email protected]:Matrix 
ERROR: Cause: Error performing command: git clone --progress -o origin [email protected]:Matrix /var/lib/jenkins/jobs/Matrix/workspace 
Command "git clone --progress -o origin [email protected]:Matrix 
/var/lib/jenkins/jobs/Matrix/workspace" returned status code 128: Cloning into  /var/lib/jenkins/jobs/Matrix/workspace... 
Permission denied, please try again. 
Permission denied, please try again. 
Permission denied (publickey,password). 
fatal: The remote end hung up unexpectedly 

Trying next repository 
ERROR: Could not clone repository 
FATAL: Could not clone 
hudson.plugins.git.GitException: Could not clone 
at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:1042) 
at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:968) 
at hudson.FilePath.act(FilePath.java:758) 
at hudson.FilePath.act(FilePath.java:740) 
at hudson.plugins.git.GitSCM.checkout(GitSCM.java:968) 
at hudson.model.AbstractProject.checkout(AbstractProject.java:1193) 
at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:566) 
at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:454) 
at hudson.model.Run.run(Run.java:1376) 
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46) 
at hudson.model.ResourceController.execute(ResourceController.java:88) 
at hudson.model.Executor.run(Executor.java:230) 

Tôi đăng nhập vào máy chủ của mình và su - jenkins, sau đó nhập "ssh -v git @ server" Tôi nhận được thông báo này.

[email protected]:~$ sudo su - jenkins 
[email protected]:~$ ssh -v [email protected] 
OpenSSH_5.8p1 Debian-1ubuntu3, OpenSSL 0.9.8o 01 Jun 2010 
debug1: Reading configuration data /etc/ssh/ssh_config 
debug1: Applying options for * 
debug1: Connecting to server [127.0.1.1] port 22. 
debug1: Connection established. 
debug1: identity file /var/lib/jenkins/.ssh/id_rsa type -1 
debug1: identity file /var/lib/jenkins/.ssh/id_rsa-cert type -1 
debug1: identity file /var/lib/jenkins/.ssh/id_dsa type -1 
debug1: identity file /var/lib/jenkins/.ssh/id_dsa-cert type -1 
debug1: identity file /var/lib/jenkins/.ssh/id_ecdsa type -1 
debug1: identity file /var/lib/jenkins/.ssh/id_ecdsa-cert type -1 
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.8p1 Debian-1ubuntu3 
debug1: match: OpenSSH_5.8p1 Debian-1ubuntu3 pat OpenSSH* 
debug1: Enabling compatibility mode for protocol 2.0 
debug1: Local version string SSH-2.0-OpenSSH_5.8p1 Debian-1ubuntu3 
debug1: SSH2_MSG_KEXINIT sent 
debug1: SSH2_MSG_KEXINIT received 
debug1: kex: server->client aes128-ctr hmac-md5 none 
debug1: kex: client->server aes128-ctr hmac-md5 none 
debug1: sending SSH2_MSG_KEX_ECDH_INIT 
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY 
debug1: Server host key: ECDSA f3:ab:a6:55:83:98:c5:4f:85:c6:70:be:2f:40:1f:65 
debug1: Host 'server' is known and matches the ECDSA host key. 
debug1: Found key in /var/lib/jenkins/.ssh/known_hosts:3 
debug1: ssh_ecdsa_verify: signature correct 
debug1: SSH2_MSG_NEWKEYS sent 
debug1: expecting SSH2_MSG_NEWKEYS 
debug1: SSH2_MSG_NEWKEYS received 
debug1: Roaming not allowed by server 
debug1: SSH2_MSG_SERVICE_REQUEST sent 
debug1: SSH2_MSG_SERVICE_ACCEPT received 
debug1: Authentications that can continue: publickey,password 
debug1: Next authentication method: publickey 
debug1: Trying private key: /var/lib/jenkins/.ssh/id_rsa 
debug1: read PEM private key done: type RSA 
debug1: Authentications that can continue: publickey,password 
debug1: Trying private key: /var/lib/jenkins/.ssh/id_dsa 
debug1: Trying private key: /var/lib/jenkins/.ssh/id_ecdsa 
debug1: Next authentication method: password 
[email protected]'s password: 

Nó vẫn yêu cầu mật khẩu ... Bất kỳ ai đã thực hiện việc này? Bắt gitolite làm việc với jenkins? Tôi rất biết ơn vì sự giúp đỡ và có thể sẵn sàng tặng 10 đô la (thẻ visa) để giúp tôi thiết lập điều này!

+1

Theo nhật ký SSH, khóa riêng tư của bạn 'id_rsa' không được máy chủ chấp nhận. Kiểm tra xem gitolite có khóa công khai khớp với khóa riêng không và gitolite đã cập nhật chính xác tệp ~/git/.ssh/authorized_keys bằng khóa đó. –

+0

Cảm ơn bạn đã trả lời! Im nhìn vào nó ngay bây giờ, nhưng tôi không chắc chắn làm thế nào để giải quyết điều này. Trong jenkins tôi không thể xây dựng, nhưng tôi không chắc chắn làm thế nào tôi giả sử để suy nghĩ. nếu tôi có sách chuyên nghiệp của mình và cố gắng truy cập máy chủ của mình, tôi giả sử chỉ viết ssh e-ject.se? auths nào tôi cần? IMac của tôi đến máy chủ, macbook của tôi đến máy chủ, jenkins? và gitolite? tôi có một người dùng git là người dùng chính của tôi trên ubuntu tôi có thể sử dụng git clone [email protected]: Matrix nhưng tôi cần jenkins để chấp nhận và sao chép cái này? rất biết ơn câu trả lời và tôi giữ lời hứa quyên góp (xin visa lại) Joniz – Jonathan

+0

tôi sẽ thoát khỏi câu trả lời này và thử hướng dẫn này thay thế! http://www.nomachetejuggling.com/2011/07/31/ubuntu-tomcat-jenkins-git-ssh-togethe/ cho phép bạn thực hiện điều đó. – Jonathan

Trả lời

14

SSH vào Jenkins hộp và tạo ra một cặp khóa SSH cho người sử dụng Jenkins (giả sử jenkins đây):

local$ ssh jenkins-box 
[email protected]$ sudo su jenkins 
[email protected]$ ssh-keygen 
[email protected]$ cat $HOME/.ssh/id_rsa.pub 

Sao chép SSH khóa công khai mà bạn nhìn thấy trên màn hình và dán nó vào tập tin mới keydir/jenkins.pub bên trong kho lưu trữ quản trị gitolite cục bộ của bạn.

Thêm các dòng sau để conf/gitolite.conf để cung cấp cho phép Jenkins để sao chép và kéo tất cả các kho:

repo @all 
     R  = jenkins 

Cam kết và đẩy kho quản trị gitolite. Jenkins bây giờ sẽ hoạt động chính xác.

+0

Cảm ơn bạn, đã làm việc hoàn hảo cho vấn đề của tôi –

+1

Lưu ý rằng trong một số cài đặt, người dùng 'jenkins' không phải là thông tin đăng nhập mà là người dùng hệ thống/daemon. Trong những trường hợp này chạy 'sudo -u jenkins' trước khi các lệnh hoạt động tốt (trong trường hợp của tôi, tôi cũng phải tự tạo'/home/jenkins'). Ngoài ra hãy chắc chắn để chạy một bản sao thử nghiệm như jenkins: 'sudo -u jenkins clone git @ máy chủ: repo ~/testclone' –

+0

Chỉnh sửa để bình luận trước của tôi:' sudo -u jenkins git clone git @ server: repo ~/testclone' –

Các vấn đề liên quan