본문 바로가기
Jenkins

[jenkins] ssh 사용하여 서버에 원격 배포 하기(+jenkins 설치)

by Rainbound-IT 2023. 9. 8.
반응형

 

목차

     

     

     

    Jenkins 설치

     

    환경: ubuntu 22.04

     

    sudo apt install jenkins 하면 에러가발생함

     

     

    https://www.oracle.com/java/technologies/downloads/#java17

     

    Download the Latest Java LTS Free

    Subscribe to Java SE and get the most comprehensive Java support available, with 24/7 global access to the experts.

    www.oracle.com

    여기서 자신의 환경에 맞는 jdk 설치해야함

     

    맨위는 arm 계열

    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이 설치가 됩니다.

     

     

    원하는 계정정보 입력합니다.

    정상적으로 설치가 되면

     

     

    내부 ip로 설정하자

    그다음 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

    key 에 private key(대상서버)를 입력합니다.

    aws 의 경우 pem키를 사용한다면 pem키를 넣으시면 됩니다.

     

    여기서 추가

    젠킨스 버전마다 화면이 다를수 있습니다. (위 추가화면은 없을수도 있습니다.)

     

    여기서 Required 된 부분에 값을 입력하면 됩니다.

     

    Name: ssh 서버를 구분하기위한 이름

    Hostname: 서버의 ip나 도메인

    Username: 서버에 접속할 유저의 이름

    Remote Directory: 원격 디렉토리 경로

     

    위와 같이 설정하시고 오른쪽에 Test Configuration을 클릭하여 Success 가 나오면 정상적으로 설정이 된것입니다.

    그리고 저장하시면 publish over ssh 설정이 완료됩니다.

     

    빌드 및 SSH Publlishers 활용

     

    여기서 ssh적혀있는 고르시면됩니다.

    파일을 보낸뒤 ssh 를 통하여 명령어 실행을 이전에 할지 이후에 할지 선택하시면 됩니다.

    보통 배포 후 새 파일을 실행하므로 after를 주로 선택할 것입니다.

    그전에 설정할것이 있다면 before를 선택하시면 되구요.

    선택을하면 아래와 같이 설정값을 입력하는 창이 나타납니다.

     

    SSH server name, Source files, Exec command 는 반드시 입력합니다.

    SSH server name에는 위에서 설정한 publish over ssh에서 설정했던 이름을 찾아 선택합니다.

    • Sourcefile: 빌드 한 파일중 배포하고 싶은 파일의 경로를 입력해줍니다. 여러개면 , 나 *로 여러개 파일을 입력하면 됩니다.
    • Remove prefix: 위 Sourcefile을 배포할때 앞에 경로를 붙이게 되는데 이러면 폴더가 생성되고 파일에 들어가게 됩니다. 파일만 넣고 싶을 경우 sourcefile에서 제거 하고싶은 경로를 적어줍니다.
    • Remote directory: 실행하고싶은 경로를 입력합니다.
    • Exec command: 실행할 명령어 입력합니다.

     

     

    빌드 명령어를 입력합니다.

     

    반응형

    댓글