-
ec2에서 jenkins 빌드서버 만들어보기 3편AWS 2023. 4. 10. 15:22
무료로 진행하고 싶다면 https://labs.play-with-docker.com/ 에서 하셔도 됩니다.
다른노드에 젠킨스를 각각 1개씩 2개를 올려야하는데, play with docker에서는 너무 느리고, 젠킨스 이미지 자체가 다운받아지지 않는 현상이 있어서, EC2 2대로 실습했습니다.
1편 : https://xodns.tistory.com/100
2편 : https://xodns.tistory.com/101
EC2를 하나 더 만들고 젠킨스를 하나 올려준다.
master-slave 형태의 노드를 구성해보자.
이렇게 2개 만들고 jenkins를 설치한다.
master 에 가서 젠킨스관리 -> Nodes를 클릭한다.
New Node를 클릭한다.
create를 클릭한다.
이렇게 하고 저장을 한다.
slave를 클릭해보자.
Unix의 명령어를 복사해서, slave의 EC2로 가자.
sudo docker exec -it 컨테이너ID /bin/bash
를하고, 복사한 명령어를 붙여넣어준다.
다만 이렇게 하면 nohup 과 & 가 없어서 백그라운드 실행이 아니다.
curl -sO http://3.38.195.226:8080/jnlpJars/agent.jar nohup java -jar agent.jar -jnlpUrl http://3.38.195.226:8080/computer/slave/jenkins-agent.jnlp -secret 03cb1b797e87fa0556619ad5e0df28223919ba77a1cf3eb73701a607fdb97f2c -workDir "/jenkins/slave" &
를 해서 백그라운드 실행을 하게 한다.
아웃풋은 nohup.out 파일에 써진다.
이러고, master에 가서 노드연결을 확인한다.
잘 연결되었다.
master에서 새로운 아이템을 하나 만들어주고 이번엔 push 가 되면 master가 받아서 slave에서 빌드하는 방식을 해보겠다.
다른건 2편처럼 하면 되는데 여기만 바꿔주면 된다.
노드가 정상적으로 연결 되었으니 master에서 slave가 나온다.
웹훅걸때 주소는 마스터 주소를 넣어주고 깃허브에 푸시를 하나 해보면 이런 결과가 나온다.
master에서 결과가 보인다.
마스터에서 빌드한게 아니고, slave에서 빌드를 했기 때문에 slave의 젠킨스 내부에 스프링 관련 파일이 있는것이다.
다음은 Jenkinsfile에 대해 알아보겠다.
'AWS' 카테고리의 다른 글
aws ec2 인스턴스 생성에 대한 고찰 (0) 2023.07.26 github actions, kustomize와 argocd를 EKS에서 kafka랑 사용하기 8부 (0) 2023.04.08 github actions, kustomize와 argocd를 EKS에서 kafka랑 사용하기 7부 (0) 2023.04.05 github actions, kustomize와 argocd를 EKS에서 kafka랑 사용하기 6부 (0) 2023.04.05 github actions, kustomize와 argocd를 EKS에서 kafka랑 사용하기 5부 (0) 2023.04.03