- 1. 젠킨스(Jenkins)2023년 05월 02일 19시 56분 49초에 업로드 된 글입니다.작성자: 각수짱728x90반응형SMALL
젠킨스
젠킨스란?
젠킨스는 소프트웨어 개발 시 지속적으로 통합 서비스를 제공하는 툴
CI(Continuous Integration) 툴이라고 표현
다수의 개발자들이 하나의 프로그램을 개발할 때 버전 충돌을 방지하기 위해
각자 작업한 내용을 공유영역에 있는 저장소에 빈번히 업로드함으로써 지속적 통합이 가능하도록 해준다.
젠킨스 설치
자바 설치
dnf install -y java-11-openjdk-devel
레포지토리 추가
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial rpm --import https://pkg.jenkins.io/redhat/jenkins.io-2023.key cd /etc/yum.repos.d/ curl -O https://pkg.jenkins.io/redhat-stable/jenkins.repo
젠킨스 설치
dnf install -y jenkins
에러
GPG 체크 에러 시
dnf install -y jenkins --nogpgcheck
GPG 체크 안 하게 설정하고 설치하기
or
레포지토리 추가할 때 이걸로 하기rpm --import https://pkg.jenkins.io/redhat/jenkins.io-2023.key
젠킨스 포트 변경
vi /usr/lib/systemd/system/jenkins.service Environment="JENKINS_PORT=8080" 를 Environment="JENKINS_PORT=9090" 으로 변경
8080 포트를 사용하는 프로그램이 있어서(ex: Tomkat) 사용하지 않는 포트로 변경
설정 저장 밑 재시작
systemctl daemon-reload systemctl restart jenkins
대시보드 접속
초기 패스워드 확인 및 대시보드에 접속해서 입력
cat /var/lib/jenkins/secrets/initialAdminPassword
Install Suggested plugins 클릭
로그인 ID와 PW 설정
변경 없이 Save and Finish
시작하기
대시보드 확인
git과 젠킨스 연동
젠킨스 설치된 컴퓨터에 git 설치
yum install git
github 접근 토큰 생성
github에 오른쪽 상단 계정 -> settings -> Developer settings -> Personal access token -> Tokens(classic) -> Generate new token -> Generate new token(classic)
이름 입력 -> repo 체크 admin:repo_hook 체크 후 Generate token-> 키는 반드시 복사해 둘 것
이 페이지를 나가면 더 이상 키를 확인이 불가능젠킨스에서 api key 생성
젠킨스 대시보드 -> 오른쪽 상단 사용자 프로필 -> 설정 -> API Token에서 Add new Token클릭 후 아무 이름이나 입력 -> 토큰 복사 -> save
젠킨스 대시보드 -> 오른쪽 상단 사용자 프로필 -> 설정 -> API Token에서 Add new Token클릭 후 아무 이름이나 입력
토큰 복사 -> save
젠킨스에 github 키 등록
젠킨스 대시보드 -> Jenkins 관리 -> 시스템 설정 -> GitHub에서 Add GitHub Servers 클릭 후 Github Server -> Name 적당히, Add 클릭 -> Jenkins
-> Kind: Secret text, Secret: [1]에서 복사한 키 넣기, ID는 적당히 입력 후 Add 버튼 클릭 -> Credentials에서 추가한 것 선택 -> Test Connection 클릭 -> 저장젠킨스 대시보드 -> Jenkins 관리 -> 시스템 설정
GitHub에서 Add GitHub Servers 클릭 후 Github Server
Name 적당히, Add 클릭 -> Jenkins
Kind: Secret text, Secret: [1]에서 복사한 키 넣기, ID는 적당히 입력 후 Add 버튼 클릭
Credentials에서 추가한 것 선택 -> Test Connection 클릭
Connection 확인 -> 저장
github 웹훅 설정
github에 레포지토리 생성하고 setiings에서 webhook 설정 -> Add webhook
Payload URL에 http://공인 IP:포트/github-webhook/ 입력 -> Secret에 젠킨스 토큰 입력 -> Add webhook
생성완료 (아직 작동은 x)
파이프라인 생성
새로운 Item -> 이름 입력 -> Freestyle -> OK -> GitHub project 체크 -> 소스 코드 관리에서 Git 체크 -> 레포지토리 주소 입력
-> 빌드 유발에서 GitHub hook trigger for GITScm polling 체크 -> Build Steps에서 Add build step 클릭 후 Execute shell클릭 후 echo test 입력 -> 저장새로운 Item
이름 입력 -> Freestyle project-> OK
GitHub project 체크 및 레포지 주소 작성
소스 코드 관리에서 Git 체크 -> 레포지토리 주소 입력
빌드 유발에서 GitHub hook trigger for GITScm polling 체크
Build Steps에서 Add build step 클릭 후 Execute shell클릭
후 echo test 입력 -> 저장
파이프라인 생성 확인
깃으로 푸시
로컬 저장소에서 git push로 원격 저장소에 commit 내역 저장
push를 하기 앞서 포트포워딩 및 방화벽 해제
지금 빌드 클릭 시 빌드 진행
Console Output으로 명령어 실행 정상작동확인
pwd를 하여금 젠킨스 빌드할 때 어느 경로인지 확인
저 경로 잘 기억하기
SSH를 이용해서 배포
젠킨스에 플러그인 설치
대시보드 -> Jenkins 관리 -> Plugin Manager -> 설치 가능 -> Publish Over SSH 검색 후 체크
-> Download now and install after restart -> 설치가 끝나고 실행 중인 작업이 없으면 Jenkins 재시작젠킨스 서버에서 SSH Key 설정
EC2를 생성할 때 사용한 키 파일을 pem 형식으로 변환
puttygen.exe 프로그램 사용
puttygen에서 load로 키 파일 불러오기
Conversions에서 Export OpenSSH Key로 저장
저장한 키 파일을 젠킨스 서버로 옮겨두기
chmod 400 키파일
ssh ubuntu@ec2의 ip주소 -i 키파일
접속이 되면 성공젠킨스 설정 수정
젠킨스 대시보드 -> Jenkins 관리 -> 시스템 설정 -> Publish over SSH -> Key: 키파일 내용 붙여 넣기, SSH Servers에서 추가
-> Name: 아무거나, Hostname: ec2의 ip주소, Username: ubuntu -> 저장
파이프라인 선택 -> 구성 -> 빌드 후 조치에서 Send build artifacts over SSH
-> Name: 아무거나, Source files: *, Remote directory: /, Exec command: sudo bash -c "cp /home/ubuntu/* /var/www/html/" -> 저장확인
개발도구에서 개발자가 소스 수정 후 github에 push
젠킨스 동작 과정
github에서 코드를 다운(/var/lib/jenkins/workspace/git_test) -> 빌드 유발에 의해 빌드가 실행 -> Build Steps에 작성한 내용이 젠킨스 서버에서 실행 -> 빌드 후 조치에 내용이 실행
728x90반응형LIST이전글이 없습니다.댓글