Git 한 프로젝트에서 GitLab과 GitHub 원격 저장소 동시에 사용 하기

Version Control/Git 2015. 11. 22. 16:56 by 후뤼한잉여

Git 한 프로젝트에서 GitLab과 GitHub 원격 저장소 동시에 사용 하기

1) 개요

GitLab을 사용하면서 GitHub를 백업 용도로 동시에 관리하는 프로젝트를 사용하면 어떻게 될까 라는 단순한 호기심에 테스트 해본 내용을 정리한 문서입니다.

2) GitHub 설정

  1. GitHub에서 레파지토리를 생성한다.

3) GitLab 설정

  1. GitLab에 로그인 한다.
  2. NEW PROJECT 버튼을 클릭 한다.

  3. GITHUB 버튼을 클릭 한다.

  4. GitHub에서 가져온 프로젝트 중 같이 관리할 프로젝트를 IMPORT 버튼을 클릭하여 가져온다.


4) Eclipse 설정

  • 여기서 부터는 어느정도 개인의 취향에 따라 달라진다.
  • GitLab과 GibHub의 원격 저장소에 PUSH할 때 각각 할 것인지, 아니면 GitHub로 푸시할때는 GitHub만 푸시 하고 GitLab에 올릴때 GitHub와 동시에 할 것인지 인지 등 세부 설정은 알아서 하면 된다.
  • 여기서는 일반 PUSH 상황에서 두 군데 동시에 올리도록 설정 할 것이다.
  1. 이클립스에 Clone한 레파지토리에서 Remotes에서 원격 저장소 중 PUSH 부분 선택후 오른쪽 마우스를 클릭 한다.


  2. Configure Push... 메뉴를 클릭 한다.


  3. Push URIs를 선택 후 Add... 버튼을 클릭 한다.


  4. GitLab과 GitHub 저장소를 각각 입력 해서 등록 한다.


  5. Save 버튼을 클릭 한다.



Jenkins HTTPS 적용하기

CI/Jenkins 2015. 11. 22. 00:41 by 후뤼한잉여

Jenkins HTTPS 적용하기

1) 개요

다른 서버들 처럼 HTTPS를 적용하기 위해 설정한 내용을 정리한 문서입니다.

2) HTTPS 적용하기

  1. 인증서 생성 하기

    GitLab에 HTTPS 보안 적용을 위한 OpenSSL 설정하기 문서에 2) 인증서 생성하기 부분을 참고하여 키 생성 진행

  2. 편한 곳에 SSL 관리할 디렉토리 생성

     sudo mkdir -p /usr/lib/jenkins/ssl
    
  3. 인증서 파일 이동하기
     sudo mv * /usr/lib/jenkins/ssl
    
  4. jnekins 설정 파일 수정하기

     sudo vi /etc/sysconfig/jenkins
    
     JENKINS_PORT="9090" => JENKINS_PORT="-1" //http 사용 안하겠다는 의미.
     JENKINS_HTTPS_PORT="" => JENKINS_HTTPS_PORT="9090" //https 포트를 9090으로 하겠다.
    
     맨 마지막줄에 키 관련 정보 추가
     JENKINS_ARGS="" => JENKINS_ARGS=" --httpsCertificate=[인증서경로]/[인증서명].crt 
                                         --httpsPrivateKey=[인증서경로]/[인증서명].key"
    

GitLab 과 Jenkins CI 연동하기

Version Control/Git 2015. 11. 22. 00:28 by 후뤼한잉여

GitLab 과 Jenkins CI 연동하기

1) 개요

GitLab의 프로젝트의 CI를 Jenkins로 연동해서 나중에 사용할 수 있도록 테스트 삼아 설정한 내용을 정리한 문서입니다.

