클라우드 엔지니어/클라우드 캠프과정

Jenkins , git , github 설치 및 연동

해아's 2022. 10. 24. 17:18
01. 젠킨스
  0) 젠킨스란? 
  1) 자바 설치
	dnf install java-11-openjdk-devel #centos
    sudo apt-get install openjdk-11-jdk #ubuntu
  2) 레포지토리 추가
	rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
	cd /etc/yum.repos.d/
	curl -O https://pkg.jenkins.io/redhat-stable/jenkins.repo
  3) 젠킨스 설치
	dnf install jenkins 
  4) 젠킨스 포트 변경
  	vi /usr/lib/systemd/system/jenkins.service
		Environment="JENKINS_PORT=8080" 를 
		Environment="JENKINS_PORT=9090" 으로 변경
	systemctl daemon-reload
	systemctl restart jenkins

 

02. git & github
  1) git
    (0) 깃 설치
	https://git-scm.com/downloads
    (1) 깃이란?
	Git이란 소스코드를 효과적으로 관리하기 위해 개발된 '분산형 버전 관리 시스템' 
	Git에서는 소스 코드가 변경된 이력을 쉽게 확인할 수 있고
	특정 시점에 저장된 버전과 비교하거나 특정 시점으로 되돌아갈 수도 있다.
	또 내가 올리려는 파일이 누군가 편집한 내용과 충돌한다면
	서버에 업로드 할 때 경고 메시지가 발생함.
    (2) 저장소
	저장소(Git repository)란 말그대로 파일이나 폴더를 저장해 두는 곳
	그런데 Git 저장소에서는 파일이 변경 이력 별로 구분되어 저장됨
	비슷한 파일이라도 실제 내용 일부 문구가 서로 다르면 다른 파일로 인식하기 때문에 
	파일을 변경 사항 별로 구분해 저장 가능
	평소에는 내 PC의 로컬 저장소에서 작업하다가 작업한 내용을 공개하고 싶을 때에 원격 저장소에 업로드
	물론 원격 저장소에서 다른 사람이 작업한 파일을 로컬 저장소로 가져오는 것도 가능
      [1] 저장소의 종류
	로컬 저장소 : 내 PC에 파일이 저장되는 개인 전용 저장소, git 관련 파일이 생성되어 있는 특정 폴더
	원격 저장소 : 파일이 원격 저장소 전용 서버에서 관리되며 여러 사람이 함께 공유하기 위한 저장소
			대표적으로 github, Backlog와 같은 저장소가 있다.
      [2] 로컬 저장소 생성
	폴더 생성 -> 폴더로 이동 -> 우클릭 -> git으로 열기 -> git init
    (3) 버전 관리
          [0] 계정 설정
        git config --global user.email "you@example.com"
        git config --global user.name "Your Name"
          [1] 현재 상태 확인
        git status
          [2] 변경 사항 확인
        git diff
         [3] 버전 관리할 파일 추가
        git add 파일이름
          [4] 버전 저장
        git commit -m "메시지"
          [5] 되돌리기
        git reset --soft 커밋내역		최신 파일 유지
        git reset --hard 커밋내역		최신 파일 사라짐
   2) github
    (1) github란?
	깃허브(Github)는 분산 버전 관리 툴인 깃(Git)를 사용하는 프로젝트를 지원하는 웹호스팅 서비스
	git으로 관리하는 프로젝트를 업로드하거나 공유할 수 있는 인터넷 저장소
    (2) git으로 관리하는 프로젝트 github에 저장하기
      [1] 원격 저장소 확인
	git remote -v
	git remote show 원격 저장소 이름
      [2] 원격 저장소 설정
	git remote add 원격저장소이름 원격저장소주소
		ex) git remote add origin https://github.com/본인계정/tutorial
      [3] 원격 저장소에 공유
	git push origin master

 

