라즈베리파이에 Jenkins를 설치하여 테스트 자동화 환경 구성
라즈베리파이로 할 수 있는 것들은 무궁무진합니다. 저의 경우는 회사에서 Test Automation에 라즈베리파이를 응용하고 있는데요. 라즈베리파이에 Jenkins를 설치하여 Git에 Pull Request 또는 Merge가 이뤄지는 시점에 서버에서 빌드된 패키지를 라즈베리파이로 자동으로 전송합니다. 라즈베리파이는 수신한 번들을 Target Device에 자동으로 다운로드한 후 테스트를 자동으로 수행하고 결과를 리포팅하도록 구성하였습니다.
라즈베리파이는 미니 컴퓨터이면서도 GPIO, PWM, I2C, SPI, UART 등의 I/O 채널들이 있기 때문에 Target Device의 Power Control, UART Control 등을 수행할 수 있기 때문에 별도의 장치를 구입할 필요가 없어서 아주 편리합니다. 일반 PC에서는 간단한 GPO 제어만 하려고 하여도 별도의 장비가 필요하기 때문입니다. 아주 단적인 예로 Total Phase 사의 Aardvark 장비 한 대의 가격으로 라즈베리파이를 여러 대 구입할 수 있습니다.
라즈베리파이에 Jenkins 설치하는 방법
서론이 조금 길었네요. 아무튼 라즈베리파이에도 Jenkins를 설치할 수 있고 아래의 방법으로 설치를 수행하시면 됩니다.
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install openjdk-11-jre
$ wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
$ sudo sh -c 'echo deb https://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
$ sudo apt-get update
$ sudo apt-get install jenkins
여기서 주의해야 할 점은 jdk 버전을 너무 최신으로 설치하면 jenkins가 제대로 동작하지 못하는 경우가 발생할 수 있습니다. 이 때문에 가급적 openjdk-11-jre 버전으로 설치해주시기 바랍니다.
위의 수행 내용은 (1) jenkins 키값 추가, (2) jenkins 패키지 목록 추가, (3) jenkins 패키지 목록 업데이트 과정이 정상적으로 수행된 모습입니다.
패키지 설치가 완료되면 http://abc.def.ghi.jkl:8080 주소로 접속하면 나머지 설치를 이어갈 수 있습니다.
관리자 권한으로 /var/lib/jenkins/secrets/initialAdminPassword 파일을 읽어보면 그 안에 초기 admin password가 들어있습니다.
Install suggested plugins를 선택해서 설치를 계속 진행합니다.
트러블슈팅
1. apt-get update 시에 jenkins.io 패키지를 받아오지 못하는 경우
혹시라도 apt-get update 시점에 jenkins.io 패키지를 제대로 받아오지 못하는 경우는 있다면 apt 프락시 설정을 확인해보시기 바랍니다. 저의 경우는 /etc/apt/apt.conf.d 디렉터리 내부의 프락시 설정 외에도 etc/apt/apt.conf 파일에 추가적으로 프락시 설정이 되어 있어서 애를 좀 먹었네요.
2. 8080 포트로 설치 작업을 추가로 수행하였으나 설치가 완료되지 않는 경우
jre 버전이 11을 초과했는지 확인해보고 만약 11 버전보다 높을 경우 11 버전으로 다운그레이드 하시기 바랍니다.
끝맺음 말
이상으로 라즈베리파이에 jenkins 패키지를 설치하는 방법에 대해서 설명드렸습니다. 추가적으로 설치 시에 발생할 수 있는 트러블 슈팅 방법에 대해서도 다뤄보았습니다.
제 글이 도움이 되었다면 좋아요를 눌러주시면 감사하겠습니다.
이상입니다.
'Study > 라즈베리파이 공부' 카테고리의 다른 글
[라즈베리파이] Ubuntu 21.10에서 USB-to-Serial 안 잡히는 문제 해결 방법 (/dev/ttyUSB 파일이 생성되지 않음) (0) | 2021.11.02 |
---|---|
[라즈베리파이] 현재 시간 정보를 자동으로 가져와서 유지하는 방법 (1) | 2021.08.15 |
라즈베리파이에 FTP 서버 설정 (proftpd inactive 문제 해결 방법) (0) | 2021.04.21 |
[라즈베리파이] Your Computer Clock Is Wrong 해결 방법 (0) | 2021.03.19 |
[Raspberry Pi] Is it possible to run x86 or x86-64 binary on ARM machine like Raspberry Pi? (0) | 2021.02.02 |