Compare commits
1 commit
main
...
draft/suse
| Author | SHA1 | Date | |
|---|---|---|---|
|
9014969e79 |
1 changed files with 322 additions and 0 deletions
322
suse-autoyast-deploy-phase1.md
Normal file
322
suse-autoyast-deploy-phase1.md
Normal file
|
|
@ -0,0 +1,322 @@
|
|||
# suse-autoyast-deploy-phase1.md
|
||||
|
||||
REFER TO ALL RELEVANT OFFICIAL SOFTWARE MANUALS
|
||||
|
||||
Orchestrator workflow for the VM-based test cycle: derive a VM spec,
|
||||
build the VM, run an AutoYaST deploy against it, verify the result.
|
||||
Phase 1 of the initial deploy workflow — see Section: Relationship to
|
||||
bare-metal deployment. Calls into separate documents for input and
|
||||
subprocess steps, same pattern as a bash orchestrator calling libraries
|
||||
and subscripts.
|
||||
|
||||
---
|
||||
|
||||
## SECTION: Scope
|
||||
<!-- source: ce-authored -->
|
||||
|
||||
Assumes `tinkerpad13-tooling-workflow-proposed.md` is already applied.
|
||||
Assumes `opensuse-deploy-workflow-proposed.md` for version selection,
|
||||
media policy, and sudo/targetpw background.
|
||||
|
||||
| Referenced document | Called between |
|
||||
|---|---|
|
||||
| `device-profile.md` | Start of workflow |
|
||||
| `autoyast-crafting-workflow.md` | VM creation and install pass |
|
||||
| `autoyast-error-debugging-workflow.md` | Install pass and recording |
|
||||
| `suse-deploy-post-install-testing-workflow.md` | Install pass and recording |
|
||||
|
||||
None of these four are written yet. This workflow holds the sequence
|
||||
and handoff points; each can be authored independently without changing
|
||||
this document.
|
||||
|
||||
[NOTE] Deployment planning — confirming a client's proposed use cases
|
||||
are actually achievable on the hardware/spec being deployed, and making
|
||||
pre-deployment recommendations — is a separate service, not part of
|
||||
this workflow. This workflow tests whether a base install completes and
|
||||
verifies correctly; it does not evaluate whether the deployment is the
|
||||
right fit for the client's goals.
|
||||
|
||||
---
|
||||
|
||||
## SECTION: Relationship to bare-metal deployment
|
||||
<!-- source: ce-authored -->
|
||||
|
||||
This document is `suse-autoyast-deploy-phase1.md` — workbench VM testing
|
||||
on tinkerpad13. Once a pass is clean, proceed to
|
||||
`suse-autoyast-deploy-phase2.md` (not yet written) — same DVD image,
|
||||
same verified profile, same verification checklist, executed on the
|
||||
real device at the client site.
|
||||
|
||||
Phase 2 doesn't re-decide anything Phase 1 already settled. It adds what
|
||||
only exists on real hardware: the literal physical-presence requirement,
|
||||
any hardware-specific manual checks flagged in Section: Device spec
|
||||
gathering, and live deploy mods if the real device deviates from what
|
||||
the VM predicted.
|
||||
|
||||
The retained VM, snapshot, and clone mechanics in this document exist
|
||||
because of this relationship — the retained VM is kept specifically so
|
||||
Phase 2's real-world proving period has something faithful to check
|
||||
itself against.
|
||||
|
||||
---
|
||||
|
||||
## SECTION: Device spec gathering — via device-profile.md
|
||||
<!-- source: ce-authored -->
|
||||
|
||||
Refer to `device-profile.md` to set VM specifications matching the
|
||||
client device. Not yet designed. Required variable categories: technical
|
||||
specs, connectivity state, device purpose/role. Covers base OS install
|
||||
only — GPU driver stack, services, and applications are out of scope,
|
||||
handled by separate provisioning later.
|
||||
|
||||
- [ ] Apply CE's 25% headroom rule against tinkerpad13's total capacity,
|
||||
not the VM spec in isolation.
|
||||
- [ ] Confirm one VM at a time — series before parallel.
|
||||
|
||||
---
|
||||
|
||||
## SECTION: VM creation — TUI, scripted
|
||||
<!-- source: ce-authored -->
|
||||
|
||||
- [ ] Build the VM:
|
||||
|
||||
```sh
|
||||
virt-install \
|
||||
--name CLIENT-PROFILE-NAME \
|
||||
--memory 2048 \
|
||||
--vcpus 2 \
|
||||
--disk size=20 \
|
||||
--cdrom /path/to/downloaded.iso \
|
||||
--os-variant opensuse-leap16.0 \
|
||||
--network network=default \
|
||||
--graphics spice
|
||||
```
|
||||
|
||||
Adjust `--memory`, `--vcpus`, `--disk`, `--os-variant` per
|
||||
`device-profile.md` and target SUSE version.
|
||||
|
||||
- [ ] Confirm the VM exists and is in the expected state:
|
||||
|
||||
```sh
|
||||
virsh list --all
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## SECTION: Profile crafting — referenced
|
||||
<!-- source: ce-authored -->
|
||||
|
||||
See `autoyast-crafting-workflow.md` (not yet written) for authoring or
|
||||
selecting the `autoinst.xml` profile before proceeding.
|
||||
|
||||
---
|
||||
|
||||
## SECTION: Install pass — GUI, attended
|
||||
<!-- source: ce-authored -->
|
||||
|
||||
- [ ] Confirm DVD image version/date and profile version are recorded.
|
||||
- [ ] Check whether `sudo-policy-wheel-auth-self` ships on the DVD or
|
||||
requires a mid-install network pull (see
|
||||
`opensuse-deploy-workflow-proposed.md`, Section: Sudo / targetpw
|
||||
fix).
|
||||
- [ ] Watch the install:
|
||||
|
||||
```sh
|
||||
virt-viewer CLIENT-PROFILE-NAME
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## SECTION: Post-install verification — referenced
|
||||
<!-- source: ce-authored -->
|
||||
|
||||
- [ ] Run the verification checklist from
|
||||
`opensuse-deploy-workflow-proposed.md`.
|
||||
|
||||
See `autoyast-error-debugging-workflow.md` (not yet written) for
|
||||
diagnosing a failed check to root cause.
|
||||
|
||||
---
|
||||
|
||||
## SECTION: Post-install debugging and inspection — referenced
|
||||
<!-- source: ce-authored -->
|
||||
|
||||
See `suse-deploy-post-install-testing-workflow.md` (not yet written) for
|
||||
inspection beyond pass/fail verification.
|
||||
|
||||
---
|
||||
|
||||
## SECTION: Post-install — VM lifecycle, TUI
|
||||
<!-- source: ce-authored -->
|
||||
|
||||
- [ ] Shut down or start the VM as needed:
|
||||
|
||||
```sh
|
||||
virsh shutdown CLIENT-PROFILE-NAME
|
||||
virsh start CLIENT-PROFILE-NAME
|
||||
```
|
||||
|
||||
[WARNING] Do not `undefine --remove-all-storage` on a successful pass —
|
||||
see Section: VM retention below.
|
||||
|
||||
---
|
||||
|
||||
## SECTION: VM retention — 90-day proving period
|
||||
<!-- source: ce-authored -->
|
||||
|
||||
Retain the VM 90 days past physical deployment rather than deleting
|
||||
immediately — the exact VM that produced a working install is the first
|
||||
diagnostic step if an issue surfaces on the client's real hardware
|
||||
within that window.
|
||||
|
||||
- [ ] Shut down, don't undefine, on a successful pass.
|
||||
- [ ] Record retention start date and client/device in the pass's
|
||||
handoff record.
|
||||
- [ ] Budget total retained-VM storage against tinkerpad13's capacity,
|
||||
25% headroom rule applied cumulatively, not per-VM.
|
||||
- [ ] At 90 days with no traceable issues, remove:
|
||||
|
||||
```sh
|
||||
virsh undefine CLIENT-PROFILE-NAME --remove-all-storage
|
||||
```
|
||||
|
||||
- [ ] If an issue surfaces within the window, reproduce against the
|
||||
retained VM first — confirms whether it's profile-level or
|
||||
hardware-specific to the physical device.
|
||||
|
||||
---
|
||||
|
||||
## SECTION: Live deploy mods vs. post-deploy additions — which tool applies
|
||||
<!-- source: ce-authored -->
|
||||
|
||||
These are two different kinds of change to the retained VM, and they
|
||||
call for different tools because they sit at different distances from
|
||||
this workflow's own scope:
|
||||
|
||||
**Live deploy mods** — corrections discovered during the actual physical
|
||||
deployment that deviate from what the tested profile/VM produced (a
|
||||
hardware quirk forced a different config, a manual fix was needed
|
||||
on-site). These stay *within* this workflow's scope — they're base
|
||||
install corrections, the same category of thing this whole workflow
|
||||
tests for. Use **snapshot**: checkpoint at base-install-verified, apply
|
||||
the deviation directly to the retained VM, and the snapshot remains
|
||||
available as a return point if the deviation itself turns out wrong.
|
||||
|
||||
**Post-deploy additions** — a server stack, an AI stack, applications,
|
||||
anything from the config/services layer this workflow explicitly
|
||||
excludes (Section: Device spec gathering). These are a large leap in
|
||||
scope, not a correction to the base install — a genuinely separate
|
||||
workflow's work, even if it happens to start from this VM. Use
|
||||
**clone**: fork the VM first, do all of that work in the fork, leave the
|
||||
retained original as the untouched base-install artifact.
|
||||
|
||||
Rule of thumb: if the change is something `autoyast-crafting-workflow.md`
|
||||
or `autoyast-error-debugging-workflow.md` would recognize as their own
|
||||
territory, it's a live deploy mod — snapshot. If it's something a future
|
||||
Ansible playbook or application-layer workflow would own instead, it's a
|
||||
post-deploy addition — clone.
|
||||
|
||||
### Clone — post-deploy additions
|
||||
|
||||
- [ ] Fork the VM before starting any config/services-layer work:
|
||||
|
||||
```sh
|
||||
virt-clone --original CLIENT-PROFILE-NAME --name CLIENT-PROFILE-NAME-clone --auto-clone
|
||||
```
|
||||
|
||||
- [ ] Do all further exploration in the clone. The retained original
|
||||
stays untouched until either its 90 days elapse or it's needed to
|
||||
reproduce an actual reported issue.
|
||||
|
||||
### Snapshot — live deploy mods
|
||||
|
||||
- [ ] Confirm the disk is qcow2 — snapshots require it:
|
||||
|
||||
```sh
|
||||
virsh domblklist CLIENT-PROFILE-NAME --details
|
||||
```
|
||||
|
||||
- [ ] Checkpoint immediately after verification passes, before any
|
||||
deviation is applied:
|
||||
|
||||
```sh
|
||||
virsh snapshot-create-as \
|
||||
--domain CLIENT-PROFILE-NAME \
|
||||
--name base-install-verified \
|
||||
--description "Base install complete, verification checklist passed" \
|
||||
--disk-only \
|
||||
--atomic
|
||||
```
|
||||
|
||||
- [ ] Apply the live deploy mod to the retained VM directly after the
|
||||
checkpoint.
|
||||
- [ ] If the mod turns out problematic later, revert:
|
||||
|
||||
```sh
|
||||
virsh snapshot-revert CLIENT-PROFILE-NAME base-install-verified
|
||||
```
|
||||
|
||||
[WARNING] Internal snapshots require qcow2 and are not supported on VMs
|
||||
using pflash-based (OVMF/UEFI) firmware. Use external snapshots
|
||||
(`--diskspec ...,snapshot=external`) for those instead, or rely on clone
|
||||
and 90-day retention alone.
|
||||
|
||||
[NOTE] A snapshot is not a substitute for the 90-day retention policy —
|
||||
it depends on the same base disk image it was taken from. It's a
|
||||
finer-grained checkpoint within the retention period, not a replacement
|
||||
for keeping the VM itself.
|
||||
|
||||
- [ ] Limit snapshot chains to a small number — one checkpoint at
|
||||
base-install-verified is normally sufficient.
|
||||
|
||||
### Recording a live deploy mod
|
||||
|
||||
- [ ] Record the deviation in the pass's handoff record — what changed,
|
||||
why it deviated from the tested profile, and that the
|
||||
snapshot/checkpoint exists.
|
||||
- [ ] If a deviation depends on physical hardware the VM never modeled
|
||||
and can't be fully reproduced, note that gap explicitly rather
|
||||
than implying parity that doesn't exist.
|
||||
|
||||
[NOTE] Same honesty standard as tinkerpad's "13b" — an unrecorded
|
||||
deviation is worse than one that never happened.
|
||||
|
||||
---
|
||||
|
||||
## SECTION: Test pass — recording
|
||||
<!-- source: ce-authored -->
|
||||
|
||||
- [ ] Write a named, dated handoff record for the pass. Include:
|
||||
- [ ] VM spec used (CPU, RAM, disk)
|
||||
- [ ] DVD image version/date
|
||||
- [ ] Profile version
|
||||
- [ ] Verification checklist results
|
||||
- [ ] Retention start date
|
||||
- [ ] Any manual correction made outside the documented flow — named
|
||||
honestly, per tinkerpad's "13b" precedent
|
||||
- [ ] Clean pass → proceed to physical deployment
|
||||
(`suse-autoyast-deploy-phase2.md`), same DVD image and profile,
|
||||
no changes.
|
||||
- [ ] Failed pass → new pass, one issue at a time, own handoff record.
|
||||
|
||||
---
|
||||
|
||||
## SECTION: Known unknowns going into the first Leap/SLES test
|
||||
<!-- source: ce-authored -->
|
||||
|
||||
- Whether `sudo-policy-wheel-auth-self` behaves identically on Leap/SLES
|
||||
as on Tumbleweed
|
||||
- Whether it ships on the Leap/SLES DVD or needs a mid-install network
|
||||
pull
|
||||
- The `<name>` vs `<n>` AutoYaST tag inconsistency, unresolved since
|
||||
tinkerpad
|
||||
- Whether firewall zone rules apply correctly post-install — never
|
||||
verified on tinkerpad
|
||||
|
||||
---
|
||||
**Source:** CE OS — automation testing process, developed 2026-07-25
|
||||
**Source-type:** `ce-authored`
|
||||
**Licence:** John A. Hoeven with the ethical assistance of Claude AI — Public Domain (CE FFM)
|
||||
**Verified-on:** unverified — proposed, pending first real Leap/SLES VM test pass
|
||||
**Session:** 2026-07-25
|
||||
**Filename:** suse-autoyast-deploy-phase1.md
|
||||
Loading…
Add table
Add a link
Reference in a new issue