목록전체 글 (243)
오늘도 한 뼘 더

# 배경 git parameter 중 Tag 파라미터를 불러와서 쓰는 프로젝트들이 있었는데 Tag가 불러와지지 않는다. # 문제 Jenkins의 버전이 변경되었는데 이전에 되던 git tag 조회가 되지 않는다. # 원인 및 해결 방법 ## 원인 새로운 Jenkins의 버전과 기존에 사용하던 git parameter / git 플러그인의 버전이 맞지 않아서 생긴 문제였다. ## 해결 방법 Jenkins 플러그인 > git paramter | git 플러그인 버전 업데이트

# 배경 도커로 올린 jenkins의 이미지를 변경하는 과정에서 다음과 같은 에러가 발생했다. Unable to read /var/jenkins_home/config.xml # 문제 다음과 같은 에러 메시지가 뜨면서 Jenkins가 시작이 되지 않았다. config.xml파일을 백업으로 이름을 변경하고 올리면 Jenkins가 재시작이 되었는데 문제는 설정이 다 초기화되는 상태였다. ---- Debugging information ---- cause-exception : com.thoughtworks.xstream.mapper.CannotResolveClassException cause-message : hudson.security.GlobalMatrixAuthorizationStrategy class :..

# 배경 GitLab에서 CI/CD를 제공하는데 gitlab-ci.yaml을 작성하고 돌리니 gitlab runner 설치가 필요하다는 메시지가 나왔다. # GitLab Runner 설치 ## gitlab-runner 다운로드 # 다운로드 $ sudo curl -L --output /usr/local/bin/gitlab-runner \ "https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64" # 권한 부여 $ sudo chmod +x /usr/local/bin/gitlab-runner # 설치 $ sudo apt-get install gitlab-runner ## gitlab-runner 등록 G..

# 배경 작업 중인 디렉터리에서 git을 사용하려고 하는데 에러가 발생했다. # 문제 git status 명령어를 실행시키는데 다음과 같은 에러가 나타났다. $ git status > fatal: detected dubious ownership in repository at 위의 문제는 Git의 보안 이슈로 인해서 해당 경로가 차단돼서 나타나는 문제라고 한다. # 해결 방법 다음 명령어를 통해서 해당 경로를 안전 경로로 등록을 해주면 된다. $ git config --global --add safe.directory [directory path]

# 배경 서버에서 불필요한 디렉터리 및 파일을 일괄적으로 삭제하고 싶었다. 서버에 temp 디렉터리와 파일을 삭제하고자 한다. find와 exec를 사용하여 삭제할 수 있다고 한다. # 특정 디렉터리 일괄 삭제하기 temp를 포함한 폴더를 일괄 삭제하는 명령어는 다음과 같다. $ find . -name "*temp*" -type d -exec -rm -r {} + . : 현재 디렉터리에서 검색함을 뜻한다. -type d : 디렉터리로 검색을 제한한다. -name "*temp*" : temp를 포함하는 디렉터리를 검색한다. -exec : 뒤에 붙는 명령어를 실행해 주기 위한 옵션 {} + : rm 명령어 끝에 검색된 폴더를 추가한다. # 특정 파일 일괄 삭제하기 temp를 포함한 파일을 일괄 삭제하는 명령..

# 배경 jenkins에서 helm 명령어를 실행해야 해서 'apt-get install kubernetes-helm' 명령어로 helm을 설치했는데 다음과 같은 에러가 발생했다. Error: Kubernetes cluster unreachable: exec plugin: invalid apiVersion "client.authentication.k8s.io/v1alpha1" # 문제 현재 사용하고 있는 EKS의 버전과 helm의 버전의 호환성에 문제가 있어서 해당 에러가 발생하는 것으로 확인했다. # 해결방법 helm의 버전을 낮추면 해결이 된다. 처음에 사용하고 있는 helm의 버전이 v3.13.2라서 로컬에서 사용하고 있는 v3.11.0으로 설치를 했는데 같은 오류가 발생했다. 검색을 통해서 같은 ..

# 배경 mysql에 복원 작업을 진행 중이었는데 다음과 같은 에러가 발생하면서 복원 작업이 중단되었다. ERROR 1114 (HY000): The table 'tb_name' is full # 원인 및 해결 방법 테이블에 더 이상 데이터를 추가할 수 없을 때 발생한다. 이 오류는 원인이 여러 가지라고 한다. 오류와 해결 방법을 알아보았다. 1. 디스크 공간 부족 서버의 디스크 공간을 확인한다. 디스크가 가득 찬 경우, 불필요한 파일을 삭제하거나 디스크를 확장하여 공간을 확보한다. 2. InnoDB 저장 엔진 제한 InnoDB 저장 엔진을 사용하는 경우, 데이터 파일의 최대 크기에 제한이 있습니다. InnoDB 테이블 스페이스의 크기를 늘려야 할 수 있다. 구성 파일(my.cnf 또는 my.ini)을 수..

# 배경 grafana 외에 직접 모니터링 및 개발자들이 사용할 수 있는 간단한 페이지를 만들고 싶다. 시니어분이 틀을 잡아놓은 페이지는 자바스크립트로 되어있는데 이 틀에서 원하는 것을 작성하기 위해서 자바스크립트와 HTML을 알아야 한다. ## HTML이란? 이건 Title입니다. ## HTML 기본 문서 #현재 문서가 HTML5 언어로 작성되어 있다. #웹 문서의 시작과 끝 #실제 브라우저에 보이는 내용 웹 개발 HTML HTML 삽입 미리보기할 수 없는 소스

# 배경 최근 쿠버네티스를 사용하게 되었는데 이전에 ElasticBeanstalk에서는 배포 방식을 선택할 수 있는 설정이 있었는데 쿠버네티스에서의 경우 어떤 방식으로 진행되는지 사실 생각해보지 못했다. 관련 질문을 받고 무슨 방식이 있고 현재 회사에서 사용하기에 제일 적절한 게 무엇인지 고민해 볼 필요가 있다고 생각됐다. # 무중단 배포 방식 실제 사용자가 사용하고 있기 때문에 특히 운영에 배포를 하는 데 있어 무중단 배포 방식은 중요하다! 무중단 배포 전략은 크게 3가지 방법이 있다. Rolling Update, Blue-Green, Canary 세 가지 방식에 대해 알아보고 정리해보고자 한다. # Rolling Update Rolling Update는 구 버전의 Pod을 하나씩 내리고 새 버전의 P..

Jenkins job에 대해서 pipeline으로 작성을 할 때 빌드 및 배포에 대한 결과에 따라서 다른 작업을 두 가지 방법으로 진행할 수 있다. # try / catch 사용하기 pipeline { agent any stages { stage('Checkout') { steps { script { try { build job: 'jenkins_job', parameters: [ string(name: 'parameter_name', value: "${parameter_value}")] } catch (e) { catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') { sh "exit 0" echo "error" } echo 'TEST Fail! But..