서론
지난번 포스팅한 Jenkins를 사용하는 글에서 다루었던 내용의 연장선이다. 로컬에서 개발한 서버를 빌드하고 배포하는 과정을 자동화시키기 위한 방법을 공부하고 파이프라인을 만들어 나가는 과정에서의 트러블슈팅에 대해 이야기하고자 한다.
트러블슈팅
지난번에 시도해 본 jenkins 설치방법은 docker를 이용하여 jenkins이미지를 생성하고 이것을 컨테이너화 시켜 ec2에 올려 사용하는 방법이었다. 이렇게 함으로써 aws 프리티어를 사용하여 가뜩이나 부족한 나의 조그마한 성능의 컴퓨터에 jenkins를 깔고 설정해주고 하는 등의 비효율적인 행동을 줄일 수 있다고 판단했다. 하지만 빌드를 하는 과정에서 계속된 오류를 경험하였다. jenkins의 로그를 찾아보니 스크립트에서 작성한 docker명령어를 찾을 수 없어 빌드가 중지되었다. 그 이유를 찾아 헤매고 삽질을 했다. jenkins와 docker를 우분투에 따로 설치하여 jenkins가 가동될 때 docker를 사용할 수 있도록 권한을 바꿔보기도 하고, 이렇게 했을 때 내가 처음에 택한 방법과는 멀어지는 것 같아서, 다시 다 밀었다가 처음부터 차근차근 설정을 해보았다. 방법은 도커로 젠킨스 이미지를 만들 때 이미지 안에 도커를 같이 설치하고 그렇게 만들어진 이미지를 컨테이너화 시켜서 사용하면 실제 가동되는 jenkins에서도 도커를 사용할 수 있었다.
마치며
트러블 슈팅을 경험하고 잊어버리지 않기 위해 간단하고 빠르게 요약버전으로 작성해 보았다. 더 자세한 트러블 슈팅과 ci/cd 구축 포스팅을 정리해서 올리겠다. 인프런에서 일프로님의 데브옵스 강의도 듣고 전반적인 흐름을 익히고 빌드와 배포 운영 등 어떠한 과정들이 이루어지고 필요한지 자세히 알게 되었다. 그러다 보니, 문제가 발생했을때 어떤 부분을 더 집중해서 수정을 해야 할지 알 수 있는 것 같다. 처음에 무작정 블로그와 공식문서등 파편적인 정보를 찾아가며 공부했던 때와는 시야가 달라진 것 같은 기분에 조금씩이라도 성장하고 있구나 생각이 든다.