$ sudo apt update
# 자바 설치 (Jenkins 구동을 위해)
$ sudo apt install default-jre
$ sudo apt install default-jdk
# Jenkins 설치
$ cd /tmp && wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
$ echo 'deb https://pkg.jenkins.io/debian-stable binary/' | sudo tee -a /etc/apt/sources.list.d/jenkins.list
$ cd
$ sudo apt update
$ sudo apt install jenkins
# Jenkins 시작
$ sudo systemctl start jenkins.service
$ sudo systemctl enable jenkins.service
# port enable
$ sudo ufw allow 8080
$ sudo ufw allow 22
$ sudo ufw enable
$ sudo ufw status
http://AWSIP:8080/ 으로 접속 (진짜 IP 입력하라는 뜻임)
화면이 뜨면 성공
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
해당 명령어 입력시 나오는 pw를 위의 Administrator password 창에 입력
그냥 default 값으로 두는걸 추천한다. 이렇게 URL 설정했다가 나중에 다시 원상복구했음.
npm install mocha --save-dev
npm install supertest --save-dev
const request = require("supertest");
const app = require("../app");
describe("GET /", () => {
it("Hello, Kangaroo라는 응답이 와야한다.", () => {
request(app).get("/").expect("Hello, Kangaroo");
});
});
module.exports = app;
./node_modules/.bin/mocha ./test/mock-test.js
#!/bin/sh
./node_modules/.bin/mocha ./test/mock-test.js --exit
windows는 git bash에서 한다.
chmod +x script/test
./script/test
ssh-keygen -t rsa -b 4096 -C "email@email.com"
맨 밑줄에서 저장된 위치 확인 가능
cat /root/.ssh/id_rsa.pub
저장된 위치에서 cat 명령어를 실행한 후 나온 내용을 복사한다.
프로필사진 -> settings -> SSH and GPG keys로 간다.
new SSH key를 누른 후 복사해둔 내용을 붙여넣기 해준다.
내 프로젝트 code를 SSH로 다운로드 받는 command를 복사.
git clone git@github.com:~~.git
클론 완료.
Download now and install after restart 클릭
우리 프로젝트에서 사용중인 NodeJS 버전 선택 -> save
credintials에서 github 정보 입력 (private일 경우)
저장 후 빌드 눌러보고 잘 되는지 확인
github-webhook 뒤에 /를 안붙여주면 에러난다. 붙여주어야함
sudo su - jenkins
ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub
여기서 출력되는 결과물을 복사한다.
vi ~/.ssh/authorized_keys
아까 복사해둔 결과물을 맨밑에 추가하고 저장해준다.
chmod 700 ~/.ssh
chmod 600 ~/.ssh/*
ssh ubuntu@NODE.APP.SERVER.IP
여기서 제대로 접속이 되면 완벽. 안되었을 경우 구글에 물어보자.
/script/deploy 파일 추가 (확장자 없음)
#!/bin/sh
ssh ubuntu@node-server-ip<<EOF
cd ~/github-folder
sudo -s
git pull origin master
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash
. ~/.nvm/nvm.sh
nvm install 16.3.0
npm install
npm install -g pm2
pm2 restart app.js
exit
EOF
해당 스크립트는 내 젠킨스 서버에서 -> 노드 서버로 ssh 접속 후에 git pull을 받아서 pm2를 restart해주는 과정을 담으면 된다.
./script/deploy 추가