API de cliente Proxmox VE PHP
API Proxmox VE
______ _ __
/ ____/___ __________(_)___ _ _____ _____/ /_
/ / / __ / ___/ ___/ / __ | / / _ / ___/ __/
/ /___/ /_/ / / (__ ) / / / / |/ / __(__ ) /_
____/____/_/ /____/_/_/ /_/|___/___/____/__/
Corsinvest for Proxmox VE Api Client (Made in Italy)
Copyright: Corsinvest Srl Para obtener detalles sobre la licencia, visite LICENCIA
Este software es parte de un conjunto de herramientas llamado cv4pve-tools. Si desea soporte comercial, visite el sitio.
El cliente se genera a partir de una API JSON en Proxmox VE.
Esta biblioteca PHP 5.4+ le permite interactuar con su servidor Proxmox a través de API. El cliente se genera a partir de una API JSON en Proxmox VE.
El resultado es la clase Resultado y contiene métodos:
A partir de la versión 6.2 de Proxmox VE es posible utilizar el token Api. Esta función permite ejecutar Api sin utilizar usuario ni contraseña. Si utiliza la separación de privilegios al crear el token de API, recuerde especificar el permiso. Formato USER@REALM!TOKENID=TOKEN
(ejemplo de uso a continuación)
La instalación recomendada es usando [Composer], si no tienes [Composer] ¿qué estás esperando?
En la raíz de tu proyecto ejecuta lo siguiente:
composer require Corsinvest/cv4pve-api-php
O agrega esto a tu composer.json
<?php
// Require the autoloader
require_once ' vendor/autoload.php ' ;
//if you want use lite version only get/set/create/delete use PveClientBase
$ client = new Corsinvest ProxmoxVE Api PveClient ( " 192.168.0.24 " );
//login check bool
if ( $ client -> login ( ' root ' , ' password ' , ' pam ' )){
//get version from get method
var_dump ( $ client -> get ( ' /version ' )-> getResponse ());
// $client->put
// $client->post
// $client->delete
$ retPippo = $ client -> get ( " /pippo " );
echo "n" . $ retPippo -> getStatusCode ();
echo "n" . $ retPippo -> getReasonPhrase ();
//loop nodes
foreach ( $ client -> getNodes ()-> Index ()-> getResponse ()-> data as $ node ) {
echo "n" . $ node -> id ;
}
//loop vm
foreach ( $ client -> getNodes ()-> get ( " pve1 " )-> getQemu ()-> Vmlist ()-> getResponse ()-> data as $ vm ) {
echo "n" . $ vm -> vmid . " - " . $ vm -> name ;
}
//loop snapshots
foreach ( $ client -> getNodes ()-> get ( " pve1 " )-> getQemu ()-> get ( 100 )-> getSnapshot ()-> snapshotList ()-> getResponse ()-> data as $ snap ) {
echo "n" . $ snap -> name ;
}
//return object
var_dump ( $ client -> getVersion ()-> version ()-> getResponse ());
//disable return object
$ client -> setResultIsObject ( false );
//return array
$ retArr = $ client -> getVersion ()-> version ()-> getResponse ();
var_dump ( $ retArr );
echo "n" . $ retArr [ ' data ' ][ ' release ' ];
//enable return objet
$ client -> setResultIsObject ( true );
//image rrd
$ client -> setResponseType ( ' png ' );
echo " <img src=' { $ client -> getNodes ()-> get ( " pve1 " )-> getRrd ()-> rrd ( ' cpu ' , ' day ' )-> getResponse ()} ' > " ;
//result json result
$ client -> setResponseType ( ' json ' );
var_dump ( $ client -> get ( ' /version ' )-> getResponse ());
//set connection timeout (by default no timeout)
$ client -> setTimeout ( 2 )-> get ( ' /version ' )-> getResponse ();
}
Solicitud de versión de salida de muestra:
//object result
var_dump ( $ client -> getVersion ()-> Version ()-> getResponse ());
object (stdClass) #9 (1) {
[ " data " ]=>
object(stdClass) #32 (4) {
[ " version " ]=>
string( 3 ) " 5.0 "
[ " release " ]=>
string( 2 ) " 31 "
[ " keyboard " ]=>
string( 2 ) " it "
[ " repoid " ]=>
string( 8 ) " 27769b1f "
}
}
//disable return object
$ client -> setResultIsObject (false);
//array result
var_dump( $ client -> getVersion ()->Version());
array(1) {
[ " data"]=>
array ( 4 ) {
[ " repoid " ]=>
string( 8 ) " 2560e073 "
[ " release " ]=>
string( 2 ) " 32 "
[ " version " ]=>
string( 3 ) " 5.0 "
[ " keyboard " ]=>
string( 2 ) " it "
}
}
El parámetro indexado termina con '[n]' en la documentación (método createVM en el ide del parámetro Qemu) requiere una matriz con clave y valor
[
1 => " .... " ,
3 => " .... " ,
]
<?php
// Require the autoloader
require_once ' vendor/autoload.php ' ;
//if you want use lite version only get/set/create/delete use PveClientBase
$ client = new Corsinvest ProxmoxVE Api PveClient ( " hostname " , " 8006 " );
$ client -> setApiToken ( " root@pam!mytokenname=<TOKEN COMES HERE> " );
echo $ client -> getVersion ();