Jenkins 서버 생성 가이드
    • PDF

    Jenkins 서버 생성 가이드

    • PDF

    Article Summary

    Classic 환경에서 이용 가능합니다.

    사용하기 전에

    Q. Jenkins는 무엇인가요?

    • 지속적 통합(Continuous Integration, CI)과 지속적 배포(Continuous Delivery, CD)를 위한 대표적인 도구인 Jenkins가 설치된 서버를 제공하는 서비스입니다.
    • 빌드, 테스트, 배포 프로세스를 자동화하여 소프트웨어 품질 향상과 개발 생산성 향상에 도움을 주는 도구입니다.
    • 소스 변경 사항을 프로젝트에 지속적으로 통합하여 ​​코드의 오류를 조기에 발견하고 빠른 피드백을 통해 안정적인 릴리즈를 지속적으로 제공할 수 있습니다.
    • ​"Jenkins"는 소프트웨어 개발 시 지속적 통합(Continuous Integration) 서비스를 제공하는 오픈소스인 Jenkins를 이용하고 있습니다.

    Q. Jenkins를 사용하면 어떤 이점이 있나요?

    • 지속적 통합을 사용하여 빌드, 테스트, 배포 과정을 자동화하여 개발 생산성을 향상할 수 있습니다.
    • 자동화 테스트를 통하여 소프트웨어 품질을 향상할 수 있습니다.
    • 지속적인 통합을 통해 안정적인 릴리즈를 빠르게 배포할 수 있습니다.

    Q. Jenkins 서버는 어떻게 생성하나요?

    • 콘솔 > Server > Server 메뉴에서 Jenkins 서버 이미지를 선택하여 생성할 수 있습니다.
    • 원하는 사양의 서버를 생성하고 필요에 따라 스토리지를 추가합니다.
    • 월 요금제와 시간 요금제로 청구되며, 서버를 생성한 후 접속 환경을 설정하여 이용할 수 있습니다.
    • Jenkins를 이용하기 위해서 공인 IP 주소를 신청하고 ACG 설정에서 18080 포트를 추가해야 합니다.
    • 콘솔에 접속한 후 다음의 단계를 통해 쉽게 서버를 생성할 수 있습니다.

    devtools-1-1-01_ko

    Q. Jenkins에 접속이 안 됩니다.

    • Jenkins를 사용하기 위해서는 공인 IP 주소를 신청하여 서버에 할당해야 하며, ACG에 18080 포트가 추가되어 있어야 합니다(접속 환경 설정 참고).
    • 공인 IP 주소와 ACG를 확인한 후에도 접속되지 않는 경우 Jenkins 프로세스가 정지된 상태일 수 있으니, 터미널에서 재시작 명령어를 실행하여 프로세스를 다시 시작하십시오(Jenkins 프로세스 관리 참고).

    Q. Unlock Jenkins 화면에서 필요한 Administrator password는 어디에서 찾을 수 있나요?

    • Jenkins 초기 설정 과정 중 Unlock Jenkins 화면에서 사용되는 Administrator password는 서버에 접속한 다음 /var/lib/jenkins/secrets/initialAdminPassword 파일을 열어 확인할 수 있습니다.
    • Administrator password는 초기 설정 단계에서 사용되는 1회성 임시 패스워드입니다.

    Q. Jenkins는 어느 디렉터리에 설치되나요?

    • /var/lib/jenkins 디렉터리에 설치됩니다.
    • Jenkins 설치 경로에는 설정 파일(config.xml), Job 저장 경로(/jobs), 로그(/logs) 등이 있습니다.
    • 데이터 유실을 방지하기 위해 설치 경로를 백업해 두는 것을 권장합니다.

    Q. Jenkins Admin 패스워드를 초기화하려면 어떻게 해야 하나요?

    • Jenkins Admin 패스워드를 초기화하는 방법은 다음과 같습니다.
      1. 서버 접속
      2. [Jenkins 설치 경로]/config.xml 수정
        • Jenkins 초기 설치 경로: /var/lib/jenkins​
      3. useSecurity 항목을 false로 변경
        • <useSecurity>false</useSecurity>​
      4. authorizationStrategy, securityRealm 항목 삭제
        • <authorizationStrategy>, <securityRealm>​
      5. Jenkins 서비스 재시작
        • $ service jenkins restart​

    Jenkins 소개

    Jenkins는 지속적 통합(Continuous Integration, CI)과 지속적 배포(Continuous Delivery, CD)를 위한 대표적인 도구로, 빌드, 테스트, 배포 프로세스를 자동화하여 소프트웨어 품질 향상과 개발 생산성 향상에 도움을 줍니다. 변경 사항을 프로젝트에 지속적으로 통합하여​ 코드의 오류를 조기에 발견하고 빠른 피드백을 통해 안정적인 릴리즈를 지속적으로 제공할 수 있습니다.​

    Jenkins 서버 생성

    Jenkins 서버 생성 과정은 아래와 같습니다.

    Step 1. 콘솔 접속

    콘솔에 접속해서 Server > Server 메뉴를 선택합니다.

    lamp-1-1-02_ko

    ① 서버를 생성하려면 [서버 생성] 버튼을 클릭합니다.

    Step 2. 서버 이미지 선택

    Jenkins 서버 이미지를 선택해서 서버를 생성합니다.

    devtools-1-1-03_ko

    ① Applications > Jenkins를 선택합니다.

    [다음] 버튼을 클릭합니다.

    ③ 팝업 창의 안내(Jenkins 사용을 위한 공인 IP 주소와 ACG 신청, 초기 비밀번호 확인)를 확인합니다.

    [확인] 버튼을 클릭하여 팝업 창을 닫습니다.

    Step 3. 서버 설정

    스토리지 종류, 서버 타입, 요금제, Zone을 선택하고, 서버 이름을 입력합니다.

    lamp-1-1-04_ko

    ① Zone을 선택합니다.

    • 현재 제공하는 Zone은 ‘KR-1’이 있습니다.

    ② 부팅 스토리지로 사용할 스토리지 종류를 선택합니다.

    ③ 원하는 서버 타입을 선택합니다.

    • 일부 서버 스펙은 부팅 디스크 타입에 따라 지원되지 않을 수 있습니다.
    • 사용하는 목적에 따라 Compact, Standard 서버 타입 중 하나를 선택하세요.

    ④ 요금제는 월요금제 또는 시간 요금제 중 선택할 수 있습니다.

    ⑤ 서버 이름을 입력합니다.

    • 고객이 서버를 구별하기 위한 명칭으로, 중복해서 사용할 수 없습니다.

    [다음] 버튼을 클릭합니다.

    Step 4. 인증키 설정

    보유하고 있는 인증키가 있는 경우 ‘보유하고 있는 인증키 이용’을 선택하고, 없는 경우 아래의 절차대로 새로운 인증키를 생성합니다.

    lamp-1-1-05_ko

    [새로운 인증키 생성] 을 선택합니다.

    ② 인증키 이름을 입력합니다.

    [인증키 생성 및 저장] 버튼을 클릭하여 로컬 PC에 인증키 파일을 저장합니다.

    • 새로운 인증키를 발급받습니다.
    • 저장 후 인증키는 고객의 PC 안전한 위치에 보관해 주십시오.
    • 인증키는 최초의 관리자 비밀번호를 가져올 때 이용됩니다.

    [다음] 버튼을 클릭합니다.

    Step 5. 방화벽 설정

    보유하고 있는 ACG를 이용하거나 신규 ACG를 생성하여 방화벽을 설정할 수 있습니다.

    먼저, 보유하고 있는 ACG를 이용하여 방화벽을 설정하는 경우입니다.

    lamp-1-1-06_ko

    ① ACG는 필수로 선택해야 하며, 기본으로 제공하는 ‘ncloud-default-acg’를 포함하여 보유하고 있는 ACG 중에서 하나를 선택합니다.

    • 보유하고 있는 ACG는 최대 5개까지 선택할 수 있습니다.
    • 필수로 ACG를 선택해야 [다음] 버튼이 활성화되어 설정을 진행할 수 있습니다.

    ② 보유하고 있는 ACG 외에 신규 ACG를 생성하여 설정하고 싶다면, [신규 ACG 생성] 을 선택합니다.

    [다음] 버튼을 클릭합니다.

    새로 ACG를 생성하여 방화벽을 설정하는 방법은 다음과 같습니다.

    lamp-1-1-07_ko

    ① 신규 ACG 생성에서 ACG 생성 버튼을 클릭합니다.

    ② ACG 이름을 입력합니다.

    ③ ACG 설정에서 프로토콜, 접근 소스, 허용 포트를 입력하고 생성합니다.

    • 프로토콜: TCP, UDP, ICMP에서 선택

    • 접근 소스: IP 주소 또는 ACG명 입력

    • 허용 포트: 단일 포트 또는 범위 지정

    • 터미널 접속을 위해서는 접속하려는 서버의 ACG에 SSH 'TCP/22'에 대한 규칙이 설정되어 있어야 하고, Jenkins 사용을 위해서는 'TCP/18080' 규칙이 추가로 설정되어 있어야 합니다.

    • 규칙을 추가하려면 프로토콜, 접근 소스, 허용 포트를 기재하고 [추가] 버튼을 클릭합니다.

    ④ 22와 18080 포트가 모두 추가된 경우 [생성] 버튼을 클릭합니다.

    Step 6. 최종 확인

    설정한 내용을 최종 확인합니다.

    devtools-1-1-08_ko

    ① 서버 이미지, 서버, 인증키, ACG가 정상적으로 설정되었는지 확인합니다.

    ② 최종 확인 후에는 [서버 생성] 버튼을 클릭합니다.

    • 서버가 생성되기까지는 수 분에서 수십 분이 소요됩니다.

    서버 목록에서 확인

    생성한 서버를 리스트에서 확인합니다.

    lamp-1-1-09_ko

    ① 생성한 서버가 목록에 표시됩니다.

    ② 서버가 생성되고 패키지가 설치 완료되어 서버 상태가 운영중 이 될 때까지 대기합니다.

    접속 환경 설정

    공인 IP 주소 사용 신청

    Jenkins를 사용하려면 반드시 공인 IP 주소를 이용해서 접속해야 하며, 공인 IP 주소 사용에 대한 요금이 별도로 부과됩니다.

    lamp-1-1-11_ko

    ① 공인 IP 주소를 할당 받으려면 [공인 IP 신청] 버튼을 클릭합니다.

    적용 서버 선택에서 공인 IP 주소를 할당할 서버를 선택합니다.

    [확인] 버튼을 클릭합니다.

    포트 포워딩 설정

    터미널 프로그램(Putty 등)으로 서버에 접속하려면 포트 포워딩을 설정해야 합니다.

    lamp-1-1-12_ko

    ① 서버에 접속하려면 [포트 포워딩 설정] 을 클릭합니다.

    ② 포트 포워딩 설정 화면에서 외부 포트 번호를 설정합니다. 외부 포트 번호의 입력 범위는 1024~65,534로, 서버 접속을 위한 기능 외에 서비스 용도로 사용할 수 없습니다.
    (내부 포트 번호는 22로 정해져 있습니다.)

    [추가] 버튼을 클릭하면 설정 내역이 하단에 추가되며 [수정], [삭제] 버튼을 클릭하여 설정 내역을 수정, 삭제할 수 있습니다.

    [적용] 버튼을 클릭하면 설정한 외부 포트로 터미널 프로그램을 이용하여 SSH 접속을 할 수 있습니다.

    ACG 설정

    ACG에 터미널 접속 SSH('TCP/22') 및 Jenkins('TCP/18080') 규칙을 추가합니다.

    서버 생성 시 규칙을 이미 추가한 경우는 이 단계의 ACG 설정 작업을 수행할 필요가 없습니다.

    lamp-1-1-13-1_ko

    ① 서버 생성 시 선택한 ACG를 선택하고 상단의 [ACG 생성] 버튼을 클릭합니다.

    ② ACG 이름을 입력합니다.

    ③ 설정이 완료되면 [생성] 버튼을 클릭합니다.

    lamp-1-1-13-2_ko

    ① 생성한 ACG를 선택합니다.

    ② 상단 [ACG 설정] 버튼을 클릭합니다.

    ③ ACG 규칙 설정에서 프로토콜, 접근 소스, 허용 포트를 입력하고 생성합니다.

    • 프로토콜: TCP, UDP, ICMP에서 선택

    • 접근 소스: IP 주소 또는 ACG명 입력

    • 허용 포트: 단일 포트 또는 범위 지정

    • 터미널 접속을 위해서는 접속하려는 서버의 ACG에 SSH 'TCP/22'에 대한 규칙이 설정되어 있어야 하고, Jenkins를 사용하려면 'TCP/18080' 규칙이 추가로 설정되어 있어야 합니다.

    • 규칙을 추가하려면 프로토콜, 접근 소스, 허용 포트를 기재하고 [추가] 를 클릭합니다.

    ④ 설정이 완료되면 [적용] 버튼을 클릭합니다.

    서버 관리자 비밀번호 확인

    터미널 프로그램(Putty 등)으로 서버에 접속하려면 관리자 비밀번호를 알아야 합니다.

    lamp-1-1-14_ko

    ① 좌측 메뉴에서 [Server] 메뉴를 선택합니다.

    ② 해당 서버를 선택하고, [서버 관리 및 설정 변경] 에서 [관리자 비밀번호 확인] 을 선택합니다.

    [Drop files here or click to upload] 버튼을 클릭해 서버 생성 시 개인 PC에 저장한 인증키 파일(.pem)을 첨부합니다.

    ④ 첨부 후 [비밀번호 확인] 버튼을 클릭하면 터미널 프로그램으로 최초 서버 접속 시 사용할 비밀번호를 얻을 수 있습니다.

    • 서버에 접속 후 관리자가 기억할 수 있는 비밀번호로 변경하여 사용하는 것을 권장합니다.

    터미널 접속

    터미널 프로그램(Putty 등)으로 서버에 접속해서 Jenkins 프로세스를 관리할 수 있습니다.

    터미널 프로그램으로 서버 접속

    devtools-1-1-21_ko

    ① 터미널 프로그램(Putty 등)을 실행합니다.

    ② 서버 리스트 또는 내용 보기에서 확인한 '서버 접속용 공인 IP'와 '외부 포트'의 값을 입력하고 [Open] 버튼을 클릭하면 서버에 접속됩니다.

    • 서버 접속용 공인 IP 확인: 콘솔 > 서버 > 서버 리스트에서 서버 선택 후 내용보기에서 포트 포워딩 정보의 ‘서버 접속용 공인 IP’
    • 외부 포트 번호 확인: 콘솔 > 서버 > 서버 리스트에서 서버 선택 후 내용보기에서 포트 포워딩 정보의 ‘외부 포트’

    ③ 사용자 정보 및 암호를 입력하고 로그인합니다.

    • login as: root
    • password: 위에서 확인한 관리자 비밀번호

    ④ 로그인 후에는 root 계정의 비밀번호를 기억할 수 있는 비밀번호로 변경할 것을 권장합니다.
    'passwd root' 명령어를 입력한 후 새 비밀번호를 입력합니다.

    Jenkins 프로세스 관리

    다음 명령어로 Jenkins 프로세스를 관리할 수 있습니다.

    • Jenkins 프로세스 기동 및 중지
    shell> service jenkins start
    shell> service jenkins stop
    
    • Jenkins 프로세스 확인
    shell> service jenkins status
    

    이 문서가 도움이 되었습니까?

    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.