GitLab의 Webhook
을 이용해 Jenkins job 실행을 트리거하는 동작을 테스트하던 중이었다.
로컬에 설치한 Jenkins로 훅킹되는지 확인하려고 했으나 localhost 로의 훅킹을 지원하지 않았다.
Jenkins 서버를 구성해야하나 싶었는데 로컬에 훅킹할 수 있는 방법이 없을까 찾아보니 ngrok
이라는 것을 알게 되었다.
ngrok
은 방화벽 넘어 외부에서 로컬에 접속 가능하게 하는 터널 프로그램이다.
ngrok을 다운로드 받아 압축을 푼다. 그리고 HTTP 서버를 외부에 열기 위해 파일 경로에서 아래 명령어를 실행하면 다음과 같이 나타난다.
./ngrok http 4000
터미널 창 전체가 ngrok
의 접속 상태를 알 수 있는 대시보드처럼 나온다.
http://localhost:4000 에 대한 임시 도메인(http://14076782.ngrok.io, https://14076782.ngrok.io)과 연결해 터널을 열어준 것을 볼 수 있다.
외부에서 해당 도메인으로 접근하면 정상적으로 연결된다.
추가로 해당 도메인에 접근한 요청 로그가 남는다. 터미널 상의 Web Interface 주소(localhost:4040)로 접근하면 아래와 같이 요청 및 상태에 대해 웹에서 확인할 수 있다.
ngrok 덕분에 로컬 환경에서 Webhook 테스트를 쉽게 할 수 있었다.