【Hubot】 채팅에서 Hubot과 Jenkins를 통해 EC2 인스턴스의 상태를 조작



소개



AWS CLI의 공부가 엄청나게 해본 내용입니다.

1 채팅 도구로 Jenkins의 작업 실행을 주장

2 Hubot이 Jenkins에게 작업을 실행하라고 전달

3 Jenkins가 작업에 등록 된 인스턴스를 파괴 (Terminate)하는 명령을 실행

원격으로 손쉽게 서버를 조작할 수 있는 것이 편리합니다.
채팅 도구는 'slack', 'Hipchat', 'chatwork', 둘 다 괜찮습니다.
(chatwork에서 했습니다)

Hubot 설정



Jenkins와 협력해야합니다.
그렇다고 해도 스크립트를 작성할 필요가 없습니다.

'hubot-scripts.json'을 수정합니다.

hubot-scripts.json
["jenkins.coffee"]




그런 다음 Jenkins 연동을 위한 환경 변수를 설정합니다.

export HUBOT_JENKINS_URL=YourJenkinsUrl
export HUBOT_JENKINS_AUTH=xxxxxx:xxxxxx


'HUBOT_JENKINS_AUTH'에는 콜론으로 구분하여 Jenkins 사용자 이름과 비밀번호를 입력하세요.

이제 Hubot 설정은 이상입니다.

Jenkins 작업 설정



본선에서 벗어나므로 자세히 설명하지 않지만 Jenkins가 실행되는 서버에 AWS CLI를 설치하여 명령 작업을 할 수 있는 상태로 둡니다.

또한,

AWS Management Console

오른쪽 상단 메뉴 "Security Credentials"

Access Keys (Access Key ID and Secret Access Key)

에서 「Access Key ID」와 「Secret Access Key」를 앞두고 둔다.

에서 작업을 만들고 쉘 스크립트를 작성합니다.




export WORKSPACE
sh -x ${WORKSPACE}/instart.sh


저장합니다.

실행 파일에서 방금 "Access Key ID"와 "Secret Access Key"를 입력합니다.

XXXX.sh

#!/bin/bash -xe

aws configure set aws_access_key_id AWSアクセスキーID

aws configure set aws_secret_access_key AWSシークレットアクセスキーID

aws ec2 terminate-instances --region=ap-northeast-1 --instance-ids=インスタンスID


Jenkins 쪽도 이것으로 이상입니다.

chatwork에서 실행



그리고는 금단의 대사를 주창할 뿐입니다.



잘하면 파괴에 성공할 것입니다.

마지막으로



미국의 핵 전략 미사일 발사 과정과 유사합니다.
엄청 단순히 해석하면

대통령(사용자)이 명령

보좌관·취권(Hubot)이 시크릿 코드를 송신

SSBN의 사관연중(Jenkins)이 받은 시크릿 코드를 바탕으로 협의·합의

발사

좋은 웹페이지 즐겨찾기