본문 바로가기

전체 글

(8)
[Nginx] custom error page configuration in reverse proxy server { proxy_intercept_errors on; # reverse proxy 사용 시 해당 옵션 on 필수 error_page 502 /custom-502.html; # 502 에러코드 발생 시 custom-502.html 경로로 location = /custom-502.html { root ${html-path} # custom-502.html 파일 절대경로 internal; }}# tarball installcd ${nginx-home}/sbin./nginx -t # syntax check./nginx -s reload# package installsudo systemctl restart nginx
[GitLab CI/CD] install & register group runner GitLab SaaS + AWS EC2 인스턴스를 Group Runner로 등록하는 방법 소개   1. Instance Runner 사용해제 및 Group Runner 등록루트 그룹 Settings - CI/CD - Runners - Enable instance runners for this group 체크 해제 (shared runner 미사용)루트 그룹 Build - Runners - New Group Runner 버튼 클릭태그 입력 및 Run untagged jobs 체크(체크 안하면 태그 지정이 안되어있는 경우 파이프라인이 구동되지 않을 수 있음)Create runner 버튼 클릭기본 설정 그대로 두고gitlab-runner register 명령 부분 복사View runners 버튼 클릭생성 확인..
[Linux commands] paste 명령으로 복수 텍스트 파일 라인 단위 병합하기 paste 명령을 통해 복수의 파일 내용을 라인 단위로 병합할 수 있다.병합 시 각 라인의 내용은 탭으로 구분되며, 명령 수행 결과는 표준출력으로 나타난다. 아래 예시와 같이 a.log b.log 파일이 있다고 가정한다.# a.log123# b.logabc 위와같은 상황에서 아래와 같은 명령을 사용하면# a.log b.log 파일 내용 라인 단위 병합 (각 라인의 내용은 탭으로 구분됨)paste a.log b.log# 결과는 표준출력으로 내보내지므로, 파일로 저장하고싶다면 리다이렉션 사용paste a.log b.log > result.log 아래와 같은 결과를 도출할 수 있다.# 병합 결과1 a2 b3 c   Reference : paste man page
[Linux] Java 애플리케이션 스레드 덤프 따는 방법 Java 8 이상부터 jcmd 사용 권장애플리케이션이 실행중인 서버에서 아래 명령 입력# 스레드 덤프 획득jcmd ${pid} Thread.print > ${dump-file-path} 필자의 경우 서버 과부하 발생 시 위 명령을 통하여 dump.log 파일과 같은 형태로 덤프내용을 저장한 뒤 워커 스레드에서 실행중인 api 정보를 획득하고, 해당 소스를 분석하여 과부하 발생 지점 찾음 (주로 쿼리를 잘못 작성하여 너무 많은 결과집합을 was 서버로 전달하여 힙 메모리 풀 차는 경우가 많은듯...)   Reference : jcmd man page
[Vagrant] cli cheat sheet version : 2.4.3 (2024.11.17 기준 latest) # 초기화Vagrantfile 생성 및 box 정보 등록vagrant init ${box} --box-version ${version} # 구동Vagrantfile 내에 기재된 정보를 토대로 가상머신 구동프로비저닝은 최초 up 시점에만 수행. 추가 옵션을 통해 프로비저닝 수행 여부 조정 가능vagrant up # 최초 구동 시 사용 or 구동할 머신이 정의된 Vagrantfile 위치에서 실행vagrant up ${vm-id} # 특정 머신 구동vagrant up ${vm-id} --provision # 프로비저닝 수행vagrant up ${vm-id} -..
[Kubernetes] kubectl cheat sheet # 버전정보kubectl version # 노드# 모든 노드 정보 출력kubectl get nodes# 모든 노드 정보 출력 (사용중인 컨테이너 런타임 정보 포함)kubectl get nodes -o wide # 네임스페이스# 네임스페이스 생성kubectl create namespace ${namespace-name}# 네임스페이스 목록 출력kubectl get namespaces# 디폴트로 설정된 네임스페이스 확인# 공란의 경우 default 네임스페이스를 의미함kubectl config current-context # 컨텍스트 확인하고kubectl config get-contexts ${context-name} # 이 명령의 인수로 넣어주면 됨 # 리소스# 디폴트 네임스페이..
[Ansible] install Ansible on Rocky Linux 8 2024.11.14 기준 pypi 저장소에 올라온 latest 버전 기준으로 설명Ansible : 10.6.0Ansible-Core : 2.13.13 rocky linux 8 버전은 python 3.6 버전이 설치되어있으나, 위 앤서블 버전은 python 3.8 이상을 요구하므로python 재설치 과정 포함 1. 설치 [pip]# python 버전 확인python3 --version# 3.8 버전 이하면 삭제 후 3.8 이상으로 재설치yum list installed | grep python # 설치된 python 버전 확인 후sudo yum remove python36 # 삭제 (예시는 3.6 버전)yum search python # 3.8 이상 버전 정보..
[Linux] Ubuntu apt cheat sheet 데비안 계열 패키지 매니저# 설치된 패키지 목록 조회apt list --installed # 패키지 검색apt search ${package-name} # 패키지 정보 조회원격저장소로부터 설치 가능한 버전, 의존성 정보, 홈페이지, 다운로드 사이즈 등 조회apt show -a ${package-name} # 패키지 설치sudo apt install ${package-name}# 여러 패키지 설치 시 아래와 같이 사용sudo apt install ${package-name1} ${package-name2} ${package-name3} ...# 자동 승인 옵션 지정 가능sudo apt install -y ${package-name} # 패키지 정보 업데이트원격저장소로부터 최신 패키지 정보 업데이트업데이트 ..