рд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░!
рдЖрдЬ рдореИрдВ рдХреБрдЦреНрдпрд╛рдд рд╡рд░реНрдЪреБрдЕрд▓рд╛рдЗрдЬреЗрд╢рди рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝реА рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ - рдкреНрд░реЙрдХреНрд╕рдореЙрдХреНрд╕ред
рдкреГрд╖реНрдарднреВрдорд┐ ...
рдореИрдВ рдХреБрдЫ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдПрдХ рд╕рдореАрдк рдЖрдпрд╛ рдерд╛, рдЬрдм рдХреБрдЦреНрдпрд╛рдд рд╣реЗрдЯреНрдЬрдиреЗрд░ рдХреЗ рдПрдХ рдбреЗрдЯрд╛ рд╕реЗрдВрдЯрд░ рдореЗрдВ рд╕реНрдерд┐рдд рдПрдХ рдЕрдЪреНрдЫреА рдХрд╛рд░ рдореЗрд░реЗ рд╣рд╛рдереЛрдВ рдореЗрдВ рдЧрд┐рд░ рдЧрдИред рдЙрд╕ рд╕рдордп, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрдкрдиреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╡рд░реНрдЪреБрдЕрд▓рд╛рдЗрдЬреЗрд╢рди рдмрдврд╝рд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдкреНрд░рд╢реНрди рдерд╛ред рд╣рдордиреЗ рдХрдИ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛, рдЬрд┐рдирдХреЗ рдирд╛рдо рд╣реИрдВ: VMWare, OpenStack, рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ Proxmoxред рдореИрдВ рдпрд╣ рдирд╣реАрдВ рдХрд╣реВрдВрдЧрд╛ рдХрд┐ рд╡рд╣ 2 рдЕрдиреНрдп рдЙрдореНрдореАрджрд╡рд╛рд░реЛрдВ рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИ, рдмрд╕ рдЙрд╕реА рдХреНрд╖рдг рдЙрд╕рдиреЗ рд╣рдорд╛рд░реА рдЬрд░реВрд░рддреЛрдВ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдВрддреБрд╖реНрдЯ рдХрд░ рджрд┐рдпрд╛ред рдереЛрдбрд╝реА рджреЗрд░ рдХреЗ рдмрд╛рдж, рддреГрддреАрдп-рдкрдХреНрд╖ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдирд┐рдпрдВрддреНрд░рдг рдХрдХреНрд╖ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА рдЬреЛ рдХреЗрд╡рд▓ рдЕрдкрдиреЗ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╡реАрдПрдордПрд╕ рдХреЛ рд╢реБрд░реВ / рд░реЛрдХ рд╕рдХрддреЗ рд╣реИрдВ, рд░рд┐рдмреВрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдХрдИ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рднреА рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдмреЗрд╢рдХ, рдкреНрд░реЙрдХреНрд╕рдореЛрдХреНрд╕ рдЖрдкрдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ, рд╕рд╛рде рд╣реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рдореВрд╣реЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЙрдирдХреЗ рдЕрдзрд┐рдХрд╛рд░ рд╕реМрдВрдкрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд┐рдХрд▓реНрдк рд╣рдореЗрдВ рдкрд╕рдВрдж рдирд╣реАрдВ рдЖрдпрд╛ред рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдпрд╣ рдЕрдм рдХреИрд╕реЗ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрд╕ рд╕рдордп рд░реВрд╕реА рдореЗрдВ рдкреНрд░реЛрдХреНрд╕рдореЙрдХреНрд╕ рдПрдкреАрдЖрдИ рдХрд╛ рдХреЛрдИ рд╕рд╛рдорд╛рдиреНрдп рджрд╕реНрддрд╛рд╡реЗрдЬ рдирд╣реАрдВ рдерд╛ред рдмреЗрд╢рдХ, рдпрд╣ рдореБрдЭреЗ рд░реЛрдХ рдирд╣реАрдВ рдкрд╛рдпрд╛ рдФрд░ рдореИрдВрдиреЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ
рдЕрдВрдЧреНрд░реЗрдЬреА рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд┐рдпрд╛, рдЬрд┐рд╕рдореЗрдВ рд╡реИрд╕реЗ рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдФрд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╡рд░реНрдгрд┐рдд рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╣рдореЗрд╢рд╛ рдРрд╕реЗ рд▓реЛрдЧ рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рдЕрдВрдЧреНрд░реЗрдЬреА рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдирд╣реАрдВ рдорд┐рд▓рддреЗ рд╣реИрдВред рддреЛ, рдпрд╣ рд▓реЗрдЦ рдЖрдкрдХреЗ рд▓рд┐рдП рд╣реИред
рддреБрд░рдВрдд рдЖрд░рдХреНрд╖рдг рдХрд░реЗрдВ рдХрд┐ рд╣рдо рд╕рднреА рд╡реАрдПрдо (рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди) рдХреЗрд╡реАрдПрдо рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдереЗред рдЗрд╕рд▓рд┐рдП, рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рд╣рдо рдЬрд┐рд╕ рдПрдкреАрдЖрдИ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ, рд╡рд╣ рдкреАрдПрдЪрдкреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреЗрд╡реАрдПрдо-рдЖрдзрд╛рд░рд┐рдд рдорд╢реАрдиреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реЛрдЧрд╛ред
рддреЛ рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ ...
рдЙрдирдХреЗ рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдПрдХ PhP рд╡рд░реНрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ
рдЬрд┐рд╕реЗ github рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рд▓рд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛
рд╣реИредрдПрдкреАрдЖрдИ рд╕рд░реНрд╡рд░ рдХреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдХреЗрд╡рд▓ 3 рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: GET, POST рдФрд░ PUTред рдФрд░ рд╣рдо JSON рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдЙрддреНрддрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗред
рд╣рдо рдПрдХ index.php рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рд╣рдо рдПрдкреА рдХреНрд▓рд╛рд╕ рд╢рд╛рдорд┐рд▓ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рд╣рдордиреЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рддреЗ рд╣реИрдВред
require_once "proxmox.api.php"; $px = new PVE2_API("192.168.2.1", "root", "pam", "my_password");
рдЬрд╣рд╛рдВ рд╣рдо рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдкрдиреЗ рд╕рд░реНрд╡рд░, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рдХрд╛ рдЖрдИрдкреА рджрд░реНрд╢рд╛рддреЗ рд╣реИрдВред
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдкреЛрд░реНрдЯ 8006 рдкрд░ рдкреНрд░реЛрдХреНрд╕рдореЙрдХреНрд╕ рд╕реНрдерд╛рдкрд┐рдд рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрджрд┐ рдЖрдкрдиреЗ рдЗрд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдкреНрд░реЙрдХреНрд╕рдореЙрдХреНрд╕ рдПрдкреАрдЖрдИ рд╡рд░реНрдЧ рдореЗрдВ рдкреЛрд░реНрдЯ рднреА рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреА рд▓рд╛рдЗрдиреЗрдВ рдЦреЛрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: (рдЙрдирдореЗрдВ рд╕реЗ рдХреЗрд╡рд▓ 3 рд╣реИрдВ)
curl_setopt($prox_ch, CURLOPT_URL, "https://".$this->pve_hostname.":8006/api2/json/access/ticket");
рдореЗрд░реЗ рдкрд╛рд╕ рдпрд╣ 93 рд▓рд╛рдЗрди рд╣реИред (рдХрдХреНрд╖рд╛ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд╕рдордпред рд╢рд╛рдпрдж рдЕрдм рдХреБрдЫ рдмрджрд▓рд╛рд╡ рд╣реБрдП рд╣реИрдВред рдореИрдВрдиреЗ рдЬрд╛рдВрдЪ рдирд╣реАрдВ рдХреА рд╣реИ) рдФрд░ 8006 рдХреЛ рдЖрд╡рд╢реНрдпрдХ рдорд╛рди рд╕реЗ рдмрджрд▓ рджреЗрдВред
рдпрд╣ рдЬрд╛рдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╣рдорд╛рд░реЗ рд╕рд░реНрд╡рд░ рдкрд░ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╕рдлрд▓ рдерд╛, рдЖрдкрдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
if($px->constructor_success()){ if($px->login()){
рдЕрдм рд╣рдо рдЕрдкрдиреЗ рдкрд╣рд▓реЗ рдЕрдиреБрд░реЛрдз рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рд╕рд╕реЗ рд╣рдореЗрдВ рдЙрд╕ рд╡реАрдПрдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдорд┐рд▓реЗрдЧреА рдЬрд┐рд╕рдореЗрдВ рд╣рдо рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдХреА рдЕрдкрдиреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд╣рдЪрд╛рди рд╕рдВрдЦреНрдпрд╛ рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рд╣рдо рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗред рдкреНрд░рддреНрдпреЗрдХ VM рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ "рдиреЛрдб" (рдиреЛрдб) рдореЗрдВ рднреА рд╕реНрдерд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдЕрдиреБрд░реЛрдз рдореЗрдВ рднреА рднрд╛рдЧ рд▓реЗрддрд╛ рд╣реИред
if($px->constructor_success()){ if($px->login()){ $status = $px->get("/nodes/node2/qemu/100/status/current"); var_dump($status); } }
рдХрд╣рд╛рдВ: рдиреЛрдб 2 рдореИрдВ рдЬрд┐рд╕ рдиреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЙрд╕рдХрд╛ рдирд╛рдо рд╣реИ, рдФрд░ 100 рд╡реАрдПрдо рдХреА рдЖрдИрдбреА рд╣реИред
рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдореЗрдВ рдирд┐рдореНрди рдЬреИрд╕рд╛ рдХреБрдЫ рдорд┐рд▓рддрд╛ рд╣реИ:
array(19) { ["disk"]=> int(0) ["status"]=> string(7) "running" ["ha"]=> int(0) ["freemem"]=> int(518893568) ["qmpstatus"]=> string(7) "running" ["netout"]=> int(214648283) ["maxdisk"]=> int(21474836480) ["maxmem"]=> int(3221225472) ["pid"]=> string(6) "526695" ["uptime"]=> int(2585643) ["balloon"]=> int(3221225472) ["cpu"]=> float(0.089612785396815) ["netin"]=> int(3038528849) ["diskread"]=> int(5224400988) ["template"]=> string(0) "" ["name"]=> string(15) "vds-192.168.1.9" ["diskwrite"]=> int(100378349568) ["mem"]=> int(2638614528) ["cpus"]=> int(1) }
рдЕрдзрд┐рдХ рд╣рдж рддрдХ, рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЯрд┐рдкреНрдкрдгреА рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛, рдФрд░ рд╣рдо рдЖрдЧреЗ рдмрдврд╝реЗрдВрдЧреЗред
рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдЬрд╣рд╛рдВ рд╣рдореЗрдВ рдЕрдкрдиреЗ рд╡реАрдПрдо рдХрд╛ рджрд░реНрдЬрд╛ рдорд┐рд▓рд╛ рдерд╛, рд╣рдордиреЗ рдЬреАрдИрдЯреА рдЕрдиреБрд░реЛрдз рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, GETs рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реВрдЪрдирд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, POST рдФрд░ PUT рдХреБрдЫ рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╛ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдПред
рдЕрдм рд╣рдорд╛рд░реА рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдХреЛ рд░реЛрдХрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, vmid (рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдФрд░ рдиреЛрдб) рдХреЗ рд╕рд╛рде рдПрдХ POST рдЕрдиреБрд░реЛрдз рднреЗрдЬреЗрдВ:
if($px->constructor_success()){ if($px->login()){ $px->post("/nodes/node2/qemu/192/status/shutdown", array("forceStop" => true)); } }
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рдм рдХреБрдЫ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИред POST рдЕрдиреБрд░реЛрдз рдХрд╛ рдкрд╣рд▓рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рд╣рдорд╛рд░реЗ VM рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ, рдФрд░ рджреВрд╕рд░рд╛ рдХреБрдЫ рд╣рдореЗрд╢рд╛ рд╡реИрдХрд▓реНрдкрд┐рдХ рдкреИрд░рд╛рдореАрдЯрд░ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдлрд╝реЛрд░реНрд╕рдЯреЙрдк рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдЬреЛ рд╕реНрд╡рдпрдВ рдХреЗ рд▓рд┐рдП рдмреЛрд▓рддрд╛ рд╣реИред рдХрднреА-рдХрднреА рдРрд╕реЗ рд╕рдордп рд╣реЛрддреЗ рд╣реИрдВ, рдЬрдм рд╡реАрдПрдо, рдЬреЛ рднреА рдХрд╛рд░рдг рд╕реЗ, рдЕрдкрдирд╛ рдХрд╛рдо "рд╕реНрд╡реЗрдЪреНрдЫрд╛ рд╕реЗ" рдкреВрд░рд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░рдгреЛрдВ рд╕реЗ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдПрдХ рд╕рд┐рд╕реНрдЯрдо рддреНрд░реБрдЯрд┐, рдПрдХ рд▓рдЯрдХрдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛, рдЖрджрд┐ред рддреЛ ForceStop рдкреИрд░рд╛рдореАрдЯрд░ proxmox'u рдХреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдорд╢реАрди рдХреЛ рдЕрдкрдирд╛ рдХрд╛рдо рд╡реИрд╕реЗ рднреА рдкреВрд░рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рдПрдХ рдкреВрд░реА рд╕реВрдЪреА рдорд┐рд▓ рд╕рдХрддреА рд╣реИред
рдЕрдм рд╣рдорд╛рд░реЗ VM рдХреЛ рд╡рд╛рдкрд╕ рдЪрд▓рд╛рдПрдВред
if($px->constructor_success()){ if($px->login()){ $start = $px->post("/nodes/node2/qemu/192/status/start"); } }
VM рд╕реНрдЯреЗрдЯрд╕ рдХреЗ рд▓рд┐рдП рд╕рднреА рдЙрдкрд▓рдмреНрдз рдХрдорд╛рдВрдб:
- рд░рд┐рд╕реЗрдЯ рдПрдХ рддрд░рд╣ рдХрд╛ рд░рд┐рдмреВрдЯ рд╣реИ
- рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ - рд╡реАрдПрдо рд╢реБрд░реВ
- рд╢рдЯрдбрд╛рдЙрди - рд╡реАрдПрдо рдиреАрдЪреЗ рдмрдиреНрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ
- рд╢реБрд░реВ - рд╡реАрдПрдо рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ
- рд░реЛрдХ - VM рдХреЛ рд░реЛрдХрддрд╛ рд╣реИ
- рдирд┐рд▓рдВрдмрд┐рдд - рд╡реАрдПрдо рдХреЛ рд░реЛрдХ рджреЗрддрд╛ рд╣реИ
рдЖрдЗрдП рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВ ...
рд╣рдо рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ VM рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ:
if($px->constructor_success()){ if($px->login()){ $start = $px->get("/nodes/node2/qemu/166/config"); var_dump($start); } }
рдпрджрд┐ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИ, рддреЛ рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рд╣реЛрдВрдЧреЗ:
array(10) { ["net0"]=> string(36) "e1000=9A:7B:96:C7:C4:7D,bridge=vmbr0" ["ide2"]=> string(59) "local:iso/debian-6.0.7-amd64-CD-1.iso,media=cdrom,size=645M" ["name"]=> string(15) "san-192.168.1.9" ["bootdisk"]=> string(4) "ide0" ["cores"]=> int(1) ["ide0"]=> string(50) "local:166/vm-166-disk-1.qcow2,format=qcow2,size=1G" ["ostype"]=> string(3) "l26" ["memory"]=> int(512) ["sockets"]=> int(1) ["digest"]=> string(40) "2aa7fcf6cbaff2f11d2f50f1b7b18fc97d2b04d6" }
VM рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ PUT рдЕрдиреБрд░реЛрдз рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:
if($px->constructor_success()){ if($px->login()){ $px->put("/nodes/node2/qemu/166/config", array( )); } }
рдЬрд╣рд╛рдВ рд╕рд░рдгреА рдореЗрдВ рдЖрдкрдХреЛ рдЖрд╡рд╢реНрдпрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдФрд░ рдЙрдирдХреЗ рдореВрд▓реНрдп рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдореИрдВ рд╕рднреА рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдирд╣реАрдВ рджреВрдВрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЙрдирдореЗрдВ рд╕реЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╣реИрдВ рдФрд░ рд╡реЗ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИрдВред рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдкреНрд░рднрд╛рд╡реА рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдРрдб-рдЗрдиреНрд╕ рдХреЗ рд▓рд┐рдП, рд░рд┐рдмреВрдЯ рд╡реАрдПрдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рдЕрдм рдереЛрдбрд╝рд╛ рдФрд░ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИред рдХрднреА-рдХрднреА рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдмрдирд╛рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдореИрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЕрдзреАрд░ рдХреЗ рд▓рд┐рдП, рдЕрдм рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдЙрджрд╛рд╣рд░рдг:
if($px->constructor_success()){ if($px->login()){ $d = array( 'vmid' => '777', 'memory' => '300', 'cores' => '2', 'autostart' => true, 'ostype' => 'l26', 'ide0' => 'local:32,format=qcow2', 'ide2' => 'local:iso/ubuntu-12.04.2-server-amd64.iso,media=cdrom', 'net0' => 'e1000,bridge=vmbr0' ); $px->post("/nodes/node2/qemu", $d); $px->post("/nodes/node2/qemu/777/status/start"); } }
рдЬрд╣рд╛рдВ:
- vmid - VM рдХрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛
- рдореЗрдореЛрд░реА - рдкреНрд░рдХрд╛рд░ рд╕рдВрдЦреНрдпрд╛ (рдкреВрд░реНрдгрд╛рдВрдХ) рдореЗрдЧрд╛рдмрд╛рдЗрдЯ рдореЗрдВ рд░реИрдо рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ
- рдХреЛрд░ - рд╡реАрдПрдо рдХреЛрд░ рдХреА рд╕рдВрдЦреНрдпрд╛
- рдСрдЯреЛрд╕реНрдЯрд╛рд░реНрдЯ - (рдмреВрд▓) рдСрдЯреЛрд╕реНрдЯрд╛рд░реНрдЯ рд╡реАрдПрдо рдЖрд░рдВрдн рдХрд░рдирд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ
- ostype - OS рдкреНрд░рдХрд╛рд░
- ide0 - рдПрдЪрдбреАрдбреА рдХрд╛ рдЖрдХрд╛рд░ рдФрд░ рдкреНрд░рд╛рд░реВрдкред рд╕реНрдерд╛рдиреАрдп: 32 - рдХрд╛ рдорддрд▓рдм рд╣реИ 32 рдЬреАрдмреА
- ide2 - OS рдЫрд╡рд┐ рдФрд░ рдмреВрдЯ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдкрде
- net0 - рдиреЗрдЯрд╡рд░реНрдХ рдПрдбрд╛рдкреНрдЯрд░
рдЕрднреА рдХреЗ рд▓рд┐рдП рдмрд╕ рдЗрддрдирд╛ рд╣реАред рдЕрдЧрд▓реЗ рднрд╛рдЧ рдореЗрдВ, рдореИрдВ рдКрдкрд░ рдмрддрд╛рдП рдЧрдП рддрд░реАрдХреЛрдВ рдореЗрдВ рддрд▓реНрд▓реАрди рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛, рд╕рд╛рде рд╣реА рдХреБрдЫ рд╕реВрдХреНрд╖реНрдорддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдБрдЧрд╛ рдЬреЛ рдореБрдЭреЗ рдЙрд╕ рд╕рдордп рдПрдкреАрдЖрдИ рдореЗрдВ рдирд╣реАрдВ рдорд┐рд▓реА рдереАрдВред
рдкреБрдирд╢реНрдЪ рдХреЗрд╡рд▓ рдПрдХ рд▓реЗрдЦ рдХреЗ рдмрдЬрд╛рдп, рдЕрдкрдирд╛ рдереЛрдбрд╝рд╛ рд╕рд╛ рд╕рдордп рд▓реЗрдВ рдФрд░ рдмрддрд╛рдПрдВ рдХрд┐ рдЗрд╕рдореЗрдВ рдХреНрдпрд╛ рдЧрд▓рдд рд╣реИ, рдЖрдкрдиреЗ рдХреНрдпрд╛ рдкрд╕рдВрдж рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдЖрдк рдЗрд╕реЗ рдФрд░ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдпрд╣ рдореБрдЭреЗ рдЕрдкрдиреА рдЧрд▓рддрд┐рдпреЛрдВ рдХреЛ рд╕рдордЭрдиреЗ рдФрд░ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рдкреНрд░рддрд┐рдмрджреНрдз рдирд╣реАрдВ рдХрд░рдиреЗ рджреЗрдЧрд╛ред
рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред