Kaspersky Security for Virtualization 5.x Light Agent

使用 SVM 首次啟動指令碼

2024年1月10日

ID 179764

SVM 支援使用首次啟動指令碼來執行配置指令。建議使用 SVM 首次啟動指令碼執行下列工作:

  • 配置使用靜態 IP 位址時的 SVM 網路設定。您可以使用以下指令:network、dns、manageservices(來重新啟動網路服務)。
  • 配置 SSH 金鑰授權以在沒有 klconfig 帳戶密碼的情況下存取 SVM(組態密碼)。Setsshkey 指令即為此目的而提供。

不建議使用一長串指令,因為首次啟動指令碼的目的是執行最少的指令集。

使用標準輸入流的指令,例如 passwd 就不應被傳送至首次啟動指令碼。這會導致無法啟動 SVM。

若要把指令傳送至首次啟動指令碼,您需要以下列格式指定指令:

KL_CMD1="<command 1>" KL_CMD2="<command 2>" … KL_CMDn="<command N>"

其中 <command> 是指令名稱,帶有參數(如有必要)。

例如,下列指令序列可讓您配置使用靜態 IP 位址時的 SVM 網路設定:

KL_CMD1="network eth0 10.65.78.35 255.255.255.0 10.65.78.255 10.65.78.1" KL_CMD2="manageservices restart network"

當執行首次啟動指令碼時,指令將依傳送至首次啟動指令碼的順序進行編號和執行。

指令碼執行後,在資料夾 /var/log/kaspersky/la/ 中將會建立包含指令碼執行結果且名為 boot_config.log 的檔案。

您可以在建立首次啟動指令碼時使用下列特殊指令:

  • RESET – 刪除 boot_config_done 檔案(首次啟動指令碼已經執行的標記)。因此下次啟動 SVM 時,也將執行傳送至首次啟動指令碼的所有指令。
  • ALWAYS – 即使 SVM 首次啟動指令碼已經執行也遵照此指令執行指令(存在 boot_config_done 檔案)。
  • REPORT – 將指令執行結果資訊寫入檔案。

範例:

KL_CMD1="ALWAYS" KL_CMD2="network eth0 10.65.78.35 255.255.255.0 10.65.78.255 10.65.78.1"

用來將指令傳送至首次啟動指令碼的機制,視 Hypervisor 類型會有所不同:

  • Citrix Hypervisor:可以下列格式將首次啟動指令新增到內核命令列:

    KL_CMD1="…" KL_CMD2="…"

  • Microsoft Windows Server(Hyper-V)Hypervisor:使用交換機碼值組的系統(詳細資訊請參閱 Microsoft 文件)。
  • VMware ESXi Hypervisor:首次啟動的指令可以下列方式之一傳達:
    • 在 VMX 設定檔中
    • 在 VMware vSphere Web Client Console 中:編輯設定 / 選項 / 進階 / 一般 / 配置參數
    • 使用 vmware-cmd setguestinfo 指令

    必須以下列格式指定首次啟動指令:

    guestinfo.klfirstboot.cmd1

    guestinfo.klfirstboot.cmd2

  • KVM Hypervisor:指令可以字串格式插入檔案 /opt/kaspersky/la/bin/kvm_first_boot_args:

    KL_CMD1="…" KL_CMD2="…"

  • Proxmox VE Hypervisor:指令可以下列格式插入檔案 /var/opt/kaspersky/la/patches/default_patch_index/bin/kvm_first_boot_args:

    KL_CMD0=%command1%

    KL_CMD1=%command2%

  • R-Virtualization Hypervisor:使用 QEMU 來賓代理公用程式,讓您在 root 帳戶下執行指令:

    POST /api/0/vm/%vm_id%/execute

    在要求主體中:

    command_with_args=[ "bash", "-c", "%command%" ]

此文章對您有幫助嗎?
我們可以如何改善?
感謝您的意見回饋!您正協助我們改善。
感謝您的意見回饋!您正協助我們改善。