pile·
인프라 / DevOps·너드팩토리너드팩토리·

솔루션 납품 자동화하기 - Docker편

검색엔진 솔루션을 납품할 때마다 서버에 도커를 손으로 설치하던 작업을 셸 스크립트로 자동화한 기록이다. 일반망과 폐쇄망 두 경우를 나누고, OS 판별부터 폐쇄망에서 데몬을 직접 띄우는 방법까지 실제 스크립트로 보여준다. 반복 작업과 그것을 문서로 남기는 부담을 함께 없애는 것이 목적이다.

핵심 포인트
  • 폐쇄망 서버는 네트워크를 못 써 공식 문서의 설치 절차를 그대로 따를 수 없다.
  • 폐쇄망에서는 실행에 필요한 파일들을 미리 받아 패키지에 넣어 옮기는 방식을 쓴다.
  • 일반망이라도 명령을 한 줄씩 복사해 붙이는 방식은 납품 건수가 늘수록 시간 낭비가 된다.
  • 대상 서버 OS가 두 종류라 설치 명령이 달라 스크립트에서 OS를 먼저 판별해야 한다.
  • 두 OS 모두에서 쓸 수 있는 판별 방법으로 커널 버전 정보를 읽어 문자열 포함 여부로 분기했다.
  • 폐쇄망에서는 서비스 관리 명령 대신 데몬을 직접 실행해야 한다.
상세 정리
  • 배경: 이 검색엔진은 도커로 서버에 올려 쓰므로 납품 대상 서버에 도커 설치가 선행돼야 한다.
  • 기존 방식: 공식 문서를 찾아 몇 줄의 명령을 복사해 붙이면 끝나는 단순한 작업이었다.
  • 문제 1: 폐쇄망이라 네트워크를 쓸 수 없다는 조건이 생겼다.
  • 문제 2: 일반망이어도 반복되는 복붙 작업이 쌓이고, 그 방법을 문서로 정리해 두었다가 나중에 다시 찾아 따라 하는 시간도 낭비다.
  • 해결 방향: 설치 명령을 모은 셸 스크립트를 만들어 실행 한 번으로 끝내기로 했다.
  • OS 판별: 두 OS 모두에서 쓸 수 있어야 하므로 커널 버전 파일을 읽어 그 문자열에 특정 이름이 포함되는지로 구분했다. 정확한 이름이 그대로 나오지 않기 때문이다.
  • 데비안 계열 분기: 패키지 목록을 갱신하고 필요한 의존 패키지를 설치한 뒤 저장소 키를 등록하고 저장소를 추가해 도커를 설치한다.
  • 레드햇 계열 분기: 저장소 관리 도구를 설치하고 저장소를 추가한 뒤 도커를 설치하고 서비스를 시작한다.
  • 공통 후처리: 두 분기 모두 현재 사용자를 도커 그룹에 추가하고 서비스를 재시작한 뒤 완료 메시지를 남긴다.
  • 컴포즈 설치: 파일이 경로에 존재하기만 하면 되므로 릴리스 파일을 내려받아 실행 권한을 주고 심볼릭 링크를 걸고 버전을 확인한다.
  • 폐쇄망 전제: 아무것도 없는 상태에서 만들어낼 수는 없으므로 실행 파일들을 솔루션 패키지 안에 미리 넣어 둔다.
  • 폐쇄망의 단순화: 설치 명령만 OS마다 다를 뿐 실제로 놓이는 파일은 같으므로 폐쇄망에서는 OS 판별이 필요 없다.
  • 경로 처리: 패키지의 상위 디렉터리에서 설치해야 해 현재 경로를 변수에 잡아두고 이동한다.
  • 폐쇄망 설치: 압축 파일을 상위로 복사해 풀고 바이너리를 실행 경로에 복사한 뒤 데몬을 직접 백그라운드로 띄운다.
  • 실행 방식의 차이: 폐쇄망에서는 기존에 쓰던 서비스 관리 명령 대신 데몬 실행 명령을 써야 한다는 점을 짚는다.
  • 컴포즈 폐쇄망 버전: 일반망 스크립트에서 내려받는 명령만 복사 명령으로 바꾸면 나머지는 동일하다.
  • 다음 계획: 색인에 필요한 쿼리를 전달받으면 따로 다듬어야 하는 경우가 있어 그것을 막을 가이드라인을 만들 예정이라고 밝힌다.
왜 읽나인터넷이 막힌 고객사 서버에 컨테이너 환경을 세워야 한다면, 사전 반입 방식과 서비스 관리자 없이 데몬을 띄우는 지점을 미리 확인할 수 있다.
너드팩토리
너드팩토리 블로그
원문은 여기서 이어서 읽을 수 있어요
원문 읽기
읽음 (0)

이 글과 비슷한

  1. 인프라 / DevOps·AWS KoreaAWS Korea Tech·

    엔터프라이즈 보안 요구사항을 충족하는 프라이빗 Amazon Bedrock AgentCore 구축하기

    Amazon Bedrock AgentCore의 VPC egress 기능(2026년 4월 추가)을 활용해 온프레미스 LLM·사내 IdP·사내 MCP 서버에 인터넷 노출 없이 연결하는 방법을 다룬다. 규제 산업 엔터프라이즈가 기존 사내 자산을 그대로 유지하면서 Bedrock AgentCore를 안전하게 구축하기 위한 구성 가이드다.

    요약 이어보기
    #mcp#amazon-bedrock#vpc+2
  2. 인프라 / DevOps·gitlab-engGitLab Blog·

    OpenTofu와 Argo CD로 구성하는 GitLab 기반 AWS 제어 플레인

    GitLab을 단일 제어 플레인으로 삼아 OpenTofu로 AWS 인프라를 프로비저닝하고, Argo CD로 GitOps 기반 애플리케이션 배포까지 자동화하는 엔드투엔드 튜토리얼이다. VPC·EKS 클러스터 구성부터 Helm 기반 툴 설치, 샘플 앱 배포까지 모든 과정이 GitLab CI/CD 파이프라인으로 연결된다.

    요약 이어보기
    #kubernetes#aws-eks#gitops+2
  3. 인프라 / DevOps·AWS KoreaAWS Korea Tech·

    Amazon Bedrock 기반 사내 LLM, 키 발급부터 비용 차단까지: F&F의 LiteLLM 게이트웨이 운영 사례

    패션 기업 F&F가 Amazon Bedrock과 LiteLLM 프록시를 결합해 구축한 사내 LLM 플랫폼 운영 사례다. API 키 셀프서비스 발급, 모델별 접근 승인 워크플로, 사용자·프로젝트별 예산 자동 차단까지 전 과정을 직접 구현한 아키텍처 결정과 운영 교훈을 공유한다.

    요약 이어보기
    #kubernetes#amazon-bedrock#litellm+2