Windows 개발

개발 중에는 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 이미지에 사전 설치된 소프트웨어 목록은 다음에서 확인할 수 있습니다: 사전 설치된 소프트웨어.

개발용 GCP Windows 이미지

공유 Windows GitLab 러너Packer로 빌드됩니다.

Google Cloud 이미지를 빌드하는 인프라스트럭처로 코드 저장소는 다음에서 확인할 수 있습니다: GitLab Google Cloud Platform 공유 러너 이미지.

이미지 빌드

Google Cloud 그룹에 이미지가 미리 빌드되어 있는 경우도 있습니다. 작업하기 전에 사용 가능한 이미지를 검색해 보세요.

위의 공유 러너 저장소를 사용하여 Google Cloud 이미지를 빌드하려면 다음을 수행하세요.

  1. Packer 설치(버전 1.5.1에서 작동되는 것으로 확인됨).
  2. Packer Windows Update Provisioner 설치.
    1. 리포지토리를 복제하고 https://github.com/rgl/packer-provisioner-windows-update로 이동합니다.
    2. go build -o packer-provisioner-windows-update 명령을 실행합니다 (go가 설치되어 있어야 함).
    3. packer-provisioner-windows-updatePATH 환경 변수에 있는지 확인합니다.
  3. packer.json 파일의 모든 필요한 환경 변수를 환경에 추가합니다(아마도 direnv를 사용할 것입니다).
  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.co/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 러너 설치러너 등록을 참조하세요.

개발자 팁

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을 사용할 수 있습니다
  • ...를 사용할 수 있습니다