Быстрое создание машин: cloud-init, тип системы для установщика, постоянный адрес в сети NAT
- готовые образы: пользователь, пароль (хеш SHA-512) и SSH-ключ через virt-install --cloud-init, диск увеличивается до выбранного размера, osinfo из каталога - установка с ISO: выбор Linux / Windows 11 (UEFI + TPM) / Windows 10 / другая; Windows получает SATA-диск и сетевую карту e1000e - каждая машина в NAT получает фиксированный MAC и резервацию DHCP — адрес не меняется, пробросы портов не ломаются; при удалении резервация снимается - xorriso в пакетах ноды (для seed-образа cloud-init) - tests/test_quickvm.py; тест каталога скачиваний сделан детерминированным Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019LEUXMcdZo7b87mjkUsPgg
Этот коммит содержится в:
@@ -80,3 +80,12 @@ def os_type(type_id: str) -> dict[str, Any]:
|
||||
def image_filename(entry: dict[str, Any], arch: str) -> str:
|
||||
url = entry["arches"][arch]["url"]
|
||||
return url.rsplit("/", 1)[-1]
|
||||
|
||||
|
||||
def entry_for_filename(name: str) -> dict[str, Any] | None:
|
||||
"""Catalog entry whose download has this file name (any architecture)."""
|
||||
for entry in CLOUD_IMAGES:
|
||||
for arch in entry["arches"].values():
|
||||
if arch["url"].rsplit("/", 1)[-1] == name:
|
||||
return entry
|
||||
return None
|
||||
|
||||
Ссылка в новой задаче
Block a user