使用 SVM 首次启动脚本
2024年8月2日
ID 97916
SVM 支持使用首次启动脚本来运行配置命令。建议使用 SVM 首次启动脚本执行下列任务:
- 配置使用静态 IP 寻址时的 SVM 网络设置。您可以使用以下命令:
network, dns, manageservices
(来重启网络服务)。 - 配置 SSH 密钥授权以便无需输入
klconfig
账户密码(配置密码)即可访问 SVM。setsshkey
命令为该目的而提供。
不建议使用一长串命令,因为首次启动脚本的目的是执行最少的命令集。
使用标准输入流的命令,例如 passwd
,不应该被发送至首次启动脚本。这会导致无法启动 SVM。
若要把命令发送至首次启动脚本,您需要按以下格式指定命令:
KL_CMD1="<
命令 1
>" KL_CMD2="<
命令
2>" … KL_CMDn="<
命令
N>"
其中 <
命令
>
是命令的名称,带有参数(如有必要)。
例如,下列命令序列可让您配置使用静态 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 类型:
- XenServer 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%" ]