DevOps

이미 바인딩 되어있는 DNS VIP를 교체할 때 테스트하는 방법

0. 문제 이번 글에서는 DNS VIP를 교체하는 시나리오에서 신규 VIP를 테스트하는 방법에 대해 소개하려고 합니다. DNS VIP(Virtual IP)는 DNS에서 사용되는 가상 IP 주소를 의미합니다. 이러한 VIP는 DNS에 바인딩되어 실질적인 '단일 창구 역할'을 하며 로드 밸런서같은 역할을 할 수 있는데요. 아래와 같이 특정 도메인에 대한 트래픽이 여러 서버로 리디렉션되는 상황을 고려할 때, VIP는 중요한 개념이 됩니다. 그런데 만약 신규 서버를 발급받고, 신규 서버들을 바인딩하는 새로운 VIP를 기존 DNS에 연결하려면 어떻게 해야할까요? 물론 이 상황에서 중요한 가정은 기존 서버들에 들어오던 요청을 그대로 받으면서 테스트를 진행해야 한다는 것입니다. 다시 말해, DNS에 신규 VIP를 무..

2023.06.25 게시됨

DevOps

Groovy를 이용해서 Jenkins 설정 자동화하기(사용자 생성, 고정 API Token 입력)

0. Docker 환경에서 Jenkins 서버 띄우기 이전 글[Jenkins, Docker를 통한 CI 환경 구축과 Slack 알람 받기]에서 도커 환경에서 Jenkins 서버를 띄우는 방법에 대해 설명했습니다. 그런데 이 글에서는 DockerHub에서 제공하는 Jenkins lts 버전 이미지를 Pull 받아 사용했었는데요. 사실 위 글에서 사용한 이미지에는 어떤 커스텀화 된 설정들이 없기 때문에 최초 서버 접속 시 아래와 같이 사용자의 비밀번호를 입력하고 플러그인 설치를 묻는 과정, 그 후에 계정을 설정하는 등의 과정을 수작업으로 진행해야 했습니다. 1. Groovy 파일을 이용해서 사용자 자동 생성 Jenkins Docker의 공식 깃허브를 보면, 기본 Jenkins 이미지에 사용자가 원하는 기능을..

2023.01.18 게시됨

DevOps

Jenkins, Docker를 통한 CI 환경 구축과 Slack 알람 받기

1. 소개 Jenkins는 CI 환경을 구축하는 데 있어 대표적인 사용하는 툴로써 정말 많은 서비스, 그리고 저희 회사에서도 사용하는 소프트웨어입니다. 사실 Jenkins 이외의 CI 툴도 많지만, Jenkins는 자바 기반으로 Window, Mac, Linux 등의 대부분 OS에서 동작한다는 점, 웹 인터페이스에서의 Configuration이 가능하고 많은 Plugin들을 지원해줌으로써 확장성이 좋은 장점 등이 있기 때문에 많은 서비스들에서 이용하고 있는 것 같습니다. 이번 포스팅에서는 직접 Docker를 사용해 프로젝트를 진행하는 가상 환경을 만드는 것부터, 그 안에 Jenkins CI 환경 구축하고 Slack에 해당 환경의 동작을 알림으로 받을 수 있는 기능까지 붙여보는 과정을 해보면서 Jenkin..

2022.09.21 게시됨

DevOps

WSL2, Docker desktop을 사용할 때 네트워킹 실패 문제(--net=host Option 사용 시 주의할 점)

1. 문제 WSL2 환경에서 --net=host 옵션을 바탕으로 컨테이너를 실행하게 되면, 로컬 환경에서 해당 컨테이너(서비스)의 포트로의 접근이 불가능합니다. 이 문제에 대해 직접 실험해보기 위해 아래와 같이 httpd 이미지를 pull 한 후, --net=host 옵션을 바탕으로 컨테이너를 동작시켜봅니다. $ docker pull httpd $ docker run -dit --name my-app --net=host -v "$PWD":/usr/local/apache2/htdocs/ httpd 그리고 아래와 같은 명령어로 컨테이너 동작을 확인하고 Request를 보내보면, 앞서 언급한 문제를 확인할 수 있습니다. 마찬가지로 eth0:8080에 대한 요청으로 보내도 동일한 문제가 발생합니다. 2. WSL..

2022.09.14 게시됨