cv4pve api php
v8.3.0
Proxmox VE クライアント API PHP
Proxmox VE API
______ _ __
/ ____/___ __________(_)___ _ _____ _____/ /_
/ / / __ / ___/ ___/ / __ | / / _ / ___/ __/
/ /___/ /_/ / / (__ ) / / / / |/ / __(__ ) /_
____/____/_/ /____/_/_/ /_/|___/___/____/__/
Corsinvest for Proxmox VE Api Client (Made in Italy)
著作権: Corsinvest Srl ライセンスの詳細については、ライセンスをご覧ください。
このソフトウェアは、cv4pve-tools と呼ばれるツール スイートの一部です。商用サポートが必要な場合は、サイトにアクセスしてください
クライアントは Proxmox VE 上の JSON API から生成されます。
この PHP 5.4+ ライブラリを使用すると、API 経由で Proxmox サーバーと対話できるようになります。クライアントは Proxmox VE 上の JSON API から生成されます。
結果はResultクラスであり、次のメソッドが含まれます。
Proxmox VE バージョン 6.2 から 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]」で終わるパラメーター (Qemu パラメーター IDE のメソッド createVM) には、キーと値を含む配列が必要です
[
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 ();