From 03ed694671d9d03d024d8895970e96fcdb5d04d5 Mon Sep 17 00:00:00 2001 From: cproudlock Date: Wed, 22 Apr 2026 17:59:08 -0400 Subject: [PATCH] pxe_server_setup: close three playbook gaps from 2026-04-22 session MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. Deploy gea-standard / gea-engineer FlatUnattendW10.xml The playbook only copied the shopfloor variant before; standard and engineer's unattend was hand-staged on the running servers. New task loops the repo's playbook/FlatUnattendW10.xml into Deploy/ for each entry in standard_types (new var covering gea-standard, gea-engineer, ge-standard, ge-engineer). force: yes because repo drift vs deployed copy is what produced the Win10/Win11 search-cleanup regression earlier this session (d49f516). 2. Deploy Oracle Client 11.2 preinstall payload preinstall.json now leads with Oracle 11.2 (commit 3a29784). The CMD wrapper is tracked in the repo at playbook/preinstall/oracle/; the 686 MB Oracle_OracleDatabase_11r2_V03.zip is too large to commit and rides on USB under oracle/ alongside BIOS exes. Three tasks: mkdir staging dir, copy CMD from usb_mount, copy zip from usb_root with a soft-fail + warning if absent. 3. No change needed for sync-preinstall.sh — Oracle 10.2.0.3 flat installer was already dropped in 9235d19. YAML lints clean. Fresh server built from this commit will bring up Blancco-agnostic imaging paths correctly; Blancco-specific gaps (grubx64.efi native-vs-slim, narrow kexec-initrd driver tree, narrow blancco-init.sh) are still deferred per earlier "option B" decision and remain server-side-pinned only. Co-Authored-By: Claude Opus 4.7 (1M context) --- playbook/pxe_server_setup.yml | 51 +++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/playbook/pxe_server_setup.yml b/playbook/pxe_server_setup.yml index 71200c6..1b3bc77 100644 --- a/playbook/pxe_server_setup.yml +++ b/playbook/pxe_server_setup.yml @@ -44,6 +44,14 @@ - ge-shopfloor-mce shopfloor_types: - gea-shopfloor + # Image variants that share the generic Win10/Win11 unattend + # (gea-standard is now Win11, gea-engineer is Win10 — same unattend file + # drives both because the RunSynchronous entries are OS-version-agnostic). + standard_types: + - gea-standard + - gea-engineer + - ge-standard + - ge-engineer deploy_subdirs: - Applications - Control @@ -421,6 +429,36 @@ mode: '0644' ignore_errors: yes + # Oracle Client 11.2 is the first app the preinstall runner executes, so it + # has to be present on-disk before the first client images. The 686 MB + # Oracle_OracleDatabase_11r2_V03.zip doesn't belong in git; it rides on the + # USB under oracle/ alongside the BIOS exes. Install-Oracle11r2.cmd is + # tracked at playbook/preinstall/oracle/ and arrives via usb_mount. + - name: "Create pre-install/installers/oracle/ staging dir" + file: + path: /srv/samba/enrollment/pre-install/installers/oracle + state: directory + mode: '0755' + ignore_errors: yes + + - name: "Deploy Install-Oracle11r2.cmd to pre-install/installers/oracle/" + copy: + src: "{{ usb_mount }}/preinstall/oracle/Install-Oracle11r2.cmd" + dest: /srv/samba/enrollment/pre-install/installers/oracle/Install-Oracle11r2.cmd + mode: '0755' + ignore_errors: yes + + - name: "Deploy Oracle 11.2 zip (686 MB) from USB to pre-install/installers/oracle/" + shell: > + if [ -f "{{ usb_root }}/oracle/Oracle_OracleDatabase_11r2_V03.zip" ]; then + cp -f "{{ usb_root }}/oracle/Oracle_OracleDatabase_11r2_V03.zip" \ + /srv/samba/enrollment/pre-install/installers/oracle/ + echo "Deployed Oracle 11.2 zip ($(stat -c %s /srv/samba/enrollment/pre-install/installers/oracle/Oracle_OracleDatabase_11r2_V03.zip) bytes)" + else + echo "WARNING: {{ usb_root }}/oracle/Oracle_OracleDatabase_11r2_V03.zip not on USB - preinstall runner will fail on Oracle step until this file is staged at /srv/samba/enrollment/pre-install/installers/oracle/" + fi + ignore_errors: yes + - name: "Deploy BIOS check script and manifest to pre-install/bios/" copy: src: "{{ usb_mount }}/shopfloor-setup/BIOS/{{ item }}" @@ -590,6 +628,19 @@ loop: "{{ shopfloor_types }}" ignore_errors: yes + # gea-standard (Win11) + gea-engineer (Win10) + ge-standard/engineer all use + # the same unattend. force: yes because drift between this file and the + # shared copies is what caused the Win10/Win11 search-cleanup regression + # earlier this session (d49f516) — prefer repo as source of truth. + - name: "Deploy standard/engineer unattend.xml" + copy: + src: "{{ usb_mount }}/FlatUnattendW10.xml" + dest: "{{ samba_share }}/{{ item }}/Deploy/FlatUnattendW10.xml" + mode: '0644' + force: yes + loop: "{{ standard_types }}" + ignore_errors: yes + - name: "Daily cron to create/refresh Media.tag for all images" copy: content: |