рдПрдкреАрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреНрд▓рд╛рдЙрдб рдЗрдиреНрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рдирддрд╛рдПрдВ рд╕реНрд╡рдЪрд╛рд▓рди рдХрд╛ рдкреНрд░рдмрдВрдзрди

рдкрд┐рдЫрд▓реА рдмрд╛рд░ рд╣рдордиреЗ рдХреНрд▓рд╛рдЙрдб рдЗрдВрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░ (PACI) рдЖрдзрд╛рд░рд┐рдд рдХреНрд▓рд╛рдЙрдб рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рдирддрд╛рдПрдВ рд╕реНрд╡рдЪрд╛рд▓рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХреА рдереА - рдЕрдиреБрдорд╛рдирд┐рдд рдореВрд▓реНрдп рдФрд░ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВред рд╕рд╣рд┐рдд, рд╕рд░реНрд╡рд░ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдПрдкреАрдЖрдИ рдХреА рдЙрдкрд▓рдмреНрдзрддрд╛ рдХрд╛ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИред рдЖрдЬ рд╣рдо рдПрдкреАрдЖрдИ рдХрд╛рд░реНрдпреЛрдВ рдФрд░ рдмреБрдирд┐рдпрд╛рджреА рдЖрджреЗрд╢реЛрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдкрд░ рдмрд╛рд░реАрдХреА рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗред

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдкрд┐рдЫрд▓реА рдкреЛрд╕реНрдЯ рдХреЛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд░реЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдк рд╕рд╡рд╛рд▓ рдорд┐рд▓реЗ, рдмрд╣реБрдд рд╕рд╛рд░реЗ рдлреАрдбрдмреИрдХ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рд╣рдмрд▓реНрдпреВрдЬрд░реНрд╕ рд╕реЗ рдХрдИ рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯред рд╣рдо рдЙрди рд╡рд┐рд╖рдпреЛрдВ рдХреЛ рдХрд╡рд░ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВрдЧреЗ рдЬрд┐рдирдореЗрдВ рдЖрдкрдиреЗ рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрджреЛрдВ рдХреЛ рдХрд╡рд░ рдХрд┐рдпрд╛ рд╣реИред

рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╣реА рдХрд╣рд╛ рд╣реИ, рд╣рдорд╛рд░реЗ рдХреНрд▓рд╛рдЙрдб рдХреА рдиреАрдВрд╡ - рдХреНрд▓рд╛рдЙрдб рдЗрдВрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рдирддрд╛рдПрдВ рд╕реНрд╡рдЪрд╛рд▓рди - рд╕рдорд╛рдирддрд╛рдПрдВ рд╕реНрд╡рдЪрд╛рд▓рди рдмрд┐рд▓рд┐рдВрдЧ рдФрд░ рд╕реЗрд╡рд╛ рдкреНрд░рд╛рд╡рдзрд╛рди рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдПрдХ рдореЙрдбреНрдпреВрд▓ рд╣реИред рдЙрддреНрдкрд╛рдж рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ RESTful рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИред рд╣рдо рдПрдкреАрдЖрдИ рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдкреВрд░реА рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ рдирд╣реАрдВ рджреЗрдВрдЧреЗ - рдЖрдк рдЗрд╕реЗ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдо рдЖрднрд╛рд╕реА рдорд╢реАрдиреЛрдВ рдФрд░ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рдкреНрд░рдмрдВрдзрди рдХреЗ рдЗрд╕ рддрд░реАрдХреЗ рдХреЗ рдХреБрдЫ рдмреЗрд╣рддрд░ рдЙрджрд╛рд╣рд░рдг рджрд┐рдЦрд╛рддреЗ рд╣реИрдВред






рд╕рд┐рдВрдЯреЗрдХреНрд╕ рдФрд░ рд╡рд┐рд░рд╛рдо рдЪрд┐рд╣реНрди


рдкреАрдПрд╕реАрдЖрдИ рдкреНрд░рдмрдВрдзрди рд╕рд░реНрд╡рд░ рдХреЛ рдПрдкреАрдЖрдИ рдЕрдиреБрд░реЛрдз рднреЗрдЬрдХрд░ рдХреНрд▓рд╛рдЙрдб рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХреНрд╕рдПрдордПрд▓ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдЙрддреНрддрд░ рдЖрддреЗ рд╣реИрдВ, рдХреЛрдб рдпрдерд╛рд╕рдВрднрд╡ рдкрдардиреАрдп рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдЙрдиреНрдореБрдЦ рд╣реИ, рдФрд░ рдПрдХ рд╕реМрд▓рд░ рдкрд╛рд░реНрд╕рд░ рджреНрд╡рд╛рд░рд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддрд╛рдХрд┐ рд╕рднреА рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рд╕рдордЭрджрд╛рд░ рдирд╛рдо рд╣реЛрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдк рдЖрд╕рд╛рдиреА рд╕реЗ рдкреНрд░рдмрдВрдзрди рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдПрдХреНрд╕рдПрдордПрд▓ рдЦреБрдж рдХреЛ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдмрд┐рдирд╛ рдкрд╛рд░реНрд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрджрд┐ рдЖрдкрдХреЛ рдЕрдЪрд╛рдирдХ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

рдЖрдкрдХреЛ рдкреАрдПрд╕реАрдЖрдИ рдкреНрд░рдмрдВрдзрди рд╕рд░реНрд╡рд░ рдХреЗ рдкрддреЗ рдкрд░ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд╣рдо рдЗрд╕реЗ рдШрдЯрд╛рдХрд░ рдЖрдзрд╛рд░ рдмрдирд╛ рджреЗрдВрдЧреЗ):

https://{ip_address | hostname}:port/paci/version 

рдпрджрд┐ ip_address hostname рдФрд░ port рдХреЗ рд╕рд╛рде рд╕рдм рдХреБрдЫ рдХрдо рдпрд╛ рдЬреНрдпрд╛рджрд╛ рд╕реНрдкрд╖реНрдЯ рд╣реИ, рддреЛ рд╢реЗрд╖ рджреЛ рдлрд╝реАрд▓реНрдб рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИрдВред / paci / рд╣рдореЗрд╢рд╛ / paci / рдЬреИрд╕реА рджрд┐рдЦрдиреА рдЪрд╛рд╣рд┐рдП, рдФрд░ рдХреБрдЫ рдирд╣реАрдВред рдФрд░ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ v1.0 рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ (рд╕рдВрдЦреНрдпрд╛, рдХреНрд░рдорд╢рдГ, рдкреАрдПрд╕реАрдЖрдИ рдХреЗ рднрд╡рд┐рд╖реНрдп рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдмрджрд▓ рд╕рдХрддреА рд╣реИ)ред

рддреЛ рддреИрдпрд╛рд░ рдмреЗрд╕реБрд░рд▓ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:

 https://109.120.*.*:4465/paci/v1.0 

рд╡рд░реНрдЪреБрдЕрд▓ рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдЖрдЧреЗ рд╕рдВрдЪрд╛рд░ рдмреЗрд╕реБрд░рд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рди "рджрд╛рдИрдВ рдУрд░" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рд╣рдо рдмрд╕ рдмреЗрд╕рд▓ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдкреИрд░рд╛рдореАрдЯрд░ рд╕реЗрдЯ / рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред / ve - рд╡рд░реНрдЪреБрдЕрд▓ рд╕рд░реНрд╡рд░ рддрдХ рдкрд╣реБрдВрдЪ, рдФрд░ рдЪреВрдВрдХрд┐ рд╕рд░реНрд╡рд░ рдореЗрдВ рдЖрдорддреМрд░ рдкрд░ рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕рд░реНрд╡рд░ рдирд╛рдо / my-server-01 рдХреЛ / ve рдХреЗ рдмрд╛рдж рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред

рджреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдмреЗрд╕рд▓ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╛ рд░реВрдк рд▓реЗрддрд╛ рд╣реИ:

 https://109.120.*.*:4465/paci/v1.0/ve/my-server-01 

рдЬреЛ рд▓рд╛рдЗрди рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ:

 baseURL/ve/my-server-01 

рдХреБрдЫ рдкреНрд░рд╢реНрди рдЕрддрд┐рд░рд┐рдХреНрдд рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред рдЕрдХреНрд╕рд░, рд╡рд┐рдХрд▓реНрдк рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реЛрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реЛрддреЗ рд╣реИрдВред рдкреНрд░рд╢реНрди рдЪрд┐рд╣реНрди рдХреЗ рдмрд╛рдж рд╕рднреА рдЕрддрд┐рд░рд┐рдХреНрдд рдкреИрд░рд╛рдореАрдЯрд░ рд╕реВрдЪреАрдмрджреНрдз рд╣реИрдВред

