microsoft / microsoft/azurelinux

[4.0] Offline installer does not handle HTTP URLs in inst.ks kernel parameter

Open Beginner friendly
#17,915 1 comment 0 reactions 0 assignees View on GitHub
4.0 enhancement
Dominant language
Python
Stars
5.3k
Forks
707
Avg merge
2d 18h
Merged PRs (30d)
235

Description

**Azure Linux version**
Azure Linux 4.0

**Deployment / platform**
KVM VM (PXE network boot)

**Is your feature request related to a problem? Please describe.**
When PXE booting with `inst.ks=http://server/path/ks.cfg `on the kernel cmdline, the installer wrapper (`anaconda-launcher.sh`) passes the URL directly to `anaconda --text --kickstart="http://server/path/ks.cfg"`. Anaconda can't fetch URLs when called this way and fails with "Kickstart file ... is missing."
The network is working fine at that point. Curl can download the file from the same shell. The problem is just that anaconda expects a local file path when called as a subprocess.

**Describe the solution you'd like**
Have `anaconda-launcher.sh` download the URL to a local file before passing it to anaconda:
```
if [[ "$CUSTOM_KS" == http* ]]; then
curl -sf -o /tmp/ks.cfg "$CUSTOM_KS" && CUSTOM_KS="/tmp/ks.cfg"
fi
```

**Describe alternatives you've considered**
Patching the squashfs after ISO download to inject this logic. Works but adds complexity to the deployment pipeline.

**Additional context**
This affects any PXE based deployment that passes a kickstart URL via kernel cmdline. The fix is a few lines in `anaconda-launcher.sh`.

Contributor guide

Open the contributing guide

Research direction

Start with anaconda-launcher.sh and trace how the inst.ks kernel parameter becomes CUSTOM_KS before anaconda is invoked. Verify the HTTP kickstart is downloaded to a local path and that the local path is passed to anaconda, then test the PXE scenario with an HTTP URL and confirm the installer proceeds.

Written by the indexing model from the issue text.

Assessment

Tech stack
linux, shell
Domain
devops, operating-systems
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
76/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.