अपडेट पर वापस जाएँ
New releaseSep 21, 2026

holos v0.6.3

YAML कंपोज़ फ़ाइलों का उपयोग करने वाला घोषणात्मक KVM/QEMU VM ऑर्केस्ट्रेशन टूल। बिना libvirt या XML के cloud-init, SSH, PCI पासथ्रू और इमेज सत्यापन के साथ मल्टी-VM स्टैक का प्रबंधन करता है।

साझा करें
holos

KVM के लिए Docker compose। एक YAML फ़ाइल में मल्टी-VM स्टैक परिभाषित करें। न libvirt, न XML, न distributed control plane।

वेबसाइट और दस्तावेज़: https://zeroecco.github.io/holos/

मूल इकाई VM है, कंटेनर नहीं। प्रत्येक वर्कलोड इंस्टेंस को अपना kernel boundary, qcow2 overlay, cloud-init seed, और जनरेट किया गया SSH एक्सेस मिलता है।

त्वरित शुरुआत

Linux + /dev/kvm आवश्यक है। macOS बिल्ड ऑफ़लाइन कमांड जैसे validate, import, images, और pull चलाते हैं, लेकिन up और run के लिए KVM होस्ट चाहिए।

एक डिस्पोज़ेबल VM, बिना compose फ़ाइल:

holos run alpine
holos exec <printed-project-name>
holos down <printed-project-name>

एक सिंगल-सर्विस स्टैक जिसे आप curl कर सकते हैं। holos.yaml के रूप में सहेजें:

name: hello

services:
  web:
    image: ubuntu:noble
    ports:
      - "8080:80"
    cloud_init:
      packages:
        - nginx
      write_files:
        - path: /var/www/html/index.html
          content: "hello from holos\n"
      runcmd:
        - systemctl restart nginx
holos up
curl localhost:8080
holos down hello

यह एक असली VM है जो cloud image बूट कर रही है, पैकेज इंस्टॉल कर रही है, कॉन्फ़िग लिख रही है, और होस्ट पोर्ट फ़ॉरवर्ड कर रही है।

इंस्टॉल

प्री-बिल्ट बाइनरीज़ हर GitHub release के साथ संलग्न हैं:

