Files
pxe-server/.gitignore
cproudlock 9af1c6d89a Capture site content from a live server so a new one can build every image
A freshly installed server could not build standard or engineer: about
8 GB they install from existed only on the running server.
scripts/capture-site-content.sh pulls it over SSH into the gitignored
payload:
- _shared/Applications/extra (Office, Adobe, OpenText, Java, fonts, Wi-Fi,
  Zscaler), without pxe-status/ (the playbook deploys that);
- each image's own Deploy/Applications files and folders (GE CA
  certificates, the Engineering Layer payload), without the repo-managed
  Install-EngineeringLayer.ps1 and without stale BPRT copies;
- the links images keep there, as links.txt;
- fresh bios-staging (*.exe plus models.txt, which the Dell update
  rewrites), boot.wim, and the known Blancco file set.

It dry-runs by default, compares by checksum (a Blancco config.img had the
same size and time as the stale copy), writes SHA256SUMS, and refuses what
FAT32 cannot hold: files of 4 GiB or more, Windows-illegal names, and
case-only name clashes.

build-usb.sh copies site-content/ unsplit and refuses to build without it
(unless --skip-site-content), or when SHA256SUMS is missing or does not
cover every file. The playbook checks SHA256SUMS, then merges the content
into winpeapps and recreates the links. It only links to folders that
exist, so it never creates an empty _shared BPRT, which would stop the
first MCL import from seeding it. Link lines are validated before anything
is copied.

pull-bios.sh is gone. It read a path the server no longer uses, with a
hard-coded password.
2026-10-16 15:17:42 -04:00

135 lines
4.0 KiB
Plaintext

# Large binary files — download/build these, don't commit them
*.deb
*.zip
*.wim
*.iso
*.efi
*.sdi
# OneDrive download artifacts
OneDrive_*/
# Error folders from OneDrive download
__*/
___*.txt
# Original OneDrive folder structure (reorganized into autoinstall/ and playbook/)
WestJeff*/
# Duplicate at root (canonical copy in unattend/)
/FlatUnattendW10.xml
# Offline packages (built by download-packages.sh)
offline-packages/
# Boot tool binaries (built by prepare-boot-tools.sh)
boot-tools/
# Track the Blancco GRUB config as source-of-truth for grubx64.efi rebuilds.
# prepare-boot-tools.sh rebuilds grubx64.efi from this file via grub-mkstandalone.
!boot-tools/blancco/grub-blancco.cfg
# WinPE boot files (wimboot, boot.wim, BCD, ipxe.efi, etc.)
boot-files/
# Exception: track undionly.kpxe (open-source iPXE BIOS-mode NBP for
# legacy PXE clients, ~70KB, from boot.ipxe.org). Makes air-gapped USB
# build self-contained without a separate fetch step.
!boot-files/undionly.kpxe
# Python wheels for offline install (built by download-packages.sh)
pip-wheels/
# Deployment images (imported via webapp or USB)
geastandardpbr/
# OS files
.DS_Store
Thumbs.db
# Python
__pycache__/
*.pyc
*.pyo
venv/
# MOK Secure Boot signing keys (contains private key)
mok-keys/
# Secrets
secrets.md
**/eMxInfo*.txt
*.ppkg
enrollment/
drivers-staging/
bios-staging/
.claude/
# Secrets and credentials (defensive)
.env
.env.*
!.env.example
!.env.*.example
*.pem
*.key
id_rsa
id_rsa.*
*.ppk
*.p12
*.pfx
secrets.json
secrets.yaml
secrets.yml
*_secret
*_secrets
credentials.json
# GE-internal WiFi / 802.1X profiles - contain SSID + trusted-root thumbprint.
# Staged on PXE share at /srv/samba/enrollment/MachineAuth/ and copied to
# bays during imaging. Never check these into git.
AESFMA.xml
8021x.xml
BLUESSO.xml
WiFi-Profile.xml
*.wlanprofile
*.lanprofile
# Pre-staged binary (142 MB) - track via LFS or stage on PXE server, not in regular git
playbook/shopfloor-setup/Shopfloor/PrinterInstallerMap.exe
# Keyence VR-6000 InstallShield payload (560 MB). InstallShield MSIs split
# the compressed payload into Data1.cab; without it next to the MSI, msiexec
# exits 1603 with "SECREPAIR: Failed to open Data1.cab" (see
# /home/camp/pxe-images/keyence/Logs/Keyence/install.log for the signature).
# Canonical source on the GE-Enforce SFLD share:
# tsgwp00525\sfld$\v2\shared\dt\shopfloor\gea-shopfloor-keyence\apps\Data1.cab
# before building the USB image.
playbook/shopfloor-setup/gea-shopfloor-waxtrace/captured-binary/
# Keyence per-model installer payloads - too big for git, staged via sync-keyence.sh
playbook/shopfloor-setup/gea-shopfloor-keyence/vr3000/installers/Data*.cab
playbook/shopfloor-setup/gea-shopfloor-keyence/vr3000/installers/*.msi
playbook/shopfloor-setup/gea-shopfloor-keyence/vr5000/installers/Data*.cab
playbook/shopfloor-setup/gea-shopfloor-keyence/vr5000/installers/*.msi
playbook/shopfloor-setup/gea-shopfloor-keyence/vr6000/installers/Data1.cab
# Part Marker (Telesis) utility password - secret, deployed via the enrollment
# share from the working tree, never committed.
playbook/shopfloor-setup/gea-shopfloor-partmarker/PartMarker/Mark/utilpassword.txt
# HeatTreat per-machine DNC .reg exports (6601-6604) - contain DNC FtpPasswd
# credentials. Deployed via the enrollment share from the working tree.
playbook/shopfloor-setup/gea-shopfloor-heattreat/reg/*.reg
# SIC e10 controller config files carry the programmer/supervisor password
# in cleartext. Never commit them. See reference/e10/README.md
reference/e10/**/ConfigCtrl*
reference/e10/**/*.kind1
# GE part programs carry part numbers and marking content. Keep them out of
# git; they live in ~/pxe-images/e10-testing/partprograms/
reference/e10/partprograms/
# Per-site playbook values (NIC MACs); template: playbook/site-vars.example.yml
playbook/site-vars.yml
# Site content pulled from a live server (scripts/capture-site-content.sh)
site-content/