PHP API ไคลเอ็นต์ Proxmox VE
Proxmox VE Api
______ _ __
/ ____/___ __________(_)___ _ _____ _____/ /_
/ / / __ / ___/ ___/ / __ | / / _ / ___/ __/
/ /___/ /_/ / / (__ ) / / / / |/ / __(__ ) /_
____/____/_/ /____/_/_/ /_/|___/___/____/__/
Corsinvest for Proxmox VE Api Client (Made in Italy)
ลิขสิทธิ์: Corsinvest Srl สำหรับรายละเอียดใบอนุญาต โปรดไปที่ LICENSE
ซอฟต์แวร์นี้เป็นส่วนหนึ่งของชุดเครื่องมือที่เรียกว่า cv4pve-tools หากคุณต้องการการสนับสนุนเชิงพาณิชย์ โปรดไปที่ไซต์
ไคลเอนต์ถูกสร้างขึ้นจาก JSON Api บน Proxmox VE
ไลบรารี PHP 5.4+ นี้ช่วยให้คุณสามารถโต้ตอบกับเซิร์ฟเวอร์ Proxmox ของคุณผ่าน API ไคลเอนต์ถูกสร้างขึ้นจาก JSON Api บน Proxmox VE
ผลลัพธ์คือ ผลลัพธ์ คลาสและมีวิธีการ:
จากเวอร์ชัน 6.2 ของ Proxmox VE สามารถใช้โทเค็น Api ได้ คุณลักษณะนี้อนุญาตให้เรียกใช้ Api โดยไม่ต้องใช้ผู้ใช้และรหัสผ่าน หากใช้ การแยกสิทธิ์ เมื่อสร้างโทเค็น API โปรดระบุในการอนุญาต รูปแบบ USER@REALM!TOKENID=TOKEN
(ตัวอย่างการใช้งานด้านล่าง)
การติดตั้งที่แนะนำคือการใช้ [Composer] หากคุณไม่มี [Composer] คุณจะรออะไรอยู่
ในรูทของโปรเจ็กต์ของคุณ ให้ดำเนินการดังต่อไปนี้:
composer require Corsinvest/cv4pve-api-php
หรือเพิ่มสิ่งนี้ลงใน 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 ();
}
คำขอเวอร์ชันเอาต์พุตตัวอย่าง:
//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 "
}
}
พารามิเตอร์ที่จัดทำดัชนีลงท้ายด้วย '[n]' ในเอกสารประกอบ (วิธี createVM ในพารามิเตอร์ Qemu ide) ต้องใช้คีย์และค่าของอาร์เรย์เล็กน้อย
[
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 ();