рдРрд╕реА рдХреНрд╡реЗрд░реА рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрдВрдХреНрддрд┐ рд╣реИ:

 GET baseURL/ve?subscription=1000001 

рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рд╕рд╛рде, рд╣рдо рдХрдо рдпрд╛ рдЬреНрдпрд╛рджрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд▓реЗрддреЗ рд╣реИрдВ, рдЕрдм рдЪрд▓реЛ рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВред


рдПрдкреАрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреНрдпрд╛ рдХрд╛рд░реНрдп рдЙрдкрд▓рдмреНрдз рд╣реИрдВ?


рд╕рдВрднрд╛рд╡рдирд╛рдПрдВ рдХрд╛рдлреА рд╡реНрдпрд╛рдкрдХ рд╣реИрдВред "рдирд┐рд░реНрджреЛрд╖" рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ:

рдФрд░ рдЕрдзрд┐рдХ рдЧрдВрднреАрд░ рдмрд╛рддреЗрдВ:


рд╕рд░реНрд╡рд░ рдкреНрд░рдмрдВрдзрди


рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬрд╛рдирддреЗ рд╣реИрдВ, рдЖрдк рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рд╕рд░реНрд╡рд░ рдХреА рд╕реВрдЪреА рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ

 GET baseURL/ve/ 

рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдПрдХ рд╕рд░рд▓ XML рдЖрдПрдЧрд╛:

 <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ve-list> <ve-info subscription-id="1000001" name="Habr1" state="CREATED" description="Habr Example 1"/> <ve-info subscription-id="1000002" name="Habr2" state="CREATED" description="Habr Example 2"/> </ve-list> 

рдлрд╝реАрд▓реНрдб рдХрд╛ рд╡рд░реНрдгрди рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрдирдХреЗ рдирд╛рдо, рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдЦреБрдж рдХреЗ рд▓рд┐рдП рдмреЛрд▓рддреЗ рд╣реИрдВред

рдЖрдк рд╕рдорд╛рдкреНрдд рд╕рд░реНрд╡рд░ рдХреЛ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рд╛рде рд░реЛрдХ рдпрд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 PUT baseURL/ve/{ve-name}/start|stop 

{Ve-name} рдХреЗ рдмрдЬрд╛рдп, рд╕рд░реНрд╡рд░ рдирд╛рдо (рдКрдкрд░ рджрд┐рдП рдЧрдП рдЙрддреНрддрд░ рд╕реЗ рдирд╛рдо рдлрд╝реАрд▓реНрдб) рдбрд╛рд▓реЗрдВ, рдФрд░ рдЗрд╕рдХреЗ рдмрд╛рдж рд╕рд░реНрд╡рд░ рдХреЛ рд╢реБрд░реВ рдпрд╛ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб рдЬреЛрдбрд╝реЗрдВред рдлрд┐рд░, рдирд╛рд╢рдкрд╛рддреА рдХреЗ рдЧреЛрд▓реЗ рдЬрд┐рддрдирд╛ рдЖрд╕рд╛рди рд╣реИ, рдореВрд▓ рд░реВрдк рд╕реЗ рдпрд╣рд╛рдВ рд░реБрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдирд╣реАрдВ рд╣реИред

рдХрдВрд╕реЛрд▓ рд╕реЗ рдПрдХ рдирдпрд╛ рд╕рд░реНрд╡рд░ рдмрдирд╛рдирд╛ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИред рдЗрд╕ рдХрдорд╛рдВрдб рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рд╣реИ, рдФрд░ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд╕рд┐рд░ рдореЗрдВ рдХреБрдЫ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдкрд░ рдкреНрд░рддрд┐рдмрдВрдз рд░рдЦрдирд╛ рд╣реЛрдЧрд╛ рдпрд╛ рдЪреАрдЯ рд╢реАрдЯ рдкрд░ рдЭрд╛рдВрдХрдирд╛ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕реНрд▓рд╛рдЗрдбрд░реНрд╕ рдХреЗ рд╕рд╛рде рдЬреАрдпреВрдЖрдИ рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рдкреИрд░рд╛рдореАрдЯрд░ рдкрд╛рд░ рд╣реЛ рдЧрдП рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рддреНрд░реБрдЯрд┐ 406 рдорд┐рд▓реЗрдЧреА: "рд╡реАрдИ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд▓рд┐рдП рд╕рджрд╕реНрдпрддрд╛ рд╕реАрдорд╛ рдкрд╛рд░ рд╣реЛ рдЧрдИ"ред