TAG=v0.6.3
ASSET=holos_${TAG#v}_Linux_x86_64.tar.gz
BASE=https://github.com/zeroecco/holos/releases/download/$TAG
curl -LO $BASE/$ASSET
curl -LO $BASE/checksums.txt
grep " $ASSET$" checksums.txt | sha256sum -c -
gh attestation verify $ASSET --repo zeroecco/holos
sudo tar -xz -C /usr/local/bin -f $ASSET holos
holos version
holos doctor

रिलीज़ पेजों में SHA-256 चेकसम और साइन किए गए provenance के लिए GitHub artifact attestations शामिल हैं। प्रोडक्शन होस्ट पर बाइनरीज़ इंस्टॉल करने से पहले दोनों सत्यापित करें।

या सोर्स से बिल्ड करें:

go build -o bin/holos ./cmd/holos
go test ./...
bin/holos doctor

CLI

holos up [-f holos.yaml] [--locked] [--lockfile path] [--lock-timeout 5m|--no-wait]
                                     सभी सेवाएँ शुरू करें
holos run [flags] <image> [-- cmd...] एक बार का VM लॉन्च करें
holos down <project>                 प्रोजेक्ट रोकें और हटाएँ
holos ps [-f holos.yaml]             चल रहे प्रोजेक्ट सूचीबद्ध करें
holos start [-f holos.yaml] [svc]    रुकी हुई सेवा या सभी सेवाएँ शुरू करें
holos stop [-f holos.yaml] [svc]     एक सेवा या सभी सेवाएँ रोकें
holos console <project> [<inst>]     सीरियल कंसोल से जोड़ें
holos exec <project> [<inst>] [-- cmd...]
                                     इंस्टेंस में SSH करें
holos logs <project> [<svc|inst>]    कंसोल लॉग दिखाएँ
holos inspect [-f holos.yaml] [project|instance]
                                     स्थिति को JSON के रूप में निरीक्षण करें
holos validate [-f holos.yaml]       compose फ़ाइल सत्यापित करें (--capacity/--network)
holos pull <image>                   cloud image खींचें
holos verify <image>|--all           कैश्ड image चेकसम सत्यापित करें
holos images                         उपलब्ध images सूचीबद्ध करें
holos images lock -f holos.yaml [-o holos.images.lock]
                                     प्रोजेक्ट image lockfile लिखें
holos snapshots {create|list|rm|restore|export} ... root snapshots प्रबंधित करें
holos volumes [-f holos.yaml] [--json]
                                     नामित volumes सूचीबद्ध करें
holos volumes rm <project> <volume>  डिटैच्ड नामित volume हटाएँ
holos volumes export <project> <volume> <path>
                                     डिटैच्ड नामित volume निर्यात करें
holos volumes snapshot <project> <volume> <snapshot>
                                     डिटैच्ड नामित volume का snapshot लें
holos volumes snapshots <project> <volume>
                                     volume snapshots सूचीबद्ध करें
holos volumes snapshot-rm <project> <volume> <snapshot>
                                     volume snapshot हटाएँ
holos volumes snapshot-restore <project> <volume> <snapshot>
                                     volume snapshot पुनर्स्थापित करें
holos volumes snapshot-export <project> <volume> <snapshot> <path>
                                     volume snapshot निर्यात करें
holos volumes resize [--shrink] <project> <volume> <size>
                                     डिटैच्ड नामित volume का आकार बदलें
holos devices [--gpu]                PCI devices और IOMMU groups सूचीबद्ध करें
holos completion <bash|zsh|fish>      shell completion स्क्रिप्ट प्रिंट करें
holos doctor [--json]                होस्ट निर्भरताएँ जाँचें
holos install [-f holos.yaml] [--system] [--enable]
                                     systemd unit इंस्टॉल करें
holos uninstall [-f holos.yaml] [--system]
                                     systemd unit हटाएँ
holos import [vm...] [--all] [--xml file] [--connect uri] [-o file]
                                     virsh VMs को holos.yaml में बदलें

दस्तावेज़

  • वेबसाइट: लैंडिंग पेज और रेंडर किए गए दस्तावेज़।
  • CLI गाइड: ad hoc VMs, exec, systemd install, virsh import, और doctor
  • Compose फ़ाइल: services, volumes, healthchecks, networking, PCI passthrough, Dockerfile provisioning, और defaults।
  • JSON Schema: holos.yaml के लिए एडिटर completion और validation।
  • उदाहरण: README-शैली की व्याख्याओं के साथ रन करने योग्य और टेम्पलेट स्टैक।
  • अनुपलब्ध सुविधाएँ: प्राथमिकता वाले अंतराल जो holos के single-host KVM compose लक्ष्य में फिट होते हैं।
  • विकास: build, test, होस्ट आवश्यकताएँ, और रिलीज़ प्रक्रिया।
  • सुरक्षा नीति: समर्थित संस्करण और निजी रिपोर्टिंग।
  • खतरा मॉडल / हार्डनिंग: image verification, state permissions, locks, और परिचालन मार्गदर्शन।
  • योगदान: build, test, style, और PR परंपराएँ।

उदाहरण

छोटे nginx उदाहरण से शुरू करें:

holos up -f examples/alpine-nginx/holos.yaml
curl localhost:8080
holos down alpine-nginx

examples डायरेक्टरी में Dockerfile provisioning, GPU passthrough, और एक मल्टी-सर्विस स्टैक भी शामिल है जो depends_on, जनरेट किया गया config, और replicas दिखाता है।

होस्ट आवश्यकताएँ

  • Linux with /dev/kvm
  • qemu-system-x86_64
  • qemu-img
  • cloud-localds, genisoimage, mkisofs, या xorriso में से एक
  • UEFI या PCI passthrough के लिए OVMF / edk2-ovmf firmware
  • holos exec और healthchecks के लिए ssh

होस्ट जाँचने के लिए holos doctor चलाएँ।

समस्या निवारण

पहले बूट पर SSH रीसेट होता है

kex_exchange_identification: read: Connection reset by peer का मतलब आमतौर पर यह है कि cloud-init अभी भी host keys रीजनरेट कर रहा है और sshd रीस्टार्ट कर रहा है। holos exec डिफ़ॉल्ट रूप से 60s तक प्रतीक्षा करता है, लेकिन बहुत धीमे पहले बूट को एक और प्रयास या holos exec -w 5m <project> की आवश्यकता हो सकती है।

कंसोल Login incorrect दिखाता है

सीरियल कंसोल cloud-init के उपयोगकर्ता बनाने से पहले autologin का प्रयास कर सकता है। कंसोल लॉग में cloud-init ... finished की प्रतीक्षा करें, फिर holos exec का उपयोग करें। Cloud images आमतौर पर कंसोल पासवर्ड के साथ नहीं आते, और holos कोई पासवर्ड नहीं जोड़ता।

macOS पर up विफल होता है

KVM एक Linux kernel सुविधा है। macOS बाइनरीज़ लेखन और ऑफ़लाइन कमांड के लिए उपयोगी हैं, लेकिन holos up और holos run को Linux KVM होस्ट पर निष्पादित होना चाहिए।

गैर-लक्ष्य

holos Kubernetes नहीं है। यह multi-host clustering, live migration, service meshes, overlay networks, schedulers, CRDs, या control plane quorum को हल करने का प्रयास नहीं करता।

लक्ष्य KVM को single-host स्टैक के लिए व्यावहारिक बनाना है, बिना Kubernetes के परिचालन स्वरूप को आयात किए।

लाइसेंस

Apache License, Version 2.0 के अंतर्गत लाइसेंस प्राप्त। एट्रिब्यूशन के लिए NOTICE देखें।

श्रेणियाँ