kitteam/proxmoxve

一个简单的 PHP 5.5+ Proxmox API 客户端。

v4.0.1 2021-11-19 13:59 UTC

This package is auto-updated.

Last update: 2024-09-19 20:53:51 UTC


README

这个 PHP 5.5+ 库允许您通过 API 与 Proxmox 服务器交互。

Build Status Latest Stable Version Total Downloads Latest Unstable Version License

我已经不再积极维护这个库了(我已经放弃了 PHP),但 API 很稳定,如果它不符合您的需求,请查看分支或最好创建一个 PR 来添加您缺失的功能,如果您感兴趣,我可以将项目转让给您。

寻找 PHP 5.3 库版本?发布版 中搜索适合您需求的版本,我推荐使用 2.1.1 版本。

安装

推荐使用 Composer 进行安装,如果您还没有 Composer,您在等什么呢?

在您项目的根目录中执行以下操作

$ composer require zzantares/proxmoxve ~4.0

或者将其添加到您的 composer.json 文件中

{
    "require": {
        "zzantares/proxmoxve": "~4.0"
    }
}

然后执行安装

$ composer install --no-dev

用法

<?php

// Require the autoloader
require_once 'vendor/autoload.php';

// Use the library namespace
use ProxmoxVE\Proxmox;

// Create your credentials array
$credentials = [
    'hostname' => 'proxmox.server.com',  // Also can be an IP
    'username' => 'root',
    'password' => 'secret',
];

// realm and port defaults to 'pam' and '8006' but you can specify them like so
$credentials = [
    'hostname' => 'proxmox.server.com',
    'username' => 'root',
    'password' => 'secret',
    'realm' => 'pve',
    'port' => '9009',
];

// Then simply pass your credentials when creating the API client object.
$proxmox = new Proxmox($credentials);

$allNodes = $proxmox->get('/nodes');

print_r($allNodes);

示例输出

Array
(
    [data] => Array
        (
            [0] => Array
                (
                    [disk] => 2539465464
                    [cpu] => 0.031314446882002
                    [maxdisk] => 30805066770
                    [maxmem] => 175168446464
                    [node] => mynode1
                    [maxcpu] => 24
                    [level] =>
                    [uptime] => 139376
                    [id] => node/mynode1
                    [type] => node
                    [mem] => 20601992182
                )

        )

)

使用 MailGateway API

此库也可以用来与 Proxmox MailGateway API 通信,只需简单更改凭证数组中的 system 条目。

<?php

$credentials = [
    'hostname' => 'proxmox.server.com',  // Also can be an IP
    'username' => 'root',
    'password' => 'secret',
    'system' => 'pmg', // Defaults to 'pve' for the PVE API. Use 'pmg' for the PMG API.
];

想了解更多技巧吗?

查看我们的 wiki

文档

在您的 Proxmox 客户端对象上,您可以使用 get()create()set()delete() 函数操作在 PVE2 API 文档 中指定的所有资源,参数作为关联数组的第二个参数传递。

我可以交互哪些资源或路径以及如何交互?

在您的 Proxmox 服务器上,您可以使用 pvesh CLI 工具 来管理所有 pve 资源,您可以像使用 pvesh 工具一样使用此库。例如,您可以运行 pvesh,然后,如屏幕消息所示,您可以输入 help [path] [--verbose] 来查看如何使用路径以及应该传递给它哪些参数。请确保在 Proxmox wiki 中阅读有关 pvesh CLI 工具的信息。

Proxmox API 是如何工作的?

请参考 ProxmoxVE API 文章,该文章位于 Proxmox wiki

我觉得你隐藏了一些酷炫的技巧!我需要更多的文档!

请查看项目的 wiki 以获取更详细的文档,我发誓它都在那里... 我想。

许可

本项目采用 MIT 许可证发布。有关详细信息,请参阅附带的 LICENSE 文件。

想要贡献?

谢谢!请查看CONTRIBUTING,您可以轻松设置开发环境,让您立即开始!