1.3 젠킨스 CI/CD 설정
- 젠킨스 서버 ssh 설정
- 젠킨스에서 소스를 배포하기 위해서 소스 서버와 암호없이 통신할수 있도록 ssh 접속 설정을 한다.
- 우분투 서버에 텔넷으로 접속하여 도커 톰캣1번, 톰캣2번, 아파치 서버, 젠킨스 서버 기동을 한다.
- 젠킨스 서버와 소스 배포 서버 ssh 설정 하기 위해서 터미널을 2개 띄웠다.
- 젠킨스 docker 에 먼저 접속하여 ssh 설정을 한다.
root@cbw:~# docker exec -it jenkins bash
접속후 root 홈 디렉토리로 이동한다.
root@jenkins:/# cd ~ root@jenkins:~# ls -al total 28 drwx------ 1 root root 4096 Sep 2 02:36 . drwxr-xr-x 1 root root 4096 Jul 11 08:08 .. -rw------- 1 root root 46 Sep 2 02:35 .bash_history -rw-r--r-- 1 root root 571 Apr 10 2021 .bashrc -rw-r--r-- 1 root root 126 Jul 4 13:51 .gitconfig -rw-r--r-- 1 root root 161 Jul 9 2019 .profile -rw------- 1 root root 867 Sep 2 01:40 .viminfo root@jenkins:~# |
홈디렉토리에서 ssh-key를 만들기 전에 필요한 ssh 서버를 먼저 설치 해야 한다.
- apt update : 패키지 목록 을 갱신한다.
- apt install vim : vi 에디터 설치
- apt install telnet : telnet 접속 툴 설치
- apt install net-tools : ifconfig 아이피 확인 툴 설치
- apt install openssh-server : ssh 접속 서버 설치
설치후 ssh 서버를 기동한다.
service ssh start
서비스 기동 확인 : ps -ef |grep ssh
root@jenkins:~# ps -ef|grep ssh root 1717 1 0 05:59 ? 00:00:00 sshd: /usr/sbin/sshd [listener] 0 of 10-100 startups |
위와 같이 나오면 ssh 서버가 기동이 되었다.
root 계정에 패스워드를 설정 하자
root@jenkins:~# passwd New password: Retype new password: passwd: password updated successfully root@jenkins:~# |
그냥 편의상 패스워드는 root 로 설정했다.
root 계정으로 ssh 접속할수 있게 권한을 설정 한다.
cd /etc/ssh
vi sshd_config
PermitRootLogin yes 변경후 저장한다.
ssh 서비스를 재기동한다.
service ssh restart
root@jenkins:/etc/ssh# service ssh restart Restarting OpenBSD Secure Shell server: sshd. root@jenkins:/etc/ssh# |
서비스 재기동후 젠키스 서버 아이피를 확인한다.
ifconfig
- 우분투 서버에서 ssh로 도커에 있는 젠킨스 서버로 접속이 되는지 확인하자.
- 터미널을 2개 띄웠는데 하나는 우분투 서버에서 도커에 있는 젠킨스 서버 접속 테스트 하기 위해서다.
- 우분투 서버 아이를 확인하자
- ifconfig
아이피 확인후 우분투서버에서 -> 도커 컨테이너 안에 젠킨스 서버로 접속이 되는지 확인한다.
ssh 접속할 아이피
ssh 10.10.0.50
The authenticity of host '10.10.0.50 (10.10.0.50)' can't be established.
ED25519 key fingerprint is SHA256:BewbIufyTAgiKRU8LJC1I7jOPKMA8oJNb91Pkk28t1w.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes 입력후 엔터
접속하는곳 root 패스워드를 물어오면 아까 설정한 root 패스워드를 입력하고 엔터를 치면
아래 화면과 같이 접속이 된다.
root@cbw:~# ssh 10.10.0.50 The authenticity of host '10.10.0.50 (10.10.0.50)' can't be established. ED25519 key fingerprint is SHA256:BewbIufyTAgiKRU8LJC1I7jOPKMA8oJNb91Pkk28t1w. This key is not known by any other names Are you sure you want to continue connecting (yes/no/[fingerprint])? yes Warning: Permanently added '10.10.0.50' (ED25519) to the list of known hosts. root@10.10.0.50's password: Linux jenkins 5.15.0-82-generic #91-Ubuntu SMP Mon Aug 14 14:14:14 UTC 2023 x86_64 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Sat Sep 2 02:35:07 2023 from 10.10.0.1 root@jenkins:~# |
exit 명령을 치고 엔터를 쳐서 jenkins 서버에서 빠져 나온다.
- 반대로 도커 컨테이너에서 우분투 서버로 접속이 되는지 확인해 보자
도커 컨테이너 젠킨스 서버에서 ssh 명령어를 사용하여 우분투 서버에 접속한다.
ssh 192.168.0.120
패스워드를 묻지 않고 접속 할수 있게 공개키를 생성하여 키를 배포 하여 개인키와 공개키를 이용하여 서버에 접속하게 설정을 해 보자.
- 도커 젠킨스 서버에서 ssh 키를 생성한다
ssh-keygen -t rsa 엔터 엔터 엔터
생성된 키를 우분투 서버에 공개키를 배포하자
cd /root/.ssh
ls -al
id_rsa 는 개인키이고 id_rsa.pub 가 공개 키이다.
공개키를 우분투 서버에 배포한다.
scp id_rsa.pub root@192.168.0.120:~/.ssh/authorized_keys
root@cbw:~/.ssh# scp id_rsa.pub root@192.168.0.120:~/.ssh/authorized_keys The authenticity of host '192.168.0.120 (192.168.0.120)' can't be established. ED25519 key fingerprint is SHA256:E7KuqRBvTZ25MtrXPwp+n7tq0keP1b4CV6/PPawiWeA. This key is not known by any other names Are you sure you want to continue connecting (yes/no/[fingerprint])? yes Warning: Permanently added '192.168.0.120' (ED25519) to the list of known hosts. root@192.168.0.120's password: id_rsa.pub 100% 562 525.5KB/s 00:00 |
우분투 서버 192.168.0.120 에 공개키가 복사 되었다.
우분투 서버에 복사가 잘 되었는지 확인 한다.
cd /root/.ssh
ls -al
복사가 된것을 확인 할 수있다.
도커 젠킨스 서버에서 다시 ssh 접속을 암호 없이 되는지 확인한다.
ssh 192.168.0.120
exit 를 입력후 엔터 ssh 접속에서 빠져 나온다.
젠킨스에 설치된 자바 경로와 버전을 확인하자.
java -version
설치된 자바버전은 11.0.19이다.
자바 설치 경로 확인
root@jenkins:~/.ssh# which javac
/opt/java/openjdk/bin/javac
root@jenkins:~/.ssh# readlink -f /opt/java/openjdk/bin/javac
/opt/java/openjdk/bin/javac
자바 설치 경로는 /opt/java/openjdk 이다 이 경로를 잘 기억하자 젠킨스 서버 환경 설정에 필요하다.
브라우저를 실행하여 젠키스를 셋팅한다.
url : http://192.168.0.120:9080
admin/admin(젠킨스 설치시 아이디 , 패스워드)
Tools 클릭
자바와 메이븐 설정후 아래에 있는 Save 버튼을 클릭하여 저장한다.
- 빌드 히스토리 로그 자동삭제 플러그인 설치
- Available plugins 선택후 검색창에 slicing 입력하여 검색한다.
Configuration Slicing 플러그인을 선택하여 Install without restart 버튼을 클릭하여 플러그인을 설치한다.
- 설치한 플러그인 사용방법
- Build History 삭제 방법
1. Slicing Plugin 설치
2. Jenkins 관리 메뉴 이동 > Configuration Slicing 클릭
3. Discard Old Builds Slicer - Max # of builds to keep <-- 선택
4. 아래와 같이 최근 20일 Build History만 유지하도록 설정
- Publish Over SSH 플러그인 설치 (ssh 접속툴)
플러그인 검색창에 Publish Over SSH 를 검색후 설치한다.
플러그인 설치후
Jenkins관리 -> System을 클릭하여 들어가서 SSH Publishers를 추가한다.
- Subversion 플러그인 설치 (svn 접속툴)
검색창에 subversion 입력
기본 환경 셋팅이 끝났다.
'IT > 프로그램' 카테고리의 다른 글
도커 허브 이미지 업로드 (0) | 2024.01.31 |
---|---|
젠킨스 JOB 생성 (0) | 2024.01.31 |
개발 WAS 소스 배포 (0) | 2024.01.31 |
이클립스 SVN 설정 (0) | 2024.01.31 |
이클립스 svn 연동하기 (0) | 2024.01.31 |