Promptcloud는 Gerrit 및 Jenkins 통합 설정을 탐색합니다.

게시 됨: 2017-01-20
목차
Gerrit 및 Jenkins를 사용한 통합 설정
게릿이란?
Jenkins와 그 용도는 무엇입니까?
지속적 통합을 위한 워크플로
1. 게릿 설치
2. 초기 로그인
3. SSH 키 생성
4. 젠킨스 설치
5. Jenkins 프로세스 시작

Gerrit 및 Jenkins를 사용한 통합 설정

개발자의 삶은 반복적이고 복잡한 작업으로 인해 다소 단조로울 수 있습니다. 고맙게도, 한 번 설정하면 불평하지 않고 일상적인 작업을 정기적으로 처리할 수 있는 도구가 있습니다. 테스트 및 배포에 자동화를 추가하면 솔루션을 "지속적인 통합"이라고 할 수 있습니다. 이러한 설정은 프로젝트를 자동으로 테스트하고 배포할 수 있으므로 서버에 코드를 푸시하는 것보다 코드 작성에 더 많은 시간을 할애할 수 있습니다. Gerrit 및 Jenkins를 사용하여 지속적 통합 설정을 진행 하는 방법은 다음과 같습니다 . Gerrit 및 Jenkins를 사용한 CI 설정

게릿이란?

Gerrit는 git 클라이언트에서 변경 사항을 푸시하고, 변경 사항을 검토하고, 마스터 코드와 자동 병합할 수 있는 웹 기반 인터페이스가 있는 git 기반 오픈 소스 코드 검토 시스템입니다. 변경될 때마다 동일한 패치 세트가 만들어집니다. Gerrit는 다른 패치 세트 비교를 허용합니다. 또한 특정 라인 또는 전체 패치에 대한 피드백이나 검토를 추가할 수 있는 옵션이 있습니다. 검토자는 아래에서 변경 사항을 평가할 수 있습니다. +2 – 보기에 좋습니다. 승인됨. +1 – 나에게는 좋아 보이지만 다른 사람이 승인해야 합니다. 0 – 점수가 없습니다. -1 – 나는 당신이 이것을 제출하지 않는 것이 좋습니다. -2 – 블록 제출. +2 리뷰는 기본적으로 코드를 마스터에게 제출할 수 있음을 의미합니다. 필요에 따라 구성할 수 있습니다.

Jenkins와 그 용도는 무엇입니까?

Jenkins는 지속적 통합에 사용되는 인기 있는 빌드 서버입니다. 웹 기반이며 변경이 발생할 때 빌드 프로세스 자동화를 허용합니다. Jenkins는 Git 또는 Gerrit 없이도 독립적으로 작동할 수 있습니다. 이벤트 트리거를 허용하는 후크가 있으므로 변경이 발생하면 자동으로 빌드됩니다. Jenkins와 Gerrit를 함께 사용하면 빌드에 테스트를 통과했는지 여부를 나타내는 성공/실패 표시가 표시됩니다. Jenkins는 빌드를 수행한 후 테스트 회귀를 실행합니다. 완료되면 검토자 중 한 명처럼 테스트 결과를 게시합니다. 빌드가 실패하면 패치를 거부합니다. 테스트 실패 시 CI 품질에 따라 -1 또는 -2를 설정할 수 있습니다. 이와 함께 다른 코드 검토자도 이 시점에서 코드를 검토할 수 있습니다. 모든 검토가 통과되면 코드를 공개 저장소로 푸시할 수 있습니다 .

지속적 통합을 위한 워크플로

  1. 개발자는 Git에서 소스를 확인합니다.
  2. 개발자가 필요한 변경
  3. 개발자가 변경 사항을 Gerrit에 푸시
  4. Gerrit는 통합 테스트를 위해 Jenkins에 변경 알림을 보냅니다.
  5. Jenkins는 Gerrit git 서버에서 직접 변경 사항을 가져오고 프로젝트 구성에 따라 모든 테스트 사례를 실행합니다.
  6. 다른 개발자가 변경 사항을 검토하고 승인합니다(+2).
  7. Jenkins가 빌드를 통과하고 다른 개발자가 변경 사항을 승인하면 Gerrit는 변경 사항을 마스터 프로젝트 git 리포지토리에 병합합니다.

Gerrit 및 Jenkins 워크플로를 사용한 통합 설정 1. 게릿 설치

  • 요구 사항: JRE, 최소 버전 1.8.
  • tGerrit war 패키지 다운로드 링크