2) 사전 준비

  1. Git 설치하기

    CentOS 7 에서 Git Server 설치하기 참고하여 설치 진행

  2. 컴파일용 JDK 설치하기

    CentOS 7 에서 Oracle JDK 설치하기 참고하여 설치 진행

  3. GitLab에서 젠키스와 연동할 jenkins 계정 생성

  4. GitLab에 젠킨스 계정 로그인

  5. [ProfileSettings] 메뉴 클릭

  6. [Account] 메뉴 클릭
  7. Private token 값을 복사 해놓거나 이 위치를 기억 해 둔다.

    3) 기본 연동 설정하기

  8. [Jenkins 관리] 메뉴 클릭 하기
  9. [플러그인 관리] 메뉴 클릭 하기
  10. [설치가능] 탭을 클릭하고 필요한 플러그인 설치하기
    저는 이미 설치가 되어있어서 화면 첨부는 못 했습니다.

    • GIT Plugin : Git 사용 위한 플러그인
    • GitLab Plugin : GitLab 연동 위한 플러그인
    • embeddable-build-status : 빌드 상태를 마크다운 문서등에 아이콘으로 표시하기 위한 플러그인
    • [재시작 없이 설치하기] 나 [지금 다운로드하고 재시작 후 설치하기] 중 원하는 대로 설치 진행
  11. SSH 접속을 위한 SSH-Key 생성

     mkdir [젠킨스 계정 홈 디렉토리]/.ssh //젠킨스 설치때 사용한 계정 또는 /var/lib/jenkins를 사용한다.
     cd [젠킨스 계정 홈 디렉토리]/.ssh
     sudo -u [젠킨스 계정] ssh-keygen -t rsa -C "구분값"
    
  12. [Jenkins 관리] 메뉴 클릭 후 [Manage Credentials] 메뉴 클릭

  13. [Add Credentials] 클릭 후 [SSH Username with private key]를 선택 한다.

    • Scope : Global(Jenkins, nodes, items, all child items, etc) 선택
    • Username : [Jenkins 계정]
    • Private Key : From the Jenkins master ~/.ssh 선택
  14. [Save] 버튼을 클릭하여 설정을 저장한다.

  15. [Jenkins 관리] 메뉴 클릭 후 [시스템 설정] 메뉴 클릭

  16. JDK, Git가 설치된 위치를 지정 해 준다.

    • 빌드를 위한 Ant, Maven 등의 툴을 사용한다면 관련 툴에 대한 세팅도 해줘야 한다.
    • 아직 잉여라 Ant만 조금 써보고 Maven은 써보지 못 했고, 대세는 Gradle이라고 하니 나중에 빌드 툴은 Gradle로 구성을 위해 빌드 툴 설정은 안했다. (사실 빌드 툴을 제대로 써본게 없어서…ㅜㅜ)
  17. GitLab 연동 관련 부분을 설정 해 준다.

    • GitLab host URL에는 GitLab 사이트 주소를 작성 해준다.
    • API Token 부분에 위에서 복사해둔 Private token을 입력 한다.
    • [Test Connection] 버튼을 클릭하여 연동이 잘 되었는지 확인 한다.
  18. [저장] 버튼을 클릭하여 기본 연동 설정을 저장 한다.

4) 프로젝트 연동하기

  1. GitLab 설정하기
    1. GitLab 로그인 후 Jenkins와 연동할 프로젝트를 클릭 한다.
    2. [Settings] 메뉴 클릭
    3. [DeployKeys] 메뉴 클릭
    4. [NEW DEPLOY KEY] 버튼 클릭
    5. ssh키 추가 후 [CREATE] 버튼 클릭
      • [젠킨스 홈 디렉토리]/.ssh/id_rsa.pub 파일의 내용을 추가 해준다.
  2. Jenkins Project 설정하기
    1. Jenkins 메인 화면에서 [새로운 Item] 메뉴 클릭
    2. Item 이름입력 후 Freestyle project 선택 하고 [OK] 버튼 클릭
    3. 소스 코드 관리 부분 설정
      • Repository URL은 GitLab에서 Clone하는 프로젝트 주소를 입력 해준다.
      • Credentials는 아까 설정한 Credentials 계정을 선택 한다.
      • Repository browser는 gitlab을 선택 한다.
      • URL은 Jenkins Item과 연동할 GitLab의 Project주소를 입력한다.
      • Version은 관리할려는 버전을 입력하면 되는 듯 함. (즉, 아무렇게나…)
    4. 빌드 유발 부분 설정 후 [저장] 버튼 클릭
      • Build when a change is pushed to GiLab. GitLab CI Service URL: [젠킨스주소]/project/[Item명] 를 체크 한다.
      • GitLab 버전에 따라 Use GitLab CI features(GitLab 8.1 required!)를 체크 한다.
  3. GitLab에 WebHoks 등록하기

    1. GitLab 로그인 후 Jenkins와 연동할 프로젝트를 클릭 한다.
    2. [Settings] 메뉴 클릭
    3. [Web Hooks] 메뉴 클릭
    4. Hook 설정을 입력 후 [ADD WEB HOOK]버튼을 클릭 한다.

      • URL에는 젠킨스에서 설정시 체크박스 옆에 있던 주소인 [젠킨스주소]/project/[Item명]를 입력 한다.
      • 젠킨스를 HTTPS로 사용할 때 인증된 인증서 사용하지 않는 경우 Enable SSL verification 체크를 해제 해준다.
    5. [TEST HOOK] 버튼을 클릭하여 잘 동작하는지 확인 해본다.

  • Emebeddable Build Status 메뉴를 이용하면 빌드 상태를 마크로 볼 수 있다.

Nav