목록DevOps/CICD (14)
Dazzling 개발 노트
이전 게시글들은 모두 성공한 내용을 바탕으로 정확한 방법에 대해 작성했다. 그렇지만 필자는 CI/CD를 구축하면서 파이프라인의 단계마다 오류가 발생했었다. 보이는 바와 같이 단계마다 발생한 문제를 해결하며 여러 시도 끝에 배포를 마칠 수 있었다. 처음 Success가 떴을 때 소리를 질렀다 ㅎㅎ 단계별로 발생했던 오류와 해결 방법을 적어보도록 하겠다. Error loading key "" : error in libcrypto 이 오류는 pem key의 내용 때문에 발생하는 오류이다. Jenkins에 Credential 등록 시 pem의 내용을 -----BEGIN RSA PRIVATE KEY-----, -----END RSA PRIVATE KEY-----까지 입력해주어야 한다.
이전 게시글들은 모두 성공한 내용을 바탕으로 정확한 방법에 대해 작성했다. 그렇지만 필자는 CI/CD를 구축하면서 파이프라인의 단계마다 오류가 발생했었다. 보이는 바와 같이 단계마다 발생한 문제를 해결하며 여러 시도 끝에 배포를 마칠 수 있었다. 처음 Success가 떴을 때 소리를 질렀다 ㅎㅎ 단계별로 발생했던 오류와 해결 방법을 적어보도록 하겠다. unauthorized: incorrect username or password docker hub에 로그인하는데 계정 정보가 잘못되어 발생한 오류이다. 필자는 username에 docker가 아닌 github username을 작성하여 오류가 발생했다. 변경하니 잘 해결되었다.
이전 게시글들은 모두 성공한 내용을 바탕으로 정확한 방법에 대해 작성했다. 그렇지만 필자는 CI/CD를 구축하면서 파이프라인의 단계마다 오류가 발생했었다. 보이는 바와 같이 단계마다 발생한 문제를 해결하며 여러 시도 끝에 배포를 마칠 수 있었다. 처음 Success가 떴을 때 소리를 질렀다 ㅎㅎ 단계별로 발생했던 오류와 해결 방법을 적어보도록 하겠다. Could not resolve org.springframework.boot:spring-boot-gradle-plugin:3.2.0. 해당 오류는 Gradle 버전, Java 버전, SpringBoot 버전 등과 관련된 오류였다. build.gradle에서 다음과 같이 버전을 설정해 주었다. - Java : 11 - Springframework : 2.6..
이전 게시글들은 모두 성공한 내용을 바탕으로 정확한 방법에 대해 작성했다. 그렇지만 필자는 CI/CD를 구축하면서 파이프라인의 단계마다 오류가 발생했었다. 보이는 바와 같이 단계마다 발생한 문제를 해결하며 여러 시도 끝에 배포를 마칠 수 있었다. 처음 Success가 떴을 때 소리를 질렀다 ㅎㅎ 단계별로 발생했던 오류와 해결 방법을 적어보도록 하겠다. connect: permission denied 해당 오류는 권한과 관련된 문제였다. 권한을 줘서 해결했다. sudo groupadd docker sudo usermod -aG docker $USER newgrp docker sudo chmod 777 /var/run/docker.sock sudo chown root:docker /var/run/docker..
이전 게시글들은 모두 성공한 내용을 바탕으로 정확한 방법에 대해 작성했다. 그렇지만 필자는 CI/CD를 구축하면서 파이프라인의 단계마다 오류가 발생했었다. 보이는 바와 같이 단계마다 발생한 문제를 해결하며 여러 시도 끝에 배포를 마칠 수 있었다. 처음 Success가 떴을 때 소리를 질렀다 ㅎㅎ 단계별로 발생했던 오류와 해결 방법을 적어보도록 하겠다. docker: not found 해당 오류는 Jenkins에서 docker 작업을 수행하려 하는데, docker가 설치되어 있지 않으니 명령어를 찾을 수 없어 발생한 문제였다. Jenkins는 docker로 실행되지 않지만, WAS에 배포를 위해 docker가 필요하다. Jenkins, WAS 서버 모두 docker가 설치되어 있어야 한다는 점에 유의하자.
CI/CD를 구현할 때 GitHub Webhooks를 설정하면서 발생했던 문제들과 해결 방법을 정리해보겠다. 해당 문제들은 Jenkins와 GitHub를 연동하면서 발생한 것임을 인지하고 읽어보면 이해가 쉬울 것이다. HTTP 502 502 코드는 Bad Gateway 에러 응답 코드이다. 서버나 게이트웨이나 프록시 서버 역할을 하면서 업스트림 서버로부터 유효하지 않은 응답을 받았다는 것을 의미한다. 일단 첫 번째로 Jenkins의 서버 방화벽에서 포트가 열려있는지 확인한다. GitHub에서 Jenkins로 요청을 줄 때 Jenkins의 8080 포트가 열려있지 않으면 요청을 받을 수 없다. 방화벽과 포트 설정하기 https://heni.tistory.com/24 나는 방화벽을 통해 포트를 열어주었고, ..
Slack은 모니터링을 위해 아주 간편하고 유용한 도구이다. Jenkins와 Slack을 연동해 build 성공/실패를 알리는 알림을 설정해 보겠다. 사실 지난 게시글을 연결해서 보았다면 중간중간에 slack 설정을 이미 많이 보았을 것이다. 이 게시글에서는 slack이 연동된 부분을 집중해서 설명하면서 연동 방법을 다루도록 하겠다. 1. Slack 워크스페이스에 Slack 앱 추가 Access Key를 발급받는 방법을 다루는 게시글에서 언급한 내용이지만 한 번 더 설명한다. Slack workspace에서 앱 > Jenkins 추가 > Jenkins 앱을 채널에 추가한다. 다음 화면의 3단계에서 표출되는 통합 토큰 자격 증명 ID를 복사하여 별도로 저장해 둔다. Slack 워크스페이스가 없는 경우 생성..
Jenkins - GitHub - Docker 연동을 위한 기본적인 설정은 끝났다. 여기서 한가지 문제가 있는데 GitHub에서 Webhooks를 날릴 때, 특정 branch 가 아닌 모든 branch에 push가 일어난 경우에 webhooks가 발생된다. 이게 문제가 되는 이유는 필자는 main branch를 기준으로 배포하도록 설정해 두었는데,다른 개발 branch에서 push가 되는 경우, webhook이 발생되어 배포가 진행된다.근데 main 기준에서는 변경 사항이 없으니 의미없는 과정이 진행된다는 것이다.개발을 하다보면 개발 branch 간의 push가 일어나는 경우가 많기 때문에 이 문제는 반드시 조치가 필요하다. GitLab에서는 해당 기능을 제공하지만, GitHub에서는 지원하지 않는 듯 ..