提问人:Talha Ashraf 提问时间:10/8/2023 更新时间:10/8/2023 访问量:70
通过可通过 SSH 访问的公共主机在本地 QEMU 虚拟机上实现 Ansible 自动化
Ansible automation on local QEMU virtual machines through public host machine accessible via SSH
问:
我是一名研究生。这个问题是针对我最后一年的项目。
我有一台运行 Slackware 的主机,可以通过 SSH 公开访问。我无法在主机上使用 sudo 安装任何东西。
在该主机上,我运行了多个 QEMU 虚拟机,但未配置网络(即未分配 IP 地址)。这些虚拟机通过大学设计的 CLI 工具进行管理。CLI 工具类似于 libvirt 或 Proxmox,并在 tmux 会话中运行这些机器。此外,每个虚拟机都有一个用户名和密码。
我能够使用 Ansible 通过 SSH 连接到主机。
我的目标是能够连接到 QEMU 虚拟机,并使用 Ansible 在每个虚拟机中配置基本网络。
这是我的局限性。
- 我无法使用 community.libvirt.libvirt_qemu因为我的用户不在组中。我希望有一个纯粹的 QEMU 连接插件。
sudo
- 我找不到任何 Ansible 连接插件来连接到 tmux 会话。
实现这一目标的最佳方法是什么?
答:
0赞
Vladimir Botka
10/8/2023
#1
你说:“这些虚拟机是通过大学设计的CLI工具管理的。CLI工具...在 TMUX 会话中运行这些计算机。
问:我找不到任何 Ansible 连接插件来连接到 tmux 会话。实现这一目标的最佳方法是什么?
答:最好的方法是编写一个 Ansible 模块,该模块将使用 CLI 工具来管理这些虚拟机。这意味着,而不是使用 tmux 来运行 CLI
admin <---SSH---> host <----> tmux <---> custom_CLI <---> VM
您将从 Ansible 模块运行 CLI
admin <---SSH---> host <----> tashraf.custom_CLI <---> VM
看:
最简单的解决方案是尝试从 Ansible 模块命令或 shell 运行 CLI。您可能需要让 CLI 在后台运行。请参阅异步操作和轮询。但是,很可能您必须将 CLI 作为守护程序运行。由您决定什么更好。编写 Ansible 模块或更新 CLI 以使用 Ansible modules 命令或 shell。
评论
0赞
Talha Ashraf
10/9/2023
使用 CLI 工具,我只准备创建、连接和删除 QEMU 虚拟机。它没有在虚拟机上执行命令的选项。为此,我必须连接到虚拟机,提供成功连接的凭据,然后执行命令。
0赞
Talha Ashraf
10/9/2023
我正在考虑为 CLI 工具编写一个自定义连接插件。我找不到任何关于编写自定义连接插件的官方文档。你知道吗?
0赞
Vladimir Botka
10/9/2023
我愿意。 开发人员指南 -> 开发插件 -> 开发特定插件类型 -> 连接插件。
评论