2) git과 젠킨스 연동
    [0] 젠킨스 설치된 컴퓨터에 git 설치
	yum install git
    [1] github 접근 토큰 생성
	github에 오른쪽 상단 계정 -> settings -> Developer settings -> Personal access token -> Tokens(classic) -> Generate new token -> Generate new token(classic)
		이름 입력 -> repo 체크,  admin:repo_hook 체크 저장 -> 키는 반드시 복사해둘 것
    [2] 젠킨스에서 api key 생성
	젠킨스 대시보드 -> 사용자 프로필 -> 설정 -> API Token에서 Add new Token클릭 후 아무 이름이나 입력 -> 토큰 복사 -> save
    [3] github 웹훅 설정
	github에 레포지토리 생성하고 setiings에서 webhook 설정
		http://[내아이피주소:젠킨스포트]/github-webhook/
	secret 부분에 2번에서 생성한 key 입력 	
    [4] 파이프라인 생성
	새로운 Item -> 이름 입력 -> Freestyle -> OK -> GitHub project 체크 -> 소스 코드 관리에서 Git 체크 -> 레포지토리 주소 입력
	 -> 빌드 유발에서 GitHub hook trigger for GITScm polling 체크 -> Build Steps에서 Add build step 클릭 후 Execute shell클릭 후 echo test 입력 -> 저장
    [5] 깃으로 푸시
	로컬 저장소에서 git push로 원격 저장소에 commit 내역 저장

 

 

 

참고자료

더보기

https://honeyinfo7.tistory.com/293

 

Jenkins - Github 웹훅 설정 에러(HTTP ERROR 403 No valid crumb was included in the request)

글을 쓰기에 앞서, 결론적으로 webhook에 대해서는 성공을 하였다. 그런데,, 이것저것 많은 설정을 하다가 우연히 문제를 해결한 것이라 어떤 설정이 결정적으로 문제를 해결하였는지는 모르겠다.

honeyinfo7.tistory.com

 

  1) 젠킨스 설치
    (1) 자바 설치
	dnf install -y java-11-openjdk-devel
    (2) 레포지토리 추가
	rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
	cd /etc/yum.repos.d/
	curl -O https://pkg.jenkins.io/redhat-stable/jenkins.repo
    (3) 젠킨스 설치
	dnf install jenkins 
    (4) 젠킨스 포트 변경
	vi /usr/lib/systemd/system/jenkins.service
		Environment="JENKINS_PORT=8080" 를 
		Environment="JENKINS_PORT=9090" 으로 변경
	systemctl daemon-reload
	systemctl restart jenkins
    (5) 대시보드 접속
	cat /var/lib/jenkins/secrets/initialAdminPassword 으로 초기 패스워드 확인 및 대시보드에 접속해서 입력	
	Install Suggested plugins
  2) git과 젠킨스 연동
    [0] 젠킨스 설치된 컴퓨터에 git 설치
	yum install git
    [1] github 접근 토큰 생성
	github에 오른쪽 상단 계정 -> settings -> Developer settings -> Personal access token -> Tokens(classic) -> Generate new token -> Generate new token(classic)
		이름 입력 -> repo 체크,  admin:repo_hook 체크 후 Generate token -> 키는 반드시 복사해둘 것
    [2] 젠킨스에서 api key 생성
	젠킨스 대시보드 -> 사용자 프로필 -> 설정 -> API Token에서 Add new Token클릭 후 아무 이름이나 입력 -> 토큰 복사 -> save
    [3] 젠킨스에 github 키 등록
	젠킨스 대시보드 -> Jenkins 관리 -> 시스템 설정 ->GitHub에서 Add GitHub Servers 클릭 후 Github Server -> Name 적당히, Add 클릭 -> Jenkins
	-> Kind: Secret text, Secret: [1] 에서 복사한 키 넣기, ID는 적당히 입력 후 Add 버튼 클릭 -> Credentials에서 추가한 것 선택 -> Test Connection 클릭 -> 저장
    [4] github 웹훅 설정
	github에 레포지토리 생성하고 setiings에서 webhook 설정
	http://[젠킨스IP]:[젠킨스PORT]/github-webhook/
	secret 부분에 2번에서 생성한 key 입력 	
    [5] 파이프라인 생성
	새로운 Item -> 이름 입력 -> Freestyle -> OK -> GitHub project 체크 -> 소스 코드 관리에서 Git 체크 -> 레포지토리 주소 입력
	 -> 빌드 유발에서 GitHub hook trigger for GITScm polling 체크 -> Build Steps에서 Add build step 클릭 후 Execute shell클릭 후 echo test 입력 -> 저장
    [6] 깃으로 푸시
	로컬 저장소에서 git push로 원격 저장소에 commit 내역 저장
728x90
반응형