Windows Development

개발 중에는 Windows 개발 기계가 필요한 경우가 있습니다. 이 가이드는 GitLab 공유 Windows 러너와 동일한 사전 설치된 도구가 포함된 Google Cloud Platform(GCP)에서 Windows 개발 가상 머신을 가져오는 방법에 대한 가이드입니다.

Google Cloud에서 Windows 사용하는 이유

회사 노트북에서 Microsoft Windows 운영 체제를 사용하는 것은 GitLab 승인된 운영 체제 정책에 따라 금지되어 있습니다. 이는 Windows 플랫폼용 기능을 개발하기 어렵게 만들 수 있습니다. GCP를 사용하면 작업이 완료되면 제거할 수 있는 임시 Windows 기계를 갖게 됩니다.

공유 Windows 러너

전체 Windows 개발 기계가 필요하지 않은 경우 공유 Windows 러너를 사용할 수 있습니다. GitLab 12.7 릴리스 글Windows 공유 러너 베타 블로그 게시물에 유용한 정보가 많이 나와 있습니다. 공유 Windows 러너를 사용하려면 .gitlab-ci.yml 파일의 관련 작업에 다음 tags를 추가하세요:

tags:
  - shared-windows
  - windows
  - windows-1809

Windows 이미지에 사전 설치된 소프트웨어 디렉터리은 다음에서 확인할 수 있습니다: Preinstalled software.

GCP Windows 이미지를 위한 개발

공유 Windows GitLab 러너Packer로 빌드됩니다. Google Cloud 이미지를 구축하기 위한 인프라스트럭처 코드 리포지터리는 다음에서 사용할 수 있습니다: GitLab Google Cloud Platform Shared Runner Images.

이미지 빌드

Google Cloud 그룹이 이미지를 미리 빌드했을 수 있습니다. 작업하기 전에 사용 가능한 이미지를 검색해보세요. 위와 같은 공유 러너 리포지터리를 사용하여 Google Cloud 이미지를 빌드하려면 다음을 수행하세요:

  1. Packer 설치(버전 1.5.1에서 작동 확인).
  2. Packer Windows 업데이트 프로비저너 설치.
    1. 리포지터리를 복제하고(https://github.com/rgl/packer-provisioner-windows-update) 복제된 디렉터리로 이동합니다.
    2. go build -o packer-provisioner-windows-update 명령을 실행합니다.(go가 설치되어 있어야 함)
    3. packer-provisioner-windows-updatePATH 환경 변수에 있는지 확인합니다.
  3. direnv(https://direnv.net/)를 사용하여 환경 변수를 packer.json 파일에 추가하세요.
  4. 다음 명령을 실행하여 이미지를 빌드합니다: packer build packer.json.

GCP에서 Windows 이미지 사용 방법

  1. 웹 브라우저에서 Google Cloud Platform 콘솔로 이동합니다.
  2. 이미지를 생성할 때 사용한 이름으로 이미지를 필터링합니다. windows만 필터링하면 될 것입니다.
  3. 이미지 이름을 선택합니다.
  4. 인스턴스 생성을 선택합니다.
  5. 중요: 나중에 변경할 수 없으므로 이름을 변경하세요.
  6. 선택 사항: 가능한 가까운 지역 및 기타 옵션을 변경하세요.
  7. 페이지 하단의 만들기를 선택합니다.
  8. 새로 생성한 VM 인스턴스의 이름을 선택합니다(선택 사항으로 찾을 수 있습니다).
  9. Windows 비밀번호 설정을 선택합니다.
  10. 선택 사항: 사용자 이름을 설정하거나 기본값을 사용합니다.
  11. 다음을 선택합니다.
  12. 비밀번호를 복사하고 표시되지 않으므로 저장하세요.
  13. RDP 아래쪽 화살표를 선택합니다.
  14. RDP 파일 다운로드를 선택합니다.
  15. Windows 원격 데스크톱 앱(https://learn.microsoft.com/en-us/windows-server/remote/remote-desktop-services/clients/remote-desktop-clients)으로 다운로드한 RDP 파일을 엽니다.
  16. 인증서를 수락하려면 계속을 선택합니다.
  17. 비밀번호를 입력하고 다음을 누릅니다.

이제 명령 프롬프트가 있는 Windows 기계에 연결되어 있어야 합니다.

선택 사항: GCP VM 인스턴스를 러너로 사용하기

  • 프로젝트에 러너를 등록: gitlab-runner.exe register.
  • 러너 설치: gitlab-runner.exe install.
  • 러너 시작: gitlab-runner.exe start.

자세한 정보는 Windows에 GitLab Runner 설치러너 등록을 참조하세요.

개발자 팁

다음은 GCP와 Windows에 대한 몇 가지 팁입니다.

GCP 비용 절감

GCP VM 인스턴스 비용을 최소화하려면 사용하지 않을 때 중지하세요. 중지하면 IP 주소가 매번 변경되기 때문에 콘솔에서 다시 RDP 파일을 다운로드해야 합니다.

chocolatey

Chocolatey는 Windows용 패키지 매니저입니다. 패키지를 https://chocolatey.org/에서 검색할 수 있습니다.

  • choco install vim

Visual Studio(설치 / 전체 GUI 사용)

Visual Studio를 설치하고 Windows 원격 데스크톱 앱에서 실행할 수 있습니다.

다음을 실행하여 설치합니다: choco install visualstudio2019community

다음을 실행하여 시작합니다: "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\devenv.exe" .

.NET 3 지원

다음 DISM 명령어로 .NET 버전 3 지원을 설치할 수 있습니다:

DISM /Online /Enable-Feature /FeatureName:NetFx3 /All

nix -> Windows cmd

Windows 명령 셸을 사용하는 첫 번째 팁은 PowerShell을 열고 사용하는 것입니다.

PowerShell 시작: start powershell.

PowerShell에는 원래 명령어를 학습하지 않아도 되도록 모든 명령에 별칭이 있습니다:

  • ls —> dir
  • rm —> del
  • rm -rf nonemptydir —> rmdir /S nonemptydir
  • / —> \(경로 구분 기호)
  • cat —> type
  • mv —> move
  • 리다이렉션도 동일합니다(예: >2>&1)
  • 로컬 실행 파일을 호출하려면 .\some.exe
  • curl을 사용할 수 있습니다
  • ...을 사용할 수 있습니다