рдЖрджреЗрд╢ рд╕реНрд╡рдпрдВ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

 POST baseURL/ve/ 

рдФрд░ рдлрд┐рд░ рд╕рд╛рд░рд╛ рдЬрд╛рджреВ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдиреБрд░реЛрдз рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕рдХреЗ рд▓рд┐рдП XML рдирд┐рдХрд╛рдп рдмрдирд╛рдирд╛ рднреА рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рд╕рд░реНрд╡рд░ рдХреЗ рд╕рднреА рдкреИрд░рд╛рдореАрдЯрд░ рд╣реЛрдВрдЧреЗ:

 <?xml version="1.0" encoding="UTF-8"?> <ve> <name>HabrExample1</name> <description>VE Linux 40</description> <subscription-id>1000001</subscription-id> <cpu number="1" power="1500"/> <ram-size>256</ram-size> <bandwidth>100</bandwidth> <no-of-public-ip>1</no-of-public-ip> <no-of-public-ipv6>0</no-of-public-ipv6> <ve-disk local="true" size="20"/> <platform> <template-info name="centos-6-x86_64"/> <os-info technology="CT" type="linux-free"/> </platform> <backup-schedule name="daily"/> <admin login="root" password="152eyyBHO"/> </ve> 

рдпрджрд┐ рд╕рдм рдХреБрдЫ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЙрддреНрддрд░ рдПрдХ рдирдИ рдЖрднрд╛рд╕реА рдорд╢реАрди рдХреЗ рд╕рдлрд▓ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдПрдЧрд╛:

 <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <pwd-response> <message>VE create initiated</message> <password>152eyyBHO</password> </pwd-response> 




рдЫрд╡рд┐ рдкреНрд░рдмрдВрдзрди


рдЯреАрдореЛрдВ рдХреЗ рдЗрд╕ рд╕рдореВрд╣ рдореЗрдВ рдирд┐рд╣рд┐рдд рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЖрдкрдХреЛ рдирдИ рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЛ рддреИрдирд╛рдд рдФрд░ рд╕реНрдХреЗрд▓ рдХрд░рддреЗ рд╕рдордп рд╕рдордп рдФрд░ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЪрд┐рддреНрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рддреИрдпрд╛рд░ рд╣реИрдВ, рдФрд░ рдЖрдкрдиреЗ рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдЙрдирдХреЗ рдЖрджреЗрд╢реЛрдВ рдХреА рд╕реВрдЪреА рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдХрд░ рд▓рд┐рдпрд╛ рд╣реИред

 GET baseURL/image 

рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╕рд░реНрд╡рд░ рдиреЗ рд╣рдореЗрдВ рдЙрддреНрддрд░ рджрд┐рдпрд╛ рдХрд┐ рдРрд╕реА рдХреЛрдИ рдЫрд╡рд┐ рд╣реИ:

 <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <image-list> <image-info image-of="HabrExample3" active="true" load-balancer="true" subscriptionid="100001" created="2012-11-11 19:19:19.84091+04" size="3" name="lbimage"/> </image-list> 

рдЗрд╕рд╕реЗ рдПрдХ рдФрд░ рд╕рд░реНрд╡рд░ рддреИрдирд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ? рдХреБрдЫ рднреА рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИ! рдорд╛рдирдХ рдЕрдиреБрд░реЛрдз:

 POST baseURL/ve/{subscription-id}/{ve-name}/from/{image-name} 

рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ

 POST baseURL/ve/1000003/Habr3/from/HabrExample3 

рдЗрд╕ рдкрд░, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдПрдХ рдЫрд╡рд┐ рд╕реЗ рдПрдХ рд╕рд░реНрд╡рд░ рдмрдирд╛рдиреЗ рдХреЗ рд╕рд╛рде рдХрд╛рдо рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЛрдИ рднреА рдПрдХ рдореМрдЬреВрджрд╛ рд╕рд░реНрд╡рд░ рдХреЛ рдХреЗрд╡рд▓ рдПрдХ рдХреНрд▓реЛрди рдХрд░рдХреЗ рдПрдХ рдирдпрд╛ рд╕рд░реНрд╡рд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реЗрд╢рд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ:

 POST baseURL/ve/{ve-name}/clone-to/{new-server-name} 


