介绍
node-red-contrib-proxmox
是一个适用于 Node-RED
的 npm
包。该包用于集成 Proxmox VE(一个开源虚拟化平台)的 API。通过使用该包,用户可以方便地创建,删除以及管理虚拟机并获取虚拟机信息。
这篇文章将教你如何安装和使用 node-red-contrib-proxmox
包。在完成此教程后,你将具有深入了解和掌握如何使用 node-red-contrib-proxmox
包在 Proxmox 环境中生成虚拟机的技能,并能够使用 Node-RED
创建您自己的虚拟机管理器。
安装
在这里,我们将展示如何在全局 Node-RED
环境中安装 node-red-contrib-proxmox
包,以及如何在 Node-RED
流中使用节点。
全局安装
要在全局 Node-RED
环境中安装 node-red-contrib-proxmox
包,请使用以下命令:
npm install -g node-red-contrib-proxmox
在 Node-RED 流中使用节点
在使用 node-red-contrib-proxmox
包之前,需要在 Node-RED
环境中将该包节点添加到流中。要添加节点,请按照以下步骤操作:
- 启动
Node-RED
编辑器 - 在侧边栏中选择 "Palette" 选项卡。
- 在 "Palette" 栏目中,选择 "install" 选项卡。
- 在搜索栏中键入 “node-red-contrib-proxmox” 并按 Enter。
- 选择 "node-red-contrib-proxmox" 并单击 "Install" 按钮进行安装。
完成上述步骤之后,node-red-contrib-proxmox
节点将显示在节点列表中。
使用
现在,我们将介绍如何在 Node-RED
流中使用 node-red-contrib-proxmox
节点以及如何使用该包创建虚拟机。
添加脚本节点
使用脚本节点调用 node-red-contrib-proxmox
节点的 API 接口。首先,我们需要添加一个新的脚本节点。添加脚本节点的步骤如下:
- 右键单击
Node-RED
编辑器中的工作区域,选择 "Add node" 选项。 - 在弹出的菜单中,选择 "function"。
- 拖动 “function” 节点到工作区中。
- 右键单击 “function” 节点,并将其重命名为 “Proxmox API”。
现在,我们已经创建了一个名为 “Proxmox API” 的脚本节点,接下来我们将添加代码来调用 node-red-contrib-proxmox
节点的 API 接口。
实现虚拟机的创建
我们将实现待创建虚拟机的函数。函数需要在 “Proxmox API” 节点中添加。
-- -------------------- ---- ------- ----------- - - ------- ------- ------- ---------- ------- ------ --------- ---- ---------- ---- -------- ---- --------- ------- ---------- ------------ ------- -------- ------- ----------------------------------- ------- ------- ------- ---------------------- ------ ------- ----------- ------- --------- ----- -- ------ ----
上述代码是创建虚拟机的步骤。该代码中使用了 Proxmox VE Node.js Library API
。该脚本主要是将 Proxmox VE 中虚拟机的详细信息作为输出传递到 node-red-contrib-proxmox
节点。
实现虚拟机的删除
接下来,我们将实现删除虚拟机的脚本。
首先,需要添加 “inject” 节点和 “Proxmox API Call” 节点。添加 “inject” 节点后,将其按如下设置:
- Payload type:“string”
- Payload:vmid 这是待删除虚拟机的 id。
在此之后,要将 “Proxmox API Call” 节点拖动到工作区中,然后将其命名为 “Delete VM”。现在,我们将添加以下代码到 “Proxmox API Call” 节点:
msg.url = "https://<hostname>/api2/json/nodes/proxmox01/qemu/" + msg.payload; msg.method = "DELETE"; return msg;
在上述代码中,msg.payload
是在“inject”节点中提供的 vmid
。
实现虚拟机的状态检查
现在,我们将添加代码用于检查虚拟机的状态。我们将添加一个名为 “Check VM Status” 的新节点:
msg.payload = { "vmid": "100" }; msg.url = "https://<hostname>/api2/json/nodes/proxmox01/qemu/" + msg.payload.vmid + "/status/current"; msg.method = "GET"; return msg;
在此示例中,我们使用 100
作为示例虚拟机 id。
连接到 Proxmox VE 或者其他服务器
最后,我们将添加代码用于连接到 Proxmox VE 服务器。我们将使用 NODE-RED 来设置 node-red-contrib-proxmox
模块中的 config
模块,以便将其连接到目标服务器。
- 添加 “ProxmoxAdmin” 节点。
- 右键单击 newly added “ProxmoxAdmin” 节点,选择 “Edit”。
- 在 configuration 部分中填写主机名,用户名和密码。
- 单击 Done。
连接到 Proxmox VE 后,可以开始使用 node-red-contrib-proxmox
模块中的 API。
示例代码
-- -------------------- ---- ------- - - ----- ----------------- ------- ------ -------- -------- --- -------- -- - ----- ------------------ ------- ----------- ---- ----------------- ------- ------- ------- --------- ------- ------------ - --- --------- ----------- --------- -------------- --------- ---------- ----------- -------- ------------ -------- ---------- -------- ----------- ----------- ------------ ---------------- --------- ------------ --------- --------------------------------------- --------- ----------- --------- -------------------------- -------- ----------- ------------- ----------- ----------- ------------------- ------ ---------- -- -------- -- ------------- --- ----------- --- ---- ---- ---- --- -------- - - ----------------- - - -- - ----- ------------------ ------- ----------- ---- ----------------- ------- ---- --- --- --- -------- ------- -------- - ------------------------------------------------------------------- - ----------------- ------ ---------- -- -------- -- ------------- --- ----------- --- ---- ---- ---- --- -------- - - ---------------- - - -- - ----- ----------------- ------- ------------------- ---- ----------------- ------- -------- --- ------ --------- ------------------ --------- ------------------ ---- ---- ---- --- -------- - - ----------------- - - -- - ----- ------------------ ------- -------- ---- ----------------- ------- --- --------- ----- ------------ ----- ---------- ------ ----------- ------ ----------- ---------- ------------- ------ ------------ --- ------------- ------- ---- ---- ---- --- -------- -- -- - ----- ------------------ ------- --------- ---- ----------------- ------- --- --------- --- ---------- --- ------- ------ ------------ ---- -------- --- ---------- ------ -------------- ------ ---- ---- ---- ---- -------- - - ----------------- - - -- - ----- ------------------ ------- ----------- ---- ----------------- ------- ---- --- --- --- -------- ------- -------- - ------------------------------------------------------ - ------------------------ - ------------------- ------ ---------- -- -------- -- ------------- --- ----------- --- ---- ---- ---- ---- -------- - - ---------------- - - -- - ----- ------------------ ------- --------- ---- ----------------- ------- --- --------- --- ---------- --- ------- ------ ------------ ---- -------- --- ---------- --- -------------- ------- ---- ---- ---- ---- -------- - - ---------------- - - -- - ----- ----------------- ------- ----------- ---- ----------------- ------- ---- --- --- --- -------- ------- ------------ - - --------- ------- ----------- - ------------------------------------------------------ - ---------------- - -------------------------------- - ---------------- ------ ---------- -- -------- -- ------------- --- ----------- --- ---- ---- ---- ---- -------- - - ---------------- - - -- - ----- ------------------ ------- ----------------- ------- --------------- ------- ----------- ------- ------- -------- ------ ----------- ------------------- ----------- ----------- ------------ ---- -- - ----- ------------------ ------- ----------------- ------- --------------- - -
总结
在此文中,我们介绍了如何使用 node-red-contrib-proxmox
包在 Proxmox VE 上自动化虚拟机管理。通过掌握安装、配置和使用 node-red-contrib-proxmox
包的技巧,我们可以更高效地管理虚拟机并获得更好的使用体验。此外,我们还提供了示例代码,方便读者可以快速掌握该技术的使用方法。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60055ca981e8991b448da0d6