If you’re new to Glazier, the About Glazier document will give a high-level overview of what Glazier is and how it works.
As of Glazier Release 2.0, Glazier now uses Python 3. Python 2 is no longer supported.
Glazier relies on some third-party modules which need to be included with the Python distribution to enable full functionality. These modules are the property of their respective owners and not the Glazier developers.
Resource files are non-Python files that are required to enable additional
functionality in Glazier’s supporting libraries. These can be distributed with
Glazier’s code in the
You will need to create your boot media. Out of the box, Glazier is known to support WinPE.
When building a WinPE image for use with Glazier, you will need to include:
WinPE can be configured to automatically start application(s) using winpeshl.exe, with the configuration in winpeshl.ini.
for a winpeshl.ini file that will instruct WinPE to launch
TIP: For a full list of Glazier flags, execute
python autobuild.py --helpfull.
You’ll notice a flags are distributed throughout various libraries, and are
documented where defined.
In addition to the startup flags provided by autobuild and its libraries, the file glazier/lib/constants.py contains several programmatic defaults. You will likely need to adjust these to match your imaging environment and distribution point.
At some point during the installation, a Windows image will be applied to disk. Once the host is rebooted into its new image, Windows will undergo sysprep. Normally, we will want Autobuild to resume operation after sysprep, so it can complete post-install configuration tasks.
One way to accomplish this would be to:
Glazier requires a web-based repository of binary and image files to be available over HTTP(S). You can use any web server or platform that suits your needs.
Inside the root of your web host, create two directories: the config root and the binary root.
The configuration root must contain at minimum one
build.yaml file. In a
mature system, this directory will likely contain a variety of branching config
files and scripts (example: dev/prod top-level directories).
We recommend keeping the entire contents of the config root in source control, and exporting it out to the web service whenever changes are made.
--config_root_path flag determines where under
--config_server this data
See Configuration Layout for additional information.
The binary root is a separate directory structure used to hold non-text data. This split serves to draw a clear boundary between files which may be sourced from version control, and those which may instead live in mass storage elsewhere.
We recommend using an organized tree structure to make binaries easy to locate.
ROOT ├───Company1 │ └───Product1 │ ├───v1 │ └───v2 ├───Company2 │ └───Product1 │ └───v1 └───...
--binary_root_path flag determines where under
directory is located.
In config syntax, the binary root is referenced by prefacing a file name and
path with the
This example gives a concept for a basic
templates: apply_img: - Get: - ['@MyRepo/WIM/2021_10_01/Windows10.wim', 'C:\base.wim', 'ae0666f161fed1a5dde998bbd0e140550d2da0db27db1d0e31e370f2bd366a57'] - Execute: - ['X:\Write-WindowsImage.ps1'] controls: - Get: - ['partition.ps1', 'X:\partition.ps1'] - ['apply_image.ps1', 'X:\apply_image.ps1'] - Execute: - ['X:\partition.ps1'] - template: - apply_img - ExitWinPE:  - include: - ['drivers/', 'build.yaml'] - ['applications/', 'build.yaml'] - Reboot: [10, 'Rebooting to complete setup. The machine will be ready to use.']
This config retrieves two hypothetical
.ps1 files from the config root
apply_image.ps1). It executes
partition the local disk. It then invokes the template apply_img, which
retrieves a WIM file from the binary root, and executes
calls the action
ExitWinPE, at which point the system would reboot (presumably
into sysprep). After sysprep, the task list would resume processing with
whatever commands were obtained from the contents of the
applications/build.yaml files (for illustration - not shown here).
Finally, the host would reboot.
More information about configuration files is available in the Glazier Build YAML Specification.