arrow_upward
본문 바로가기

DevOps10

Jenkins Github 리포지토리 SSH 연결 에러(stderr: No ED25519 host key...) 도커 컨테이너에서 젠킨스를 실행 후 깃허브 리포지토리와 SSH 연결을 하려고 하는 중에 에러가 발생했다. 깃허브의 리포지토리의 연결이 실패했는데, stderr: No ED25519 host key is known for github.com and you have requested strict checking. Host key verification failed. 문구를 확인하면 호스트 키 검증에 실패했다는 것을 알 수 있다. 젠킨스에서는 기본적으로 SSH 연결 시 호스트 키를 검증하는 Strict Host Key Checking 기능이 활성화되어 있다.이 문제는 SSH를 통해 깃허브 서버에 연결할 때, 깃허브 서버의 호스트 키가 로컬 머신의 known_hosts 파일에 등록되어 있지 않기 때문에 젠킨스가.. 2024. 12. 14.
[Docker] 도커파일(Dockerfile) 개념 및 작성법 도커파일(Dockerfile)에 대해 이해하기 위해 공부한 내용을 정리해본다. Dockerfile의 개념, 작성 방법, 최적화, 멀티 스테이지 빌드, 주로 사용되는 인스트럭션까지 전체적으로 정리한다. Dockerfile이란?Dockerfile은 도커 이미지를 생성하기 위해 명령어들을 정의한 텍스트(스크립트) 파일이다. 도커 파일에 정의된 명령어들은 이미지의 빌드 과정에서 실행되며, 도커 CLI를 통해 빌드해서 이미지를 생성할 수 있다.도커파일은 인스트럭션과 명령어(스크립트), 주석으로 구성된다. 도커파일에서 인스트럭션이 이미지에 포함된 각 이미지 레이어가 되며, 인스트럭션을 실행한 결과로 이미지가 만들어진다. Dockerfile의 장단점장점일관된 환경과 이식성: 도커 파일을 상용하면 개발, 테스트, .. 2024. 11. 28.
cron 배치 작업 시 중복 실행 문제 방지 실시간 쌓이는 로그를 cron을 사용해서 스케줄링 할 때 curl로 호출한 API가 중복으로 호출되어 실행되는 문제가 있었다.cron 스케줄링은 crontab에 설정한대로 매 분마다 배치 스크립트 파일을 실행한다.문제는 API를 호출해서 로그를 처리하는 작업이 쌓인 로그의 양에 따라서 트래픽이 적을 때는 1분 이내로 끝날 수 있다.하지만 트래픽이 많아서 로그가 많이 쌓이면 처리시간이 1분 이상 걸리면서 배치 주기를 보다 작업이 길어지면서, 이전 배치작업이 끝나지 않았는데 스케줄링에 의해 다음 작업이 호출돼 API가 중복 호출되는 문제가 있었다. crontab* * * * * /home/test/log/batch.sh batch.sh#!/bin/bash# 배치 API 호출/usr/bin/curl -s "h.. 2024. 10. 7.
[Apache] 아파치 서버 SSL, 리버스 프록시 설정 이전에 프로젝트를 진행 당시 클라이언트 사이드는 리액트로 구성했었고 서버는 FastAPI로 구성했을 때 클라이언트와 서버간 통신에서 자바스크립트의 Fetch API는 기본적으로 Same-Origin 정책을 따르기 때문에 CORS문제를 해결해야 했다.서버의 CORS설정으로 포트를 허용하는 방법도 있지만 동일한 출처(Origin)이 아닐 때 포트를 허용하는 것이 보안상으로 좋지 않기때문에 리버스 프록시를 한번 설정해보기로 했었다.이 때 작업을 하면서 아파치 서버에 SSL, 리버스 프록시를 설정했던 것을 기록하려 한다.아파치 서버 설정우선 리눅스는 우분투 서버를 기준으로 설명할 것이다.우분투에서 아파치 서버를 설치하려면 apache2를 설치해주면 된다.# apache2 패키지 설치sudo apt install.. 2024. 4. 26.