2021.11.23
1. 먼저 배포 시나리오가 완성되면,
Github page: https://github.com/localtunnel/localtunnel
print-requests 옵션은 서버 요청 내용을 출력 해줍니다.
안녕하세요 치우 입니다.
현재 jenkins, fastlane, android 빌드가 자바 1.8만 되는게 아쉽네요.
당장은 괜찮아 보이는데 지속적으로 자바 11 을 확인 해봐야 할 듯 합니다.
어쨌든 오늘은 젠킨스 빌드를 슬랙에서 할 수 있도록 해보는 것이 목표 입니다.
일단 기본적인 설정은 끝났다고 생각하고,
젠킨스 빌드를 API가 가능 하도록 해야 합니다.
1. 먼저 배포 시나리오가 완성되면,
젠킨스 job의 설정에 들어가서 빌드 유발 (Build Trigger) 에서
빌드를 원격으로 유발 (Trigger builds remotely)를 체크하고 토큰 값을 지정 해준다.
2. 그러면 이제부터 http://JENKINS_URL/job/JOB_NAME/build?token=TOKEN_NAME
2. 그러면 이제부터 http://JENKINS_URL/job/JOB_NAME/build?token=TOKEN_NAME
으로 POST를 날려주기만 하면 배포가 실행된다.
하지만 이대로는 http 통신할 때 젠킨스 서버 authentication을 처리해줘야 하는데
하지만 이대로는 http 통신할 때 젠킨스 서버 authentication을 처리해줘야 하는데
귀찮다면 Build Authorization Token Root 플러그인을 사용하면
위에 지정해준 토큰만으로 접근할 수 있다.
3. curl -X POST http://JENKINS_URL/buildByToken/build?job=HTS_AND_1_DEV&token=start
슬랙 슬래시 커맨드 만들기
3. curl -X POST http://JENKINS_URL/buildByToken/build?job=HTS_AND_1_DEV&token=start
------
슬랙 슬래시 커맨드 만들기
2. 새로운 슬랙 앱을 만든다.
2. Manage Destribution -> Enable Feature -> 커맨드 라인 추가.
3. 커맨드 추가.
이제 봇을 내 채널에 등록하고 사용할 수 있어야 하는데... 아래 에러를 확인 중이다.
일단... 내부망, 외부망일 확률이 높다.
2월부터 시작된정책으로 token 을 사용 해야 하는듯 하다.
https://api.slack.com/changelog/2021-02-24-how-we-broke-your-slack-app
테스트 페이지
https://api.slack.com/methods/api.test
참고.
https://hojak99.tistory.com/554?category=760416
윗분의 글에 따르면, 로컬 IP, 내부망에서는 동작을 안하는듯 하다.
윗분은 ngrok(https://ngrok.com/) 이라는 프로그램을 사용했다. 따라 해보자.Secure tunnels to localhost
외부에서 로컬에 접속 가능하게 하는 터널 프로그램이다.
외부에서 로컬에 접속 가능하게 하는 터널 프로그램이다.
$ brew install --cask ngrok
이렇게 포워딩 URL을 사용하게 되면 외부에서도 로컬 개발 환경에 접근이 가능해집니다. 그런데 여기에서 유심히 봐야 할 항목이 있습니다. 바로 Session Expires 부분인데 시간 정보가 2시간에서 점차 줄어들고 있는 것을 확인할 수 있습니다. Ngrok은 기본 세션 타임이 존재하고 세션이 만료된 이후에는 다시 Ngrok을 실행해줘야 합니다. (재실행 시 포워딩 URL이 변경되므로 테스트 환경에서 다시 설정을 진행해줘야 합니다.)
세션을 계속 유지하고자 하는 경우 우선 https://dashboard.ngrok.com/user/signup 가입을 진행합니다. google이나 github 계정으로 쉽게 가입할 수 있습니다. 이후 로그인을 수행하여 authtoken을 확인합니다.
authtoken을 사용하는 방법은 크게 두 가지로 나뉩니다. Ngrok 실행 시 authtoken 값을 입력하여 실행하는 방법과 설정 파일(ngrok.yml)에 등록하여 사용하는 방법입니다.
$ ngrok http 9999 &
대시보드.
http://127.0.0.1:4040/inspect/http
Ngrok 사용법
이제는 Ngrok을 이용하여 직접 터널링을 해보겠습니다. 만약 로컬 서버 포트가 9999이라고 가정하면 아래의 명령어를 실행합니다.
이제는 Ngrok을 이용하여 직접 터널링을 해보겠습니다. 만약 로컬 서버 포트가 9999이라고 가정하면 아래의 명령어를 실행합니다.
세션을 계속 유지하고자 하는 경우 우선 https://dashboard.ngrok.com/user/signup 가입을 진행합니다. google이나 github 계정으로 쉽게 가입할 수 있습니다. 이후 로그인을 수행하여 authtoken을 확인합니다.
authtoken을 사용하는 방법은 크게 두 가지로 나뉩니다. Ngrok 실행 시 authtoken 값을 입력하여 실행하는 방법과 설정 파일(ngrok.yml)에 등록하여 사용하는 방법입니다.
$ ngrok authtoken 1aaaaaaaaaaqYTs_7gnBdATCRX4PVYuNvLSTQ
재실행 ( & 를 붙이면 백그라운드 실행이 된다. )
$ ngrok http 9999 &
대시보드.
http://127.0.0.1:4040/inspect/http
http://localhost:4040/status
별도의 종료 메세지가 없다. 프로세스 종료.
$ killall ngrok////
결론
ngrok 로 전달받은 URL을 슬랙 커맨드에 넣었더니 된다.
결국 외부망이 필요하다.
///
ngrok는 무료 계정의 경우 주소가 계속 바뀐다.
파워풀하고 편하지만, 사용하기 힘들다.
https://www.softwaretestinghelp.com/ngrok-alternatives/
외국에서도 ngrok 대신 사용할 만한걸 찾고 있다.
//// Localtunnel
대안으로 약간 느리지만 로컬터널을 사용 해보자. 무료 도메인을 제공 해준다.
Web page: https://localtunnel.github.io/www/Github page: https://github.com/localtunnel/localtunnel
Homebrew를 설치 후 아래 명령어를 통해 설치합니다.
| $ brew update $ brew install --build-from-source python $ brew install node $ node -v $ npm -v |
Quickstart
Install Localtunnel globally (requires NodeJS) to make it accessible anywhere:
npm install -g localtunnelStart a webserver on some local port (eg http://localhost:8000) and use the command line interface to request a tunnel to your local server:
lt --port 8000$ lt --port [포트번호] -subdomain [도메인 이름]
$ lt --port 9999 --subdomain jhchoo1004 --print-requests &
$ lt --port 9999 --subdomain jhchoo1004 --print-requests &
실행 ( & 를 붙이면 백그라운드 실행이 된다. )
이제 백그라운드 실행으로 변경한다.
백그라운드 실행시 프로세스 찾기
$ ps -e | grep node
$ ps -e | grep node
완료
ps. 테스트로 자주 프로세스를 내렸다 올리닌까 subdomain을 잃어버린다,
이미 선점하고 있다고 하면서 적용하지 못하는 문제가 발생한다.
로그인 없이 연결해서 발생하는 문제인듯, 일단 사용 해보자.
ps. 몇일 시간을 두고 테스트 해보니
ngrok, localtunnel 둘다 세션이 끊긴다. 테스트 용도로만 사용이 가능하다.
잠깐 다른사람 열어주는 용도.
ps. 운영하는 시놀로지 나스가 있다면 리버스 터널링으로 해결이 된다. 시놀로지 만세!
댓글
댓글 쓰기