목록기록 일기 (242)
오늘도 한 뼘 더

## 배경 ssh를 이용하여 gitlab에 접근하고자 했는데 gitlab을 도커 컨테이너로 설치하면서 도커 컨테이너 22번 포트가 제대로 열리지 않는 문제가 발생하였다. docker의 ssh 포트번호를 변경하고 ssh config를 통해서 변경된 포트로 연결될 수 있도록 설정하고자 한다. ## ssh config 작성 Host gitlab HostName gitlab.beautiful0.org User git Port 10022 Host : ssh 명령에 사용할 이름 HostName: Host에 지정된 이름이 매핑되는 호스트 명 User: 연결에 사용되는 계정 Port: 연결한 서버의 포트 번호 (기본 값: 22번) IdentityFile: 사용할 키의 위치 (기본값은 rsa의 경우 ~/. ssh/id_..

# 문제 Docker Image를 빌드하는데 sending build context to Docker daemon에 찍히는 수가 5GB가 넘어가고 있었다. 그래서 일단은 진행 중인 빌드를 중지시키고 해당 내용에 대해 검색해 보았다. # 원인 도커가 빌드를 할 때 해당 디렉터리의 모든 콘텐츠를 불러와 빌드를 하기 때문에, 루트 디렉터리에서 실행을 하게 되면 이런 경우가 발생한다고 한다. Docker 공식문서에도 루트 디렉토리는 피하라고 되어있었다. 실제로 루트 디렉토리에 디렉터리를 만들어서 그 안에서 실행했는데 그게 원인이었던 것 같다. # 해결 방법 루트 디렉토리가 아닌 home 디렉터리에 작업용 디렉터리를 만들어서 그 안에서 Dockefile을 복사해 주었다. 복사해 준 Dockerfile로 Docke..

# EC2 중지하기 aws ec2 stop-instances --instance-ids [instance ID] 인스턴스를 시작하거나 인스턴스 설정을 변경하기 위해서는 인스턴스가 완전히 중지되어야 한다. # EC2 완전히 중지 될때까지 기다리기 aws ec2 wait instance-running --instance-ids [instance ID] # EC2 시작하기 aws ec2 start-instances --instance-ids [instance ID] 인스턴스가 실행 상태로 변경 되어야 인스턴스에서 작업을 진행할 수 있다. # EC2 실행 될때까지 기다리기 aws ec2 wait stop-instances --instance-ids [instance ID] # 상태 체크 완료까지 기다리기 aws..

# 배경 root 비밀번호가 기억이 나지 않아서 로그인을 하지 못하고 변경해야하는 상황이다. initial_password의 경우는 한 번 로그인 한 뒤 변경사항이 있으면 24시간 뒤에 삭제가 된다고 한다. # gitlab-rail 사용해서 변경하기 gitlab-rail은 gitlab-ee 버전의 이미지를 사용한 경우에만 가능하다고 한다. gitlab docker에 접근 docker exec -it gitlab /bin/bash docker-rail 사용하여 비밀번호 변경하기 $ gitlab-rails console -e production -------------------------------------------------------------------------------- Ruby: ruby ..

# 배경 자체 GitLab 서버를 설치하고 root 계정으로 로그인하려고 하는데 비밀번호가 틀렸다는 오류가 나온다. # root 계정 비밀번호 확인하기 cat $GITLAB_HOME/config/initial_root_password 초기 비밀번호를 확인할 수 있다. ######################### PASSWORD : GJKHA...

# 배경 회사에서 GitLab을 사용 중이었는 데 사용한 가장 큰 이유는 무료로 사용이 가능해서였다. 그러다가 업그레이드를 하지 않으면 읽기 전용으로만 사용 가능하다는 알림을 받게 되었다. 5명을 초과하는 인원의 contributor를 무료 버전에서는 지원하지 않는다는 내용이었다. 그래서, 자체 관리형 gitlab을 알게 되었고 직접 GitLab 서버를 설치해서 진행해보고자 한다. # GitLab 이미지 https://hub.docker.com/u/gitlab Docker hub.docker.com GitLab 이미지는 gitlab-ee(Enterprise Edition)과 gitlab-ce(Community Edtion) 두 가지로 제공이 된다. 두 이미지는 기능이 거의 같지만 EE 버전에서 추가로 제..

# 배경 Jenkins에서 ssh를 사용하여 다른 서버에 접근하여 빌드 배포를 하는 과정에서 에러가 발생하였다. # 문제 SSH 관련 작업을 진행다가 다음과 같은 에러가 발생하였다. ERROR: Exception when publishing, exception message Exec exit status not zero. Status [1] # 원인 해당 문제를 찾아보니 SSH를 이용하여 서버에 파일을 보낼 때 또는 서버에서 script를 실행할 때에 사용하는 script 내용이나 파일을 찾을 수 없어 발생하는 문제라고 한다. # 해결 방법 해결 방법을 검색해 보니 보통 파일 경로를 제대로 작성했는지 확인해 보라고 했는데 나의 경우 파일을 보내는 것은 없어서 이는 확인이 되었다. 실행하고자 했던 scri..

# 배경 kubectl 명령어를 사용하려고 kubectl을 설치하다가 다음과 같은 에러가 발생했다. $ kubectl version error: exec plugin: invalid apiVersion "client.authentication.k8s.io/v1alpha1" 이전에 해당 문제를 경험한 적이 있었는데 eks와 kubectl의 버전이 많이 차이가 나면 이와 같은 에러가 발생할 수 있다고 한다. 그래서 버전을 내리면 된다는 것을 알게 되었다. [k8s] error: exec plugin: invalid apiVersion "client.authentication.k8s.io/v1alpha1" # 문제 내용 eks로 만든 cluster를 kubectl을 통해서 접근하려고 하니 다음과 같은 에러가 ..

# 2022년 내가 했던 일들 내가 2022년 한 해동안 했던 일들을 되돌아보면서 회고하는 것이 좋을 것 같다. ## 개발환경(Develop) Docker로 변경하기 이 작업을 했을 때 당시 우리는 모든 서비스를 AWS Elastic Beanstalk을 이용하여 배포하였다. 간편했지만, Elastic Beanstalk의 경우 배포를 하면 EC2 서버가 환경 설정에 따라서 한대 이상이 올라간다. Develop 환경의 경우 개발자만 사용을 하고 있는 환경이기에 EC2 서버 몇 대를 써야 할 이유가 없었다. 서버가 너무 놀고 있는데 비용은 계속 나왔기 때문에 개발환경을 Docker Container로 변경하는 작업을 진행했다. Docker로 전환하면서 local에서 되던 것들이 안 되는 일도 발생했다. Doc..

# 배경 AWS EKS Cluster를 생성한 사용자 외의 다른 사용자가 cluster 및 리소스들을 접근할 수 있도록 권한을 부여하고 싶다. # 문제 aws configure 다른 사용자를 설정하고 kubectl 명령어를 입력하면 다음과 같은 에러가 발생한다. $ kubectl get pods > error: You must be logged in to the server (Unauthorized) 설정한 사용자에게 eks에 대한 권한이 없기에 발생하는 문제이다. # 해결방법 EKS Cluster 구성에 있는 configmap의 aws-auth에 해당 사용자를 매핑시켜주어야 한다. $ kubectl edit configmap -n kube-system aws-auth 위 명령어를 통해서 configma..