feat(integration-vm): force DHCP via explicit cloud-init network-config
Don't rely on the genericcloud image's network fallback; the seed now carries a network-config forcing dhcp4 on en* interfaces. A correct prerequisite for the VM to network once cloud-init processes the seed. (Note: a separate no-DHCP-lease issue on first real boot is still under investigation — the guest isn't networking and, under the no-sudo claude model, the VM console/logs aren't introspectable without libguestfs; see next steps.) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
e5256696d6
commit
65bacb25fa
1 changed files with 10 additions and 1 deletions
|
|
@ -190,7 +190,16 @@ def up(host, name=None, mem_mib=DEFAULT_MEM_MIB, vcpus=DEFAULT_VCPUS):
|
|||
(RUN_DIR / "user-data").write_text(render_user_data(_ssh_pubkey(), "ansible"))
|
||||
(RUN_DIR / "meta-data").write_text(render_meta_data(f"iid-{name}", name))
|
||||
seed = CACHE_DIR / f"{name}-seed.img"
|
||||
sh(["cloud-localds", str(seed), str(RUN_DIR / "user-data"), str(RUN_DIR / "meta-data")])
|
||||
# Force DHCP on the VM NIC — don't rely on the genericcloud image's network fallback.
|
||||
(RUN_DIR / "network-config").write_text(
|
||||
'version: 2\n'
|
||||
'ethernets:\n'
|
||||
' primary:\n'
|
||||
' match:\n'
|
||||
' name: "en*"\n'
|
||||
' dhcp4: true\n')
|
||||
sh(["cloud-localds", "--network-config", str(RUN_DIR / "network-config"),
|
||||
str(seed), str(RUN_DIR / "user-data"), str(RUN_DIR / "meta-data")])
|
||||
console = CACHE_DIR / f"{name}-console.log"
|
||||
sh(["virt-install", "--name", name, "--memory", str(mem_mib), "--vcpus", str(vcpus),
|
||||
"--import",
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue