본문으로 바로가기
development2026년 3월 24일·조회 114

원격 워커 시스템 자동 설치 가이드 - PowerShell 스크립트로 배포 자동화하기

SSH, PM2, Python 환경을 한 번에 설정하는 9단계 설치 프로세스 구축하기

SP

SpacePlanning

SpacePlanning AI Team

## 왜 원격 워커 설치 자동화가 필요한가 분산 시스템이나 원격 작업 환경을 구축할 때 가장 큰 난관 중 하나는 일관된 환경 설정입니다. 수동으로 각 워커 노드를 설정하면 휴먼 에러가 발생하기 쉽고, 시간도 많이 소요됩니다. 이번 글에서는 PowerShell 스크립트를 활용해 원격 워커 설치 과정을 9단계로 표준화하는 방법을 소개합니다. ## 설치 프로세스 9단계 분석 ### 1단계: Prerequisites 검증 설치 전 시스템 요구사항을 검증합니다. PowerShell 버전, 관리자 권한, 필수 포트 개방 상태 등을 확인하여 설치 실패를 사전에 방지합니다. ```powershell if (-NOT ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) { Write-Error "관리자 권한으로 실행해주세요" exit 1 } ``` ### 2단계: OpenSSH 설치 Windows 환경에서 원격 접속을 위해 OpenSSH Server를 설치하고 서비스를 활성화합니다. Windows 10/11에서는 선택적 기능으로 제공됩니다. ```powershell Add-WindowsCapability -Online -Name OpenSSH.Server Start-Service sshd Set-Service -Name sshd -StartupType 'Automatic' ``` ### 3단계: PM2 프로세스 매니저 설치 Node.js 기반 애플리케이션의 프로세스 관리를 위해 PM2를 설치합니다. 자동 재시작, 로그 관리, 모니터링 기능을 제공합니다. ```bash npm install -g pm2 pm2 startup ``` ### 4단계: 디렉토리 구조 생성 표준화된 디렉토리 구조를 생성합니다. 로그, 설정파일, 작업 디렉토리를 미리 정의하면 관리가 용이합니다. ```powershell $dirs = @('logs', 'config', 'workspace', 'scripts') foreach ($dir in $dirs) { New-Item -ItemType Directory -Force -Path "C:\worker\$dir" } ``` ### 5단계: Package 설치 필수 패키지 및 의존성을 설치합니다. package.json이나 requirements.txt를 기반으로 자동 설치합니다. ### 6단계: Config 파일 배포 환경별 설정 파일을 배포합니다. 개발/스테이징/프로덕션 환경에 따라 다른 설정을 적용할 수 있습니다. ```powershell Copy-Item "templates/config.template.json" -Destination "C:\worker\config\config.json" (Get-Content "C:\worker\config\config.json") -replace '{{ENV}}', $Environment | Set-Content "C:\worker\config\config.json" ``` ### 7단계: Python 환경 설정 Python 가상환경 생성 및 필수 라이브러리를 설치합니다. ```powershell python -m venv C:\worker\venv C:\worker\venv\Scripts\Activate.ps1 pip install -r requirements.txt ``` ### 8단계: TaskScheduler 등록 Windows 작업 스케줄러에 정기 작업을 등록하여 워커가 자동으로 시작되도록 설정합니다. ```powershell $action = New-ScheduledTaskAction -Execute 'pm2' -Argument 'resurrect' $trigger = New-ScheduledTaskTrigger -AtStartup Register-ScheduledTask -Action $action -Trigger $trigger -TaskName "WorkerAutoStart" -User "SYSTEM" ``` ### 9단계: 문서화 파일 배치 설치 가이드 및 운영 문서를 배치하여 유지보수를 용이하게 합니다. ## 설치 후 검증 프로세스 설치가 완료되면 다음 명령어로 상태를 확인합니다. ```bash # 인증 확인 claude login # 프로세스 상태 확인 pm2 status # 로그 확인 pm2 logs ``` ## 스크립트 구조 설계 팁 1. **멱등성(Idempotency) 보장**: 여러 번 실행해도 같은 결과가 나오도록 설계 2. **에러 핸들링**: 각 단계마다 실패 시 롤백 메커니즘 구현 3. **로깅**: 모든 단계를 로그 파일에 기록하여 디버깅 용이하게 구성 4. **환경 변수 활용**: 하드코딩 대신 환경 변수로 유연성 확보 ```powershell try { Write-Log "Step 2: Installing OpenSSH..." # 설치 로직 Write-Log "Step 2: Completed" } catch { Write-Log "Step 2: Failed - $($_.Exception.Message)" -Level ERROR Invoke-Rollback -Step 2 exit 1 } ``` ## 핵심 요약 원격 워커 시스템의 설치 자동화는 DevOps의 핵심입니다. PowerShell 스크립트로 9단계 설치 프로세스를 표준화하면: - 설치 시간을 수 시간에서 수 분으로 단축 - 휴먼 에러 최소화 - 환경 간 일관성 확보 - 신규 노드 추가가 용이 다음 단계로는 Docker 컨테이너화나 Ansible 같은 IaC(Infrastructure as Code) 도구 도입을 고려해보세요. 더 복잡한 환경에서는 Terraform과 함께 사용하면 클라우드 인프라까지 코드로 관리할 수 있습니다.
#PowerShell#자동화#DevOps#원격워커#PM2#시스템설치#인프라자동화#SSH
공유하기:

이 주제에 대해 더 알아보고 싶으신가요?

프로젝트 상담을 통해 맞춤형 솔루션을 제안받으세요.