목록DevOps & Infra (154)
오늘도 한 뼘 더

# 배경 SSH 키를 사용해서 접근을 하려고 하는데 키에 관한 에러가 발생하면서 다음과 같은 내용이 떴다. @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: POSSIBLE DNS SPOOFING DETECTED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ The ECDSA host key for gitlab.X.com has changed, and the key for the corresponding IP address X.X.X.X is unchanged. This could either mean that DNS SPOOFING is happening or ..

## 배경 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..

# 배경 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을 통해서 접근하려고 하니 다음과 같은 에러가 ..

# 배경 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..

# 배경 2023.01.16 - [DevOps & Infra/Docker] - [Docker] Dockerfile 이용해 wkhtmltopdf 설치하기 [Docker] Dockerfile 이용해 wkhtmltopdf 설치하기 # 배경 html파일을 pdf로 변환해 주는 `wkhtmltopdf` 명령어를 사용하기 위해서 Docker Container 내부에 wkhtmltopdf를 설치해야 한다. 직접 설치를 하는 방법도 있지만, 직접 설치를 하면 Docker 컨테이너를 배 baekji919.tistory.com wkthmltopdf를 사용하여 html을 pdf로 변경하는 코드가 있는데 Dockerfile에 해당 패키지를 설치하는 명령어를 진행한 뒤 한글이 깨지는 문제가 발생하였다. 한글 폰트를 적용하기 위..

# 배경 Elastic Beanstalk(이하 EB)에 구성된 AutoScaling을 통해 EC2가 추가되거나 줄어들 때 원하는 패키지가 설치되어 있게 하기 위해 AMI를 생성하여 지정 해당 AMI를 지정하는 방식을 구현했다. 테스트로 진행한 방법이 실제 적용을 하려고 하는 중에 적용이 되지 않고 배포가 제대로 되지 않는 문제가 발생하였다. # 문제 이전에 테스트를 진행한 방식 그대로 적용했지만, 제대로 동작하지 않았다. EB의 구성에는 AMI가 변경된 것으로 나왔는데 인스턴스에 접근하여 확인하니 코드가 제대로 배포되지 않았고 500번 에러가 발생하는 것을 볼 수 있었다. 원인은 AMI를 잘못 생성해서 그런 것이었다. 사용하고자 하는 EC2의 인스턴스 유형과 AMI를 생성할 때 사용한 EC2의 인스턴스 ..

# 배경 wkhtmltopdf 패키지를 설치 후 wkhtmltopdf를 사용하여 만든 pdf를 열었는데 한글이 깨져 있었다. # 원인 해당 작업은 Linux 환경에서 진행했는데 Linux는 기본적으로 한글을 지원하지 않아서 발생하는 문제였다. 한글 폰트를 설치해 주면 해결이 되는 문제였다. # 한글 폰트 설치 $ wget https://github.com/spoqa/spoqa-han-sans/releases/download/2.1.0/SpoqaHanSans_original.zip $ unzip SpoqaHanSans_original.zip $ mkdir /usr/share/fonts/spoqafont $ cd SpoqaHanSans_original $ mv *.ttf /usr/share/fonts/spo..