IT Study/슬랙연동하기

Bash Script 슬랙 연동 – 웹훅 !

ComputerScientist 2020. 11. 4. 15:21

Bash Script에 슬랙을 연동하기 위해서는 슬랙 설정을 필수적으로 해야 한다.

 

Bash Script에 연동하기 전에 슬랙에 기본 설정하기

 

슬랙 자동 알림 기본 설정 방법 (웹훅)

슬랙 자동 알림 설정, 예전만 해도, 서버에 문제가 있거나 상태 메시지를 확인하기 위해서, 이메일을 주로 활용해 왔다. 이메일 활용을 하는 것의 단점은, 이메일 노티피케이션 항상 켜 두어야

blog-it.seongman.com

 

코딩하기에 앞서 어떤 순서로 webhook integration 이 이루어지는지 알아보자

 

순서

  1. cURL 요청 확인
  2. Bash Script 작성
  3. Bash Script 실행

 

 

1. cURL 요청 확인

Slack hook을 연동을 하기 위해서는 hooks의 url과 채널에 대해 알아야 한다.

슬랙 웹 훅 연동 과정에는 아래와 같은 내용이 있다. (cURL REQUEST)

$ curl -X POST -H 'Content-type: application/json' --data 
  '{"text":"Hello, World!"}' 
  //hooks.slack.com/services/AAAAAAAAA/BBBBBBBBBBB/CCCCCCCCCCCCCCCCCCCC

해당 curl 요청을 실행해보면 slack에 알림을 보낼 수 있다. curl request 가 잘 동작한다면 다음 단계로!!

 

 

 

 

2. Bash Script 작성

스크립트를 아래 처럼 작성한다.

크게 어려운게 없으므로, 라인별 코멘트로 정리했다.

#!/bin/bash 

# 알리고자 하는 채널
CHANNEL="#alert_channel"

# 채널 내에서 나오게 될 사용자 이름
USERNAME="Bash Webhook"

# 채널에 사용하고자 하는 아이콘
EMOJI=":heart:"

# Script 실행 시 첫번째 파라미터 - 내용
MSG=$1

# Setting URL
PAYLOAD="payload={\"channel\": \"$CHANNEL\", \"username\": \"$USERNAME\", \"text\": \"$MSG\", \"icon_emoji\": \"$EMOJI\"}"
HOOK=https://hooks.slack.com/services/AAAAA/BBBBB/CCCCCC

# curl request
curl -X POST --data-urlencode "$PAYLOAD" "$HOOK"

 

 

 

 

 

3. Bash Script 실행

$ ./filename.sh "this is message."

위와 같이 filename.sh 를 파라미터 "(내용)" 과 함께 실행시킨다.

그럼 script 실행이 완료된 후, #alert_channel"this is message."  메시지가 감을 확인할 수 있다.

만약 권한 문제로 인해 스크립트를 실행할 수 없다면, 해당 파일의 권한을 바꿔준다.

 

 

 

 

(참고) 권한바꾸기

일반적으로 sh file을 바로 실행 시킬 순 없을 것이므로, 권한을 바꿔준다.

권한에 대한 자세한 설명은 여기

$ chmod 755 filename.sh

or

$ sudo chmod 755 filename.sh