목록DevOps & Infra/DevOps (17)
오늘도 한 뼘 더
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/o9N7p/btshi7g8YjV/iYhVSYJCEJKxMrwkL7nIdk/img.png)
shell script를 작성하면서 어떠한 조건에 따라서 변수만 달라지는 경우에 같은 내용을 하나의 스크립트로 작성을 하고 싶었고 shell script에서도 if문과 case문을 사용할 수 있다는 것을 확인했다. # if문 if문의 경우 if문 뒤에 조건을 [[ ]] 로 묶어서 작성한다. 조건문 뒤에는 ";"과 then을 붙여서 조건문에 맞을 경우의 문장을 작성한다. if문을 끝낼 때에는 fi를 마지막에 작성하여 끝낸다. else문은 if문이 다 끝나기 전에 안에 작성한다. #!/bin/bash if [[ $# == 0 ]]; then echo "Insert Variable" exit else echo "Hello this is script" exit fi # case 문 스크립트 실행 시 넘기는 첫 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/DBP2Y/btsa8AJqHWo/YBcLPywwM7fvsZNxvHYqQ0/img.png)
# 배경 Grafana를 도커로 올리는 과정에서 바로 Exit가 되면서 진행되지 않았다. docker logs 명령어를 통해서 확인해 본 결과 다음과 같은 에러 메시지를 확인할 수 있었다. You may have issues with file permissions, \ more information here: \ http://docs.grafana.org/installation/docker/#migrate-to-v51-or-latermkdir: \ can't create directory '/var/lib/grafana/plugins': Permission denied # 문제 해당 파일에 접근할 수 없는 권한 문제로 사용자를 변경하거나 권한을 추가하하면 된다고 한다. # 해결 방법 1. docker-c..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/1Ck1U/btr8ImOaJDY/YsgUzDsWvGKLVJdNgikEhk/img.png)
# 배경 서비스를 Elastic Beanstalk에서 EKS로 변경을 하면서 모니터링을 위해 Prometheus와 Grafana를 설치한다 # docker-compose.yaml 작성 version: '3.7' services: # 설치하려는 컨테이너 목록 prometheus: network_mode: bridge image: prom/prometheus:latest container_name: prometheus user: root command: - '--web.enable-lifecycle' - '--config.file=/etc/prometheus/prometheus.yaml' volumes: - /monitor/prometheus/config:/etc/prometheus/ - /monitor/p..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/c13ASb/btrO90c4eM7/bwGImTdzCrouw5lca1RNw1/img.png)
# 배경 shell script를 작성하여 배포를 진행하는 과정에서 배포 후 작업이 그대로 진행이 되었다. 이를 막기 위해 에러가 나면 실행을 멈추도록 해야 한다. # set +e / -e 에러가 발생하면 실행을 멈춘다. #!/bin/bash set -e chmod +x test.sh echo "Hello" 에러가 발생해도 계속 실행 #!/bin/bash set +e chmod +x test.sh echo "Hello" 명령어에 따라 다르게 설정 #!/bin/bash set -e #에러 나면 멈춤 chmod +x test.sh set +e #에러 발생해도 계속 실행 cp ./test.sh ../test.sh set -e #다시 에러가 발생하면 멈춤 docker ps -a
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/biwLXS/btrOvglUVBT/WGaDeEzgf2i4Mmh6Qtq8y1/img.png)
# 배경 회사에서 배포 환경을 어떻게 맞추고 어떻게 정의 내릴 것인지 이야기하는 시간이 있었다. 얘기를 해보다가 정리를 해두면 좋겠다는 생각이 들어 글을 쓰게 되었다. # 개발 배포 환경 우리는 크게 Local | Develop | Staging | Production 네 가지 개발 환경을 구축하여 일을 한다. 컨퍼런스나 다른 회사 블로그를 봤을 때 QA 단계가 따로 있는 곳들을 봤는데 현재 회사에서는 Staging단계에서 그 역할을 같이 진행한다. Local 개발자들 각자의 PC에 설치된 서버 환경을 Local 환경이라고 한다. Develop 서버에 올라간 코드를 받아서 작업을 진행한다. Develop Local환경에서 작업한 코드를 한 곳으로 모아서 개발자들이 테스트를 하기 위해 만들어진 환경 Dev..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bu7g8K/btrNSWJVi4m/BGjRpQHcil1I5a0zUaSsWK/img.png)
# 배경 에러 발생 시 slack으로 알림을 받고 싶다. slack webhook을 사용하여 메시지를 받는 방법을 도입해보자. # Slack 워크스페이스 생성 1. 회사 | 팀 이름 입력 2. 팀원 추가 연습용으로 만들 것이기 때문에 이 단계는 건너뛰었다. 3. 채널 이름 작성한 일이 곧 채널이 된다. # Slack Webhook 설정 1. Slack 찾아보기 > 앱 클릭 2. webhook 검색 > Incoming Webhook 추가 클릭 3. Slack Webhook 추가하기 어떤 채널에 포스팅할지 설정한다. 앱 설정을 저장하고 URL을 통해서 보내고자 하는 내용을 보내면 완료 ## 예시 curl -X POST --data-urlencode "payload={\"channel\": \"#테스트\", ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/9TaUj/btrDUHhnCez/ikLalC3AZuiqjXCgxqOf21/img.jpg)
1. Jmeter 설치 https://jmeter.apache.org/download_jmeter.cgi Apache JMeter - Download Apache JMeter Download Apache JMeter We recommend you use a mirror to download our release builds, but you must verify the integrity of the downloaded files using signatures downloaded from our main distribution directories. Recent releases (48 hours) may not yet be ava jmeter.apache.org 다운로드 > 압축해제 > jmeter.bat ..