목차
Jenkins 설치
환경: ubuntu 22.04
sudo apt install jenkins 하면 에러가발생함
https://www.oracle.com/java/technologies/downloads/#java17
여기서 자신의 환경에 맞는 jdk 설치해야함
deb로 설치해도 되지만 이미 설치되어 있는 jdk 버전이 있어서 gz을 받아서 설치하였습니다.
압축을 풀고 나온 파일경로를 복사한뒤
다음처럼 파일 편집
vi /lib/systemd/system/jenkins.service
여기서 java path를 설정해줘야하는데
JENKINS_JAVA_CMD를 검색하여 Enviornment를 주석해제후 위에서 복사한 경로를 붙여넣어주자
여기서 포트도 설정할 수 있는데 저의 경우 기본 포트인 8080을 다른 앱이 사용하고 있어 8180으로 변경하였습니다.
(port 검색하면 나오는곳에서 설정하면 됩니다.)
변경하고 나서 다시 sudo apt installl jenkins를 하거나 systemctl start jenkins.service를 하시면 됩니다.
하고 나서 서버 ip:port에 접속하면 인증 키같은걸 입력하라고 경로를 알려주는데 복사하여 설치된 서버에서 열어봅니다.
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
이키를 복사한뒤 페이지에 입력한뒤 suggested installed 클릭하면 plugin이 설치가 됩니다.
정상적으로 설치가 되면
그다음 url 설정인데 따로 도메인이 없다면 기본값( localhost ip)로 적자
bitbucket과 연동
bitbucket이 몇년 전부터 https 인증으로 jenkins 연동이 안되므로 ssh 로 해야한다.
주의할점은 jenkins는 우분투의 jenkins 계정으로 실행이 되므로 jenkins에서 키생성 한것을 등록해야한다.
sudo su 로 root 접속후 su - jenkins로 접속하여 진행하였다.
ssh key 생성
ssh-keygen -t rsa
pub 안붙은게 private 키이 므로 해당 키를 복사한뒤 jenkins credentials에 넣어야한다.
pub-key를 등록
아래에 커맨드를 서버에서 입력해줍니다.
git ls-remote -h -- git@bitbucket.org:[bitbucket repositorhy 주소].git HEAD
아무 에러가 발생하지 않는다면 정상적으로 동작하는 것이다.
ssh 서버 연동( publish over ssh )
publish over ssh를 사용해봅니다.
배포가 간단하고 네트워크가 복잡하지 않은 경우에 적합합니다.
plugin publish over ssh 설치후
jenkins 관리 - System
aws 의 경우 pem키를 사용한다면 pem키를 넣으시면 됩니다.
젠킨스 버전마다 화면이 다를수 있습니다. (위 추가화면은 없을수도 있습니다.)
Name: ssh 서버를 구분하기위한 이름
Hostname: 서버의 ip나 도메인
Username: 서버에 접속할 유저의 이름
Remote Directory: 원격 디렉토리 경로
위와 같이 설정하시고 오른쪽에 Test Configuration을 클릭하여 Success 가 나오면 정상적으로 설정이 된것입니다.
그리고 저장하시면 publish over ssh 설정이 완료됩니다.
빌드 및 SSH Publlishers 활용
파일을 보낸뒤 ssh 를 통하여 명령어 실행을 이전에 할지 이후에 할지 선택하시면 됩니다.
보통 배포 후 새 파일을 실행하므로 after를 주로 선택할 것입니다.
그전에 설정할것이 있다면 before를 선택하시면 되구요.
선택을하면 아래와 같이 설정값을 입력하는 창이 나타납니다.
SSH server name에는 위에서 설정한 publish over ssh에서 설정했던 이름을 찾아 선택합니다.
- Sourcefile: 빌드 한 파일중 배포하고 싶은 파일의 경로를 입력해줍니다. 여러개면 , 나 *로 여러개 파일을 입력하면 됩니다.
- Remove prefix: 위 Sourcefile을 배포할때 앞에 경로를 붙이게 되는데 이러면 폴더가 생성되고 파일에 들어가게 됩니다. 파일만 넣고 싶을 경우 sourcefile에서 제거 하고싶은 경로를 적어줍니다.
- Remote directory: 실행하고싶은 경로를 입력합니다.
- Exec command: 실행할 명령어 입력합니다.
'Jenkins' 카테고리의 다른 글
[Jenkins]Failed to connect to repository : Command "git ls-remote -h -- git@bitbucket.org:abc/example.git HEAD" returned status code 128: 에러 (0) | 2023.09.15 |
---|---|
[jenkins] bitbucket webhook 설정 (0) | 2023.09.11 |
gradle build 에러 (0) | 2023.06.23 |
Ubuntu jenkins 설치 (0) | 2023.05.02 |
jenkins slack 연동(알람 설정) (0) | 2023.04.19 |
댓글