Show Table of Contents
A.11. 使用 VDSM hook
为了改变一个虚拟机的 VDSM 定义,
before_vm_start 脚本可以在 libvirt 前修改 domain XML。如需这样做,您需要非常的小心。hook 脚本可能会影响到 VDSM 的正常运行,一个有 bug 的脚本可能会导致整个 Red Hat Virtualization 环境出现故障。特别需要注意的是,永远不要更改域的 UUID;在没有足够背景知识的情况下不要试图从域中删除一个设备。
before_vdsm_start 和 after_vdsm_stop hook 脚本都是以 root 用户执行的。如果其它的 hook 脚本需要系统的 root 权限,您需要使用 sudo 命令来升级权限。因为 hook 脚本是以非交互的形式被运行的,您必须配置您的 /etc/sudoers 来允许 vdsm 用户在不需要重新输入密码的情况下使用 sudo。
例 A.4. 为 VDSM hook 配置 sudo
在这个实例中,
sudo 命令被配置为允许 vdsm 用户以 root 的身份运行 /bin/chown 命令。
- 使用
root用户登录到虚拟主机。 - 在文本编辑器中打开
/etc/sudoers。 - 把以下行添加到文件中:
vdsm ALL=(ALL) NOPASSWD: /bin/chown
它设定了vdsm用户可以以root用户的身份运行/bin/chown命令。NOPASSWD参数指定了在调用sudo时,用户不会被提示输入密码。
在进行完这个配置后,VDSM hook 就可以使用
sudo 命令来以 root 用户的身份运行 /bin/chown。以下的这段 Python 代码在 /my_file 文件中使用 sudo 来以 root 用户的身份执行 /bin/chown。
retcode = subprocess.call( ["/usr/bin/sudo", "/bin/chown", "root", "/my_file"] )
hook 脚本的标准错误输出会被保存在 VDSM 的日志文件中。这些信息可以被用来进行故障排除。

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.