mrkampf / proxmox-ve

Proxmox VE API 客户端

0.5.3 2024-05-01 09:10 UTC

README

这个 PHP 8+ Proxmox 库允许您通过 API 与您的 Proxmox PVE 服务器和集群交互。

Latest Stable Version Total Downloads Latest Unstable Version License

如果您发现任何错误、拼写错误或发现某些东西没有按预期工作,请打开一个 问题。我会尽快发布修复程序。

入门指南

推荐的安装方法是使用 Composer。如果您没有 Composer,您在等什么?

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

$ composer require mrkampf/proxmox-ve

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

{
    "require": {
        "mrkampf/proxmox-ve": "^0.4.4"
    }
}

然后执行安装

$ composer install --no-dev

示例

从版本 3.1 开始

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

// Use the library namespace
use Proxmox\PVE;

// Then simply pass your credentials when creating the API client object.
$proxmox = new PVE("hostname", "username", "password", 8006, "pve", false);
// Note: Use "pam" instead of "pve" if you're using Standard Linux PAM authentication.

// Read all nodes
print_r($proxmox->nodes()->get());

// Read all LXC
print_r($proxmox->nodes()->lxc()->get());

// Read all LXC for a node
print_r($proxmox->nodes()->node("node_name")->lxc()->get());

// Read all qemu
print_r($proxmox->nodes()->qemu()->get());

// Read all QEMU for a node
print_r($proxmox->nodes()->node("node_name")->qemu()->get());

API 令牌支持

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

// Use the library namespace
use Proxmox\API;

// Then simply pass your credentials when creating the API client object.
$proxmox = new API("hostname", "USER@REALM!TOKENID", "aaaaaaaaa-bbb-cccc-dddd-ef0123456789", 8006, false);

// Read all nodes
print_r($proxmox->nodes()->get());

// Read all LXC
print_r($proxmox->nodes()->lxc()->get());

// Read all LXC for a node
print_r($proxmox->nodes()->node("node_name")->lxc()->get());

// Read all qemu
print_r($proxmox->nodes()->qemu()->get());

// Read all QEMU for a node
print_r($proxmox->nodes()->node("node_name")->qemu()->get());

懒登录示例

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

// Use the library namespace
use Proxmox\PVE;

//Example for lazy login
$proxmox = new PVE("hostname", "username", "password", 8006, "pve", false, true);

//Login
$proxmox->getApi()->login();

// Read all nodes
print_r($proxmox->nodes()->get());

自定义 http 客户端示例

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

// Use the library namespace
use Proxmox\PVE;

$customGuzzleHttpClient = new GuzzleHttp\Client();

//Example for lazy login
$proxmox = new PVE("hostname", "username", "password", 8006, "pve", false, false, $customGuzzleHttpClient);

// Read all nodes
print_r($proxmox->nodes()->get());

对于版本 3.1

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

// Use the library namespace
use Proxmox\PVE;

/**
 * Connect established (For version 3.0) 
 * 
 * authType and port defaults to 'pam' and '8006' but you can specify them like so
 * 
 * !!! WARNING !!!
 * This variant is after version 3.0 no longer supported
 * 
*/
$credentials = [
    'hostname' => '127.0.0.1',
    'username' => 'root',
    'password' => 'example',
    'authType' => 'pam',
    'port' => '8006',
];

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

//Read all nodes
print_r($proxmox->nodes()->get());

//Read all lxc
print_r($proxmox->nodes()->lxc()->get());

//Read all qemu
print_r($proxmox->nodes()->qemu()->get());