MySQL이 있는 경우 Gerrit 데이터베이스에 사용할 수 있습니다. Gerrit용 MySQL에서 사용자와 데이터베이스를 생성합니다.

mysql> CREATE USER 'gerrit2'@'localhost' IDENTIFIED BY '비밀';

mysql> 데이터베이스 생성 리뷰DB;

mysql> GRANT ALL ON reviewdb.* TO 'gerrit2'@'localhost';

mysql> 플러시 권한;

이제 아래 명령어를 실행하여 사이트를 초기화합니다.

 # java -jar gerrit.war init –batch -d ~/

이 초기화 동안 gerrit 서비스가 기본적으로 시작됩니다. mysql 데이터베이스, 로그인 인증, 이메일 서버 및 httpd url을 변경하려는 경우 ~//etc/gerrit.config 파일을 편집하고 ~//etc/secure 에 ldap 및 데이터베이스 비밀번호 세부 정보를 추가할 있습니다. .config 파일. 설정이 변경되면 적용되기 전에 gerrit 서비스를 다시 시작해야 합니다.

 # ~//bin/gerrit.sh 재시작

~//bin/gerrit.sh 스크립트를 gerrit로 init.d dir에 복사하고 머신 부팅 중에 시작하도록 추가합니다.

2. 초기 로그인

이제 브라우저에서 Gerrit URL을 로드하십시오. 이 명령을 사용하여 Gerrit 웹 URL도 찾을 수 있습니다.

# git config -f ~//etc/gerrit.config gerrit.canonicalWebUrl

이제 Gerrit 구성 파일에 구성한 방법을 사용하여 로그인 인증을 사용하여 Gerrit 웹 인터페이스에 로그인합니다. 기본적으로 OpenID입니다. LDAP는 가장 많이 사용되는 인증 방법 중 하나입니다.

Gerrit 웹 페이지에 성공적으로 로그인했으면 개발을 수행할 클라이언트 시스템에 로그인해야 합니다. ssh 세션에 대한 RSA 키를 생성해야 합니다. 파일이 이미 있는 경우 키 생성 단계를 건너뛸 수 있습니다.

# ls -l ~/.ssh

Authorized_keys 구성 id_rsa id_rsa.pub 알려진_호스트

3. SSH 키 생성

# ssh-keygen -t rsa

공개/개인 rsa 키 쌍을 생성합니다.

키를 저장할 파일 입력(/home/user/.ssh/id_rsa):

암호 입력(암호가 없는 경우 비어 있음):

동일한 암호를 다시 입력하십시오.

귀하의 ID는 /home/user/.ssh/id_rsa에 저장되었습니다.

공개 키는 /home/user/.ssh/id_rsa.pub에 저장되었습니다.

주요 지문은 다음과 같습니다.

SHA256:dMMVqsoLDf8T/d5Niob69oea3rkSLTBltiZ8s1lbdeA user@localhost

키의 randomart 이미지는 다음과 같습니다.

+—[RSA 2048]—-+

| 오… |

| .+오 . 오|

| ..+=. 에..|

| .=오=.. . |

| . SB * o |

| = .. * 오 |

| . = . = . .|

| . 영형. +오++.+ |

| . o*=*우 .|

+—-[SHA256]—–+

# 고양이 ~/.ssh/id_rsa.pub

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCwoWTT6S1pv2LP0l6r8305njSLtoupDCw8Df
GnaqW+ppfzNMtRJmAvCQpYuvE154EsGZC5csnRkUYAScOD3nri8NBsXMdD+m1mMyD
lA4ssMLhWHfstJGQ5aJ84NIR+zFK9o9QmDCVYU/
MYt2SZnmzi+Pdd4QbDWKisewmtun5rpy8vXWukKt9CHGTbv5lKyRVPF
LuQCynKbniZLV7aQD6gsVcZFG7Hj3ezBhDAZdBrCWLldy0S61DAmdH5C94xmlSuraq
HiX0pkLi4J67msvOUW6dBfeCP1VsMNz0j/
91LPlOMf5I2r1fRw1s/J1z/
UcsgBDyATwSKocNklkrd8+pp 사용자@localhost

  • 위의 공개 키를 복사하고 gerrit 웹 URL로 이동합니다.
  • 웹 페이지 오른쪽 모서리에서 사용자 이름을 확인하고 사용자를 클릭하여 설정 링크를 찾습니다.
  • 왼쪽에서 "SSH 공개 키"를 찾을 수 있습니다. 클릭하십시오.
  • 이제 "키 추가" 버튼을 클릭하고 ssh 공개 키를 붙여넣고 추가합니다.

Gerrit 및 Jenkins SSH 키 생성기를 사용한 통합 설정 로그인하고 계정을 등록하는 첫 번째 사용자는 자동으로 완전한 권한을 가진 관리자가 됩니다. 이제 프로젝트를 생성할 수 있는 권한이 있습니다. "프로젝트" 탭을 클릭하고 '새 프로젝트 만들기'를 클릭합니다. 이제 시작할 프로젝트 이름을 입력하십시오. CI 설정 시스템에서 프로젝트를 복제하고 개발 코드를 추가하기 시작합니다. # ssh [email protected] -p 29418

**** Gerrit Code Review에 오신 것을 환영합니다. **** 안녕하세요 selvam, SSH를 통해 성공적으로 연결했습니다. 불행히도 대화형 셸은 비활성화되어 있습니다. 호스팅된 Git 리포지토리를 복제하려면 다음을 사용 하십시오 .

# git clone ssh: //[email protected] :29418/Gerrit_Test

4. 젠킨스 설치

apt-get 또는 deb 패키지를 사용하여 젠킨스를 설치할 수 있습니다.

  • sudo apt-get 업데이트
  • sudo apt-get 젠킨스 설치

Jenkins 구성은 /etc/default/jenkins에 있으며 여기서 Java 위치 및 JAVA_ARGS를 변경할 수 있습니다. 기본적으로 jenkins는 8080에서 실행됩니다. 동일한 시스템에서 gerrit와 jenkins를 실행하는 경우 기본 포트 8080은 이미 gerrit에서 사용하고 있습니다. 여기서 젠킨스 포트를 변경해야 합니다. 변경하려면 HTTP_PORT 값을 편집하여 다른 포트에서 실행하십시오.

5. Jenkins 프로세스 시작

# /etc/init.d/jenkins start 브라우저로 이동하여 젠킨스 호스트 이름과 포트 번호로 젠킨스 페이지를 로드합니다.

 https://:/

Jenkins 2.*를 설치한 경우 Jenkins 웹 페이지에서 initialAdminPassword를 묻습니다. /var/log/jenkins/jenkins.log 파일에서 비밀번호를 찾을 수 있습니다. 로그는 다음과 같습니다.

Jenkins 초기 설정이 필요합니다. admin 사용자가 생성되었고 암호가 생성되었습니다. 다음 비밀번호를 사용하여 설치를 진행하십시오. f16b093akcnml397jcdoa239d6bafb9 /var/lib/jenkins/secrets/initialAdminPassword에서도 찾을 수 있습니다.
  • 이제 Jenkins -> Manage Jenkins -> Plugin Manager로 이동하여 Jenkins에 git 및 gerrit 플러그인 을 설치합니다.
  • 'Available' 탭을 클릭하고 ' Git Plugin '을 검색한 후 '재시작 없이 설치'를 클릭합니다. 다시 ' Gerrit Trigger' 를 검색하고 "다시 시작하지 않고 설치"를 클릭합니다. 마지막으로 설치된 목록에 있는지 확인하십시오.

Gerrit 및 Jenkins 플러그인을 사용한 통합 설정 Jenkins 프로세스는 Jenkins 사용자가 실행합니다. 따라서 gerrit에서 jenkins 사용자에 대한 액세스를 활성화해야 합니다.

  • 인증 방법을 사용하여 gerrit에서 jenkins 사용자를 만듭니다.
  • 이제 이전과 같이 jenkins 사용자를 위한 ssh-keygen을 생성합니다. 그러나 이번에는 빈 암호로 키를 만들고 gerrit에 jenkins 사용자의 공개 키를 복사합니다.
  • 이제 '새 항목'을 클릭하여 새 작업을 만들고 소스 코드 관리/Git 섹션에 git url을 추가하십시오. 또한 빌드 트리거에서 "Gerrit 이벤트"를 선택하고 Gerrit 프로젝트 패턴을 입력합니다.

Gerrit 및 Jenkins 이벤트를 사용한 통합 설정CI 통합 이벤트 마지막으로 구성을 저장합니다. 완벽합니다. 이제 Gerrit 및 Jenkins 설정이 완료되었습니다.