Jenkins(6)
-
Jenkins sudo: not found Build step 'Execute shell' marked build as failure 권한 에러 해결하기
Jenkins로 docker 이미지를 빌드하고 hub에 푸시하는 과정을 .sh 파일 하나를 실행해서 한꺼번에 수행하려고 합니다. 하지만 Jenkins가 ec2 서버에서 sudo 명령어를 실행하려면, Jenkins에게 따로 권한을 줘야합니다. 권한을 주지 않고 빌드하면 sudo: not found Build step 'Execute shell' marked build as failure 같은 에러가 납니다. 그래서 root 계정으로 들어가서 /etc/sudoers 파일을 수정해줍시다. su # 루트 계정으로 접속하기, password 를 모른다면 초기 설정해주시면 됩니다. cd /etc # etc 폴더로 들어가서 vi sudoers # root 권한으로 sudoers 파일 열기 sudoers 파일로 들어가..
2021.04.30 -
Springboot Gradle + AWS EC2 + Jenkins + Docker로 배포까지(5) : 슬랙으로 Jenkins 알림 받기
이제 Jenkins와 github을 연동하고, springboot를 빌드했으며, 이를 docker 이미지로 만들어 hub에 push하는 과정까지 모두 마쳤습니다. 💪 이렇게 Jenkins에게 개발자가 해야하는 일을 나눠주고 나니, 일을 잘하고 있는지, 에러는 나지 않는지 불안해졌습니다. 수시로 들어가서 확인할 수도 없는 노릇이니 Jenkins가 일을 잘 하고 있는지 알림을 받아 보겠습니다. 1️⃣ 슬랙에 Jenkins CI 설치 앱에서 Jenkins CI를 검색해서 jenkins 알림을 받을 채널을 설정합니다. 앱 추가를 누르면, Jenkins에 슬랙 알림을 추가하기 위한 단계들이 상세하게 설명되어있습니다. 본 페이지에서는 토큰을 복사해서 잘 보관해두면 됩니다. 2️⃣ 슬랙 플러그인 다운로드, 슬랙 토큰..
2021.04.30 -
EC2 프리티어에서 Jenkins가 돌아가지 않는 문제 해결하기
❗️앗 프리티어 사양이 코딱지다~! 🥲 프리티어 계정은 램이 1GB입니다. jenkins를 돌리기엔 매우 나약나약한.....나약한.....그래서 처음에 jenkins 설정을 세팅하고 빌드를 했는데 ec2 터미널이 먹통이 되더니 아무것도 되지 않았습니다. ec2를 껐다 켜니까 되길래 다시 빌드했더니 다시 먹통이었고, 처음에는 인바운드 규칙때문인가 해서 위치 무관으로도 바꿔봤는데 해결되지 않았습니다. 그러다가 우연히 cpu 사용량을 보게 되었는데 그래프가 날뛰고 있어서 이슈에 남겨두었습니다. 하지만 돈이 없는 학생은 Jenkins 하나를 쓰기 위해 돈을 지불할 수 없습니다. 그래서 절박하게 많은 검색을 한 결과, swap 으로 해결할 수 있었습니다. SWAP 메모리❓ RAM이 부족한 경우, HDD의 공간을 ..
2021.04.30 -
Springboot Gradle + AWS EC2 + Jenkins + Docker로 배포까지(3) : Jenkins gradle 아이템 생성 및 설정하기
1️⃣ 아이템 생성, 설정하기 이전 포스팅에서 아이템을 만들기 위한 사전 준비가 완료되었습니다. 이제 새로운 item을 눌러서 아이템을 만들어봅시다. freestyle project로 원하는 이름의 프로젝트를 생성한 뒤, 소스 관리에서 아까 Credential에 추가한 깃헙 키를 적용해줍니다. 1번째 방식인 깃허브 아이디/비번 입력 대신 ssh 키로 인증하는 것입니다. 저는 master 브랜치에 push 하는 이벤트가 발생할 때 빌드하도록 설정해두었습니다. Build Invoke Gradle script를 선택하고 gradle 버전은 이전 포스팅에서 미리 저장한 gradle로 설정해줍니다. 2️⃣ 빌드 테스트해보기 이제 대시보드로 들어가서 Build Now 를 하고 콘솔 출력에서 success를 확인해봅..
2021.04.30 -
Springboot Gradle + AWS EC2 + Jenkins + Docker로 배포까지(2) : Jenkins와 Github 연동하기
이제 ec2에 jenkins를 쓸 수 있는 준비를 완료했으니, 이제는 github과 Jenkins를 연결해보겠습니다. 연동하는 방법에는 두 가지가 있습니다. github 아이디/비밀번호로 접속 ec2 ssh 공개키/비밀키로 접속 여기서는 보안 상의 이유로 두 번째 방법인 ssh로 연결하겠습니다. 연동하는 과정은 다음과 같습니다. 1. EC2에서 ssh 키 생성 2. Github에서 ssh 키, webhook 등록 3. Jenkins에 Credential ssh 키 등록 4. Gradle 버전 설정하기 1️⃣ EC2 ssh 키 생성하기 docker-compose 를 실행하고 나서 ls -a 로 폴더를 보면 .ssh가 생성되어 있습니다. .ssh 폴더로 들어가서 ssh 키를 생성해주는 명령어를 실행해주세요...
2021.04.30 -
Springboot Gradle + AWS EC2 + Jenkins + Docker로 배포까지(1) : EC2에 Docker 이미지로 Jenkins 설치하기
아직 ec2에 docker, docker-compose 가 설치되어있지 않다면 다음 포스팅을 먼저 참고해주세요! 2021.04.30 - [🌱 Develop/devOps] - 🐳 EC2에 docker , docker-compose 설치하기 🐳 1) EC2에 docker 이미지로 Jenkins 설치하기 환경: ec2 프리티어 / linux ec2 자체에 jenkins를 바로 설치할 수도 있지만, docker image로 jenkins를 받아와서 사용해보려고 합니다. 일단 mkdir jenkins-dockerfile 로 폴더를 만들어서, 이 폴더 밑에 Dockerfile을 하나 생성해주세요. jenkins 최신 이미지를 받아오는 Dockerfile입니다. 📂 home/ec2-user/compose/jenkin..
2021.04.30