Windows開発者

開発においてWindowsの開発マシンが必要になることがあります。これは、GitLab共有のWindows Runnerと同じツールがプリインストールされたWindows開発仮想マシンをGoogle Cloud Platform(GCP) で入手する方法のガイドです。

なぜGoogle CloudでWindows?

GitLab承認オペレーティングシステムポリシーにより、会社のラップトップでのMicrosoft Windowsオペレーティングシステムの使用は禁止されています。

そのため、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 Runnerは Packerでビルドされています。

Google CloudイメージをビルドするためのInfrastructure as Codeリポジトリは以下から入手できます:GitLab Google Cloud Platform 共有ランナーイメージ

ビルドイメージ

Google Cloud グループにはすでにイメージが構築されている可能性があります。自分で構築する前に、利用可能なイメージを検索してください。

上記の共有 Runner リポジトリを使用して、以下の手順で Google Cloud イメージを構築します:

  1. Packerをインストールします(バージョン1.5.1で動作確認済み)。
  2. Packer Windows Update Provisionerをインストールします。
    1. リポジトリのクローンhttps://github.com/rgl/packer-provisioner-windows-update 、クローンしたディレクトリにcd
    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. オプション:地域(Region)を最も近い地域に変更します。
  7. ページ下部の「作成」を選択します。
  8. 新しく作成するVMインスタンスの名前を選択します(オプションでフィルタリングして見つけることもできます)。
  9. Set Windows passwordを選択します。
  10. オプション:ユーザー名を設定するか、デフォルトを使用します。
  11. Nextを選択します。
  12. パスワードは二度と表示されませんので、コピーして保存してください。
  13. RDPの下矢印を選択します。
  14. RDPファイルのダウンロードを選択します。
  15. ダウンロードしたRDPファイルをWindowsリモートデスクトップアプリ(https://learn.microsoft.com/en-us/windows-server/remote/remote-desktop-services/clients/remote-desktop-clients)で開きます。
  16. 続行]を選択して、証明書を受け入れます。
  17. パスワードを入力し、[Next]を選択します。

これでWindowsマシンに接続され、コマンドプロンプトが表示されるはずです。

オプション:ランナーとしてGCP VMインスタンスを使用します。

  • ランナーをプロジェクトに登録します:gitlab-runner.exe register.
  • ランナーのインストール:gitlab-runner.exe install.
  • ランナーの起動:gitlab-runner.exe start.

詳しくは、WindowsでのGitLab Runnerのインストールと Runnerの登録をご覧ください。

開発者のためのヒント

GCPとWindowsに関するいくつかのヒントを紹介します。

GCPのコスト削減

GCP VMインスタンスのコストを最小限に抑えるには、使用していないときに停止します。その場合、停止と起動のたびにIPアドレスが変わるため、コンソールからRDPファイルを再度ダウンロードする必要があります。

ショコラ

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サポート

.NET バージョン 3 サポートは、次のDISM コマンドでインストールできます:

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

nix -> Windowscmd ヒント

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が利用可能
  • ...