Balancer рдкреНрд░рдмрдВрдзрди


рдЙрдкрд▓рдмреНрдз рдмреИрд▓реЗрдВрд╕рд░реЛрдВ рдХреА рд╕реВрдЪреА рдЙрд╕реА рдкреНрд░рдХрд╛рд░ рд╣реИ, рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╕реЗрд╡рд╛рдУрдВ, рд╕реЗрд╡рд╛рдУрдВ рдФрд░ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреА рдХрдИ рдЕрдиреНрдп рд╕реВрдЪрд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рд╣реИ:

 GET baseURL/load-balancer 

рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдПрдХ рдЫреЛрдЯрд╛ XML рдирд┐рд░реНрдорд┐рдд рд▓реЛрдб рдмреИрд▓реЗрдиреНрд╕рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИ:

 <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <lb-list> <load-balancer state="STARTED" subscription-id="1" name="LB1"/> <load-balancer state="STARTED" subscription-id="1" name="LB2"/> </lb-list> 

рдХрд┐рд╕реА рднреА рдореМрдЬреВрджрд╛ рд╕рд░реНрд╡рд░ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдкрд╣рд▓реЗ рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рдмреИрд▓реЗрдВрд╕рд░ рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

 POST baseURL/load-balancer/{lb-name}/{ve-name} 

рд╣рд╛рдВ, рдФрд░ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рдЕрдзрд┐рдХ рдХрдард┐рди рдирд╣реАрдВ рд╣реИ:

 DELETE baseURL/load-balancer/{lb-name}/{ve-name} 


рдЙрдкрдпреЛрдЧрд┐рддрд╛рдПрдБ


рдЕрдм рддрдХ, рдХреЗрд╡рд▓ рдПрдкреАрдЖрдИ рдХреЗ рдЗрд╕ рд╣рд┐рд╕реНрд╕реЗ рдореЗрдВ рдХрд╛рд░реНрдп рдХрд┐рдП рдЧрдП рд╣реИрдВред рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдЙрдкрд▓рдмреНрдз "рдкреВрд░реНрд╡-рд╕реНрдерд╛рдкрд┐рдд" рд╕рд░реНрд╡рд░ рдУрдПрд╕ рдХреА рдПрдХ рд╕реВрдЪреА рд╣реИ:

 GET baseURL/template/{name} 

рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдмреИрдХрдЕрдк рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рдкреНрд░реАрд╕реЗрдЯ рдХреА рд╕реВрдЪреА:

 GET baseURL/schedule 


PHP рдХреЛрдб рдЙрджрд╛рд╣рд░рдг



рд╕рд░реНрд╡рд░реЛрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░реЗрдВ:

 <?php $mainStr = "http://109.120.166.3:4465/paci/v1.0/"; $queryStr = 've'; $url = $mainStr.$queryStr; $process = curl_init(); curl_setopt($process, CURLOPT_URL, $url); curl_setopt($process, CURLOPT_HEADER, 1); curl_setopt($process, CURLOPT_USERPWD, '<login>:<password>'); curl_setopt($process, CURLOPT_RETURNTRANSFER, TRUE); $head = curl_exec($process); curl_close($process); ?> 

XML рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛:

 <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ve-list> <ve-info subscription-id="1000001" name="web1" state="CREATED" description="Web server 1"/> <ve-info subscription-id="1000002" name="web2" state="CREATED" description="Web server 2"/> </ve-list> 


рд╕рд░реНрд╡рд░ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП PUT рдЕрдиреБрд░реЛрдз:

 <?php $mainStr = "http://109.120.166.3:4465/paci/v1.0/"; $queryStr = 've/<ve-name>/<start | stop>'; $url = $mainStr.$queryStr; $process = curl_init(); curl_setopt($process, CURLOPT_URL, $url); curl_setopt($process, CURLOPT_HTTPHEADER, array('Content-Type: application/xml')); curl_setopt($process, CURLOPT_PUT, 1); curl_setopt($process, CURLOPT_HEADER, 1); curl_setopt($process, CURLOPT_USERPWD, '<login>:<password>'); curl_setopt($process, CURLOPT_RETURNTRANSFER, TRUE); $head = curl_exec($process); curl_close($process); ?> 


XML рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛:
  * VE START initiated 


