A.11. VDSM Hook 执行


before_vm_start 脚本可以编辑域 XML,以在到达 libvirt 之前更改虚拟机的 VDSM 定义。在进行操作时必须小心。hook 脚本可能会破坏 VDSM 的运作,而错误脚本可能会导致 Red Hat Virtualization 环境中断。特别是,请确保从未更改域的 UUID,且不会尝试在没有足够背景知识的情况下从域中删除设备。

before_vdsm_startafter_vdsm_stop hook 脚本都以 root 用户身份运行。需要 root 访问权限的系统的其他 hook 脚本必须编写为使用 sudo 命令进行特权升级。要支持此 /etc/sudoers,必须更新该 /etc/sudoers,以便 vdsm 用户无需重新输入密码即可使用 sudo。这是必要的,因为 hook 脚本以非交互方式执行。

例 A.4. 为 VDSM hook 配置 sudo

在本示例中,将把 sudo 命令配置为允许 vdsm 用户以 root 身份运行 /bin/chown 命令。

  1. root 用户身份登录虚拟化主机。
  2. 在文本编辑器中打开 /etc/sudoers 文件。
  3. 将此行添加到文件中:

    vdsm ALL=(ALL) NOPASSWD: /bin/chown

    这将指定 vdsm 用户能够以 root 用户身份运行 /bin/chown 命令。NOPASSWD 参数表示在调用 sudo 时不会提示用户输入密码。

完成此配置更改后,VDSM hook 能够使用 sudo 命令以 root 用户身份运行 /bin/chown。此 Python 代码使用 sudo 在文件 /my_file 上以 root 身份执行 /bin/chown

retcode = subprocess.call( ["/usr/bin/sudo", "/bin/chown", "root", "/my_file"] )

在 VDSM 的日志中收集了 hook 脚本的标准错误流。此信息用于调试 hook 脚本。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.