jenkins에 Agent 설치 하기!
jenkins 설치는 Install and Configure Jenkins on Amazon AMI (Part II)를 참고 하면 쉽게 할 수 있습니다.
설치의 간단한 명령어만 정리 해두겠습니다.
# JDK 1.8 이상 설치
# 기존 1.7 설치가 되어 있을 경우 삭제
$ sudo yum remove java-1.7.0-openjdk
$ sudo yum install java-1.8.0
# 업데이트 진행
$ sudo yum update -y
# jenkins repo 추가
$ sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
# jenkins key를 추가해서 설치가 가능하도록 설정
$ sudo rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key
$ sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
# jenkins 설치
$ sudo yum install jenkins -y
# 기본적으로 실행시 8080 port를 이용해서 기동합니다.
# port를 변경하고 싶으면, /etc/sysconfig/jenkins (/var/default/jenkins) 에서 JENKINS_PORT="8080" 을 변경하세요.
# jenkins 실행
$ sudo service jenkins start
# 부팅시 자동 실행 설정
$ chkconfig jenkins on
# 또는
$ systemctl start jenkins.service
$ systemctl enable jenkins.service
# 최초 웹 화면에서 비밀번호를 넣으라고 하면 다음의 값을 확인해서 넣어줍니다.
$ sudo cat /var/lib/jenkins/secrets/initialAdminPassword
# 설치는 기본적으로 권장되는 설치를 추천합니다.
Agent 서버 설정 진행
Agent는 물리 서버로 구축하였습니다.
EC2 인스턴스를 생성하였고, Jenkins Main 서버와 22번 포트가 통신이 가능하도록 설정하였습니다.
agent에는 기본적으로 jdk 1.8 이상이 설치 되어 있어야 합니다.
$ sudo yum install java-1.8.0
또한 보안사항으로 비밀번호를 이용하지 않고, pem 파일을 이용해서 접근만이 허용되어 있습니다.
AWS Linux Instance 에 사용자별 Key Pair 생성 후 접속하기를 참고해서 키를 생성하고 설정하였습니다.
이 부분도 간단한 명령어만 정리하면 다음과 같습니다.
# root 권한에서 진행
# jenkins 계정 생성
$ adduser jenkins
# jenkins 사용자로 전환
$ su - jenkins
# HOME 디렉토리에서 다음을 진행합니다.
# .ssh 디렉토리 생성 & 접근 권한 설정
$ mkdir .ssh
$ chmod 700 .ssh
# 키 관리 파일 생성
$ touch .ssh/authorized_keys
$ chmod 600 .ssh/authorized_keys
# 키생성 - 비밀번호는 입력하지 않아도 됩니다.
$ ssh-keygen
# .ssh 에 id_rsa.pub 파일 내의 값을 authorized_keys에 저장합니다.
$ cat id_rsa.pub >> .ssh/authorized_keys
# id_rsa 파일을 값을 복사 합니다. 그리고 접속하려는 PC에서 다음과 같이 접속하여 사용합니다.
# ssh -i 파일명 아이디@서버주소
$ ssh -i id_rsa jenkins@10.0.0.1
jenkins 에서 agent 설정
먼저 다음 플러그인이 설치 되어 있는지 확인하고, 설치가 안되어 있으면 설치하여야 합니다. (권장 설치시 설치가 되어 있습니다.)
이후 Jenkins 관리
> 노드 관리
를 선택합니다.
왼쪽 메뉴에서 신규 노드를 선택합니다.
그리고 물리 서버이므로 Permanent Agent
를 선택하고 이름을 입력합니다.
그리고 상세 내용을 입력합니다.
주요 내용은 다음과 같습니다.
- Name : agent로 사용할 node의 이름
-
of executors : 현재 agent node의 동시 job 실행 개수
- Remote root directory : remoting.jar 파일이 위치해야 할 곳
- Launch method : agent로 사용할 곳의 접속정보(여기서는
Launch agents via SSH
를 선택)
Credentials 설정을 위에서 설정한 pem 파일을 이용하게 합니다.
Credentials에서 ADD 버튼을 선택하면 다음과 같은 팝업이 뜹니다.
여기서 Private Key > Enter directly 에서 아까 만든 pem 파일을 붙여 넣으면 됩니다.
이후 agent를 저장하고 연결 테스트를 합니다.
접속시 .ssh/known_hosts 설정이 안되었다는 문제가 발생할 수 있습니다. 기본 설정으로 되어 있을 경우 /var/lib/jenkins/.ssh/known_hosts 에 추가를 해야 합니다. ssh 명령어를 이용해서 접근하면 /home/계정/.ssh/known_hosts 에 해당 서버 정보가 추가되니 복사하여서 처리 하세요.
상태를 확인하면 다음과 같이 보이게 됩니다.