рд╕рд░реНрд╡рд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП POST рдЕрдиреБрд░реЛрдз:

 <?php $mainStr = "http://109.120.166.3:4465/paci/v1.0/"; $queryStr = 've'; $serverInfo = '<?xml version="1.0" encoding="UTF-8"?> <ve> <name>Web40</name> <description>VE Linux 40</description> <subscription-id>1000001</subscription-id> <cpu number="2" power="1600"/> <ram-size>512</ram-size> <bandwidth>100</bandwidth> <no-of-public-ip>2</no-of-public-ip> <no-of-public-ipv6>2</no-of-public-ipv6> <ve-disk local="true" size="3"/> <platform> <template-info name="centos-6-x86_64"/> <os-info technology="CT" type="linux-free"/> </platform> <backup-schedule name="daily"/> <admin login="root" password="qwwqq45"/> </ve> '; $url = $mainStr.$queryStr; $process = curl_init(); curl_setopt($process, CURLOPT_URL, $url); curl_setopt($process, CURLOPT_HTTPHEADER, array('Content-Type: application/xml')); curl_setopt($process, CURLOPT_POST, 1); curl_setopt($process, CURLOPT_HEADER, 1); curl_setopt($process, CURLOPT_USERPWD, '<login>:<password>'); curl_setopt($process, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($process, CURLOPT_POSTFIELDS, $serverInfo); $head = curl_exec($process); curl_close($process); ?> 

XML рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛:

 <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <pwd-response> <message>VE create initiated</message> <password>152eyyBHO</password> </pwd-response> 


DELETE рд╕рд░реНрд╡рд░ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реИ

 <?php $mainStr = "http://109.120.166.3:4465/paci/v1.0/"; $queryStr = 've/<ve-name>'; $url = $mainStr.$queryStr; $process = curl_init(); curl_setopt($process, CURLOPT_URL, $url); curl_setopt($process, CURLOPT_CUSTOMREQUEST, "DELETE"); curl_setopt($process, CURLOPT_HEADER, 1); curl_setopt($process, CURLOPT_USERPWD, '<login>:<password>'); curl_setopt($process, CURLOPT_RETURNTRANSFER, TRUE); $head = curl_exec($process); curl_close($process); ?> 

XML рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛:

  * VE DELETE initiated 


рдХреНрд▓рд╛рдЙрдб рд╕рд░реНрд╡рд░ рдХрд╛ рдЧреИрд░-рд╡рд╛рдгрд┐рдЬреНрдпрд┐рдХ рдкрд░реАрдХреНрд╖рдг 1 рдлрд░рд╡рд░реА, 2013 рддрдХ рдЬрд╛рд░реА рд░рд╣реЗрдЧрд╛ред рд╕реЗрд╡рд╛ рдХрд╛ рд╡рд┐рдХрд╛рд╕ рдХрд╛рдлреА рд╣рдж рддрдХ рдЖрдкрдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдЕрдм рд╕рдореНрдорд┐рд▓рд┐рдд рд╣реЛрдВ !

рд╕реЗрд╡рд╛ рдХреА рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда рд╕рдореАрдХреНрд╖рд╛рдУрдВ рдХреЗ рд▓реЗрдЦрдХреЛрдВ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдкреБрд░рд╕реНрдХрд╛рд░ рддреИрдпрд╛рд░ рдХрд┐рдП рд╣реИрдВ ред



рд╣рдорд╛рд░реА рдкрд┐рдЫрд▓реА рд╕рдВрдмрдВрдзрд┐рдд рдкреЛрд╕реНрдЯ


Infobox рд╕реЗ рдХреНрд▓рд╛рдЙрдб рд╕рд░реНрд╡рд░

рд╕рдВрджрд░реНрднрд┐рдд рд╕рд╛рдордЧреНрд░рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдВрдХ


рдХреНрд▓рд╛рдЙрдб рдЗрдВрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдПрдкреАрдЖрдИ рдкреНрд░рд▓реЗрдЦрди (рдкреАрдбреАрдПрдл) рдХреЗ рд▓рд┐рдП рд╕рдорд╛рдирддрд╛рдПрдВ рд╕реНрд╡рдЪрд╛рд▓рди

рдЗрдиреНрдлреЛрдмреЙрдХреНрд╕ рдмреНрд▓реЙрдЧ

Source: https://habr.com/ru/post/In160667/


All Articles