2016-05-10 16 views
6

Tôi mới dùng cả Jenkins và Openshift để bị trói một chút.Jenkins trên Openshift không thể sao chép repo

Tôi đã thiết lập Jenkins và chỉ nó vào repo github của tôi, nhưng nó không thể sao chép nó bởi vì tôi không thể tìm thấy bất cứ nơi nào để lưu trữ thông tin git của tôi, và khi tôi ssh vào hộp jenkins tôi không thể truy cập ~/.ssh để tạo các khóa mới hoặc tìm các khóa trong đó. Một vấn đề nữa cũng có thể là git repo của tôi là riêng tư.

Tôi đã thử google nhưng không có gì mà tôi có thể tìm thấy. Làm thế nào để tôi cho phép Jenkins truy cập vào repo git riêng của tôi?

chỉnh sửa: ok tôi được tìm thấy trong quản lý, sau đó định cấu hình địa điểm cho tên người dùng và email. sau đó tôi có ssh'd trong, và sử dụng ssh-keygen để tạo khóa ssh trong .openshift_ssh và thêm nó vào github, đầu tiên là khóa ssh bình thường, sau đó là khóa triển khai, và sau đó giống nhau trong ứng dụng gốc/dữ liệu /.ssh nhưng vẫn không có gì

+0

Ngoài 'thông điệp tiền thưởng': Tôi không sử dụng Github, chỉ cần đẩy mã đến một điều khiển từ xa trên OpenShift – strah

Trả lời

5

Bạn có thể thử và làm theo "Building a project hosted on Github using an Openshift Jenkins instance" từ Ramzi Maâlej.

Đảm bảo Openshift không cấp quyền ghi trên một số thư mục trên một cá thể Jenkins chẳng hạn như: .ssh, .m2. (hoặc ssh sẽ không hoạt động, bởi vì ngay trên các thư mục "quá dễ dãi")
Điều đó một mình có thể là nguồn gốc của các vấn đề của bạn, nhưng nếu điều đó không đủ, hãy đọc tiếp.

Sau đó:

rhc ssh buildserver 
mkdir app-root/data/git-ssh 
ssh-keygen -t rsa -b 4096 -C "[email protected]" -f $OPENSHIFT_DATA_DIR/git-ssh/id_rsa 

Triển khai bạn $OPENSHIFT_DATA_DIR/git-ssh/id_rsa.pub-your GitHub account

Tạo một kịch bản ssh-wrapper.sh nào sau đây:

#!/bin/bash 

ID_RSA="$OPENSHIFT_DATA_DIR/git-ssh/id_rsa" 
KNOWN_HOSTS="$OPENSHIFT_DATA_DIR/git-ssh/known_hosts" 

ssh -o UserKnownHostsFile=$KNOWN_HOSTS -i $ID_RSA $1 $2 

Đừng quên để làm cho nó thực thi: chmod +x ssh-wrapper.sh

thử nghiệm nó:

./ssh-wrapper.sh -T [email protected] 
Hi Jenkins! You've successfully authenticated, but GitHub does not provide shell access. 

Cuối cùng, cấu hình Jenkins:

đi đến Manage Jenkins > Configure System > Global Properties và tạo ra một biến môi trường mới gọi là GIT_SSH nó liên quan đến vị trí mà bạn đã tạo wrapper của bạn.

+0

Mặc dù nó không chính xác những gì tôi đã hỏi :-) Tôi quyết định bây giờ để lưu trữ dự án trên BitBucket và giải pháp của bạn hoạt động cho nó. – strah

0

SSH vào ứng dụng Jenkins của bạn và sử dụng khóa công khai chứa trong $OPENSHIFT_DATA_DIR/.ssh/jenkins_id_rsa.pub làm khóa triển khai Github/Gitlab/Bitbucket của bạn.

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