使用 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%" ]