-
Notifications
You must be signed in to change notification settings - Fork 3
Jenkis 도입하기
Next api 서버에 대한 ci/cd를 위해 젠킨스를 이용하려고 한다.
먼저 NCP에서 서버를 할당 받자.
서버를 할당 받았으면,
포트포워딩을 통해 - SSH로 외부 접속이 가능하도록 만들자.
agc
젠킨스는 기본적으로 8080포트를 사용하므로 8080포트도 열어두고,
외부에서 접근을 위해, 80번 포트와, 3000번 포트도 열어둬야 될까?
서버를 할당하고, 현재 사용하고 있는 포트들을 알기 위해 nmap을 설치해보자.
apt-get install nmap
설치가 완료되었으면 , nmap localhost를 쳐보자.
22번 포트가 ssh로 열려 있음을 알 수 있다.
항상 무언가 설치할 때 패키지 매니저 업데이트 apt-get udpate 잊지말자.
jenkins를 설치하기 전, jenkins 구동에는 java가 필요하므로, java를 설치하자.
apt-get update
apt-get install openjdk-8-jdk 로 jdk를 설치하자.
jenkins 설치
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
jenkins 설치가 완료되면,
sudo vim /etc/default/jenkins로 jenkins 포트를 확인할 수 있다.
보통 8080번으로 설정되기 때문에,
서버 방화벽도 8080번으로 열어 둔 것
systectl로 jenkins를 실행하자.
sudo systemctl start jenkins,
아무런 메세지 안나오니까 status로 구동되고 있는지도 확인 해라
이제 어디서든
http://<서버 IP>:8080으로 젠킨스에 접속할 수 있다.
젠킨스도 일종의 웹서버인듯
접속하면, unli
unlock되어 있다. 내 서버에서 위에 명시된 경로로 가면 암호가 있으니, 찾아보고 입력하자
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
뭣도 모르니까, 추천 플러그인들을 설치해보자
끝나고, jenkins 실행화면으로 넘어가장
github push가 발생하면, jenkins가 자동 빌드를 할 수 있도록,
사전작업을 해보장
우리 event-collector의 레포지토리는 public이므로
중간 단계 스킵한다잉
새로운 item을 추가하면서
git 레포지토리를 등록해주면 된다.
[상태] 를 통해 git과 제대로 연결되었는지 확인 할 수 있음
[Jenkins] - [플러그인 관리] - [node js 검색]
그런데, 우리의 node 프로젝트를 run하기 위해서, jenkins에 nodejs 플러그인을 설치해야함
따로 서버에 node 설치를 안해도, 돌아간다.
그렇다고 jenkins가 node를 대신 설치해 주는 것도 아님,
webpack devServer처럼 메모리 상에서 구동되는 것은 아닌가 싶다.
여튼 node js 플러그인을 설치하고, 버전을, 내 로컬과 같은 것으로 맞춰준다.
이제 젠킨스에 nodejs 플러그인이 딸려왔다.
- ㄹㅇ 젠킨스는 일종의 webpackDevServer와 같은 것이 아닐까
- 젠킨스 본체에 여러 플러그인을 설치해 두고,
- 내 서버에는 node가 없는데, 젠킨스에 node 플러그인만 추가해도, node 프로젝트가 동작하는 것을 봐서
- 깃헙에서 파일을 따온 후, 젠킨스 프로세스 안의 메모리에서 돌아가는 것이 아닐까 싶다.
내 event Collector 노드에 적용을 해야겠지.
[event collecor 아이템 클릭] - [ 구성 ] - [build] 란에
-[execute node] 를 선택해서 버전을 명시해주자.
-[exeucte shell]을 선택해서, 터미널에 입력할 명령어를 쳐주자
이제 환경변수를 세팅해볼까
젠킨스는 웹팩데브서버 처럼 돌아가는 것으로 짐작하는 두번째 이유가.
실제로 서버에 존재하는 .env파일을 읽지 못한다는 것이다.
git 레포지토리에 있는 파일들을 메모리에 올려두고, 그 메모리 상에서 구동되는 것이 아닌가 싶다.
역시 prisma .env 파일을 못읽음
여튼 환경변수를 셋팅해주기 위해서,
[jenkins 관리] - [노드관리] - [노드의 환경설정 아이콘 클릭]
설정
끝
prisma.client가 생성될 때, 환경변수가 잘 인식된다잉
이제 push할 때마다, 자동으로 빌드되게 만들어보까?