This repository stores the collection of Windows packages installed on Google supported Compute Engine images.
Table of Contents
- Background
- Agent
- Instance Setup
- Metadata Scripts
- Network Setup
- Packaging and Package Distribution
- Contributing
- License
The Windows guest environment is the Google provided configuration and tooling inside of a Google Compute Engine (GCE) virtual machine. The metadata server is a communication channel for transferring information from a client into the guest. The Windows guest environment includes a set of scripts and binaries that read the content of the metadata server to make a virtual machine run properly on Google Compute Engine.
The agent handles creating user accounts and setting/resetting passwords.
The agent uses IP forwarding metadata to setup or remove IP routes.
- Only IPv4 IP addresses are currently supported.
instance_setup.ps1
is configured by GCE sysprep to run on VM first boot.
The script performs the following tasks:
- Set the hostname to the the instance name.
- Runs user provided 'specialize' startup script.
- Activates Windows using a KMS server.
- Sets up RDP and WinRM to allow remote login.
Metadata scripts implement support for running user provided startup scripts and shutdown scripts.
The guest code is packaged in GooGet packages and published to Google Cloud repositories.
We build and install the following packages for the Windows guest environment:
google-compute-engine-windows
- Windows agent executable.google-compute-engine-windows-common
- Windows agent common library utilities.google-compute-engine-sysprep
- Utilities for running sysprep on new Windows virtual machines.google-compute-engine-metadata-scripts
- Windowsexe
andcmd
files to run startup and shutdown scripts.google-compute-engine-powershell
- PowerShell module for common functions used by other packages.google-compute-engine-auto-updater
- Automatic updater for core Google packages.
The package build specs are published in this project.
To setup GooGet and install packages run the following commands in an elevated PowerShell prompt:
Download and install GooGet:
wget https://github.com/google/googet/releases/download/v2.9.1/googet.exe -OutFile $env:temp\googet.exe
$env:temp\googet.exe -root C:\ProgramData\GooGet -noconfirm install -sources https://packages.cloud.google.com/yuck/repos/google-compute-engine-stable googet
rm $env:temp\googet.exe
On installation GooGet adds content to the system environment, launch a new PowerShell console after installation or provide the full path to googet.exe (C:\ProgramData\GooGet\googet.exe).
Add the google-compute-engine-stable
repo:
googet addrepo google-compute-engine-stable https://packages.cloud.google.com/yuck/repos/google-compute-engine-stable
Install the core packages google-compute-engine-windows
and
google-compute-engine-sysprep
, google-compute-engine-sysprep
and
google-compute-engine-sysprep
will also be installed as dependencies:
googet -noconfirm install google-compute-engine-windows google-compute-engine-sysprep
Install optional packages, google-compute-engine-auto-updater
and
google-compute-engine-windows-common
, see above for descriptions:
googet -noconfirm install google-compute-engine-auto-updater google-compute-engine-windows-common
You can view available packages using the googet available
and installed
packages using the googet installed
command. Running googet update
will
update to the latest versions available. To view additional commands run
googet help
.
Have a patch that will benefit this project? Awesome! Follow these steps to have it accepted.
- Please sign our Contributor License Agreement.
- Fork this Git repository and make your changes.
- Create a Pull Request against the development branch.
- Incorporate review feedback to your changes.
- Accepted!
All files in this repository are under the Apache License, Version 2.0 unless noted otherwise.