maestroprog / netangels-cvds-api
一个PHP库,提供对NetAngels云VDS托管服务的远程控制。
v1.0
2017-08-12 10:10 UTC
Requires
- php: >=5.6
- ext-curl: *
This package is auto-updated.
Last update: 2024-09-17 02:18:46 UTC
README
这个用PHP编写的库允许操作NetAngels Cloud VDS API。
它允许执行几乎所有在文档中描述的操作。
工作原理
该库被划分为不同的类,用于处理API的不同类型资源
- VmApi - 实现云VDS的管理
- DiskApi - 实现云磁盘的管理
- VmsIpApi - 获取云VDS使用的IP地址信息
- TariffsApi - 获取可用套餐列表
- OsApi - 提供创建云VDS可能使用的操作系统镜像信息
主要类 Api 包含获取授权令牌的函数,并提供对其他API类的访问
实体 Vds 和 Disk 封装了与API交互的逻辑
示例
要使用API,需要一个特殊的API密钥,您可以在NetAngels面板上获取,前提是您是一个已认证的用户,并且已连接了“云VDS”服务。
-
初始化库和获取授权令牌。
define('API_KEY', '#Ваш API ключ#'); try { $netAngelsApi = new \NetAngels\Api(new ApiKey(API_KEY)); } catch (Exception $e) { echo '<p>Не удалось получить авторизационный токен:' . $e->getMessage() . '</p>'; if ($prev = $e->getPrevious()) { echo '<p>' . nl2br($prev->getMessage()) . '</p>'; } }
之后,变量
$netAngelsApi将在后续中使用。在创建新的
\NetAngels\Api对象时,会尝试获取授权令牌。并非所有API方法都需要授权令牌,因此可以捕获异常,然后在无需令牌的情况下继续使用API。支持无令牌工作的API资源包括:vm-tariffs、os-images、token(获取令牌)。 -
创建云VDS
// в качестве примера выберем самый начальный тариф $tariff = $netAngelsApi->getTariffsApi()->getLowTariff(); // получаем список возможных образов операционных систем, просматриваем его, и выбираем нужный образ $images = $netAngelsApi->getOsApi()->getList(); // затем нужно выбрать образ диска с операционной системой // допустим, это будет образ с Debian 7 Wheezy LAMP, и архитектурой 64-битной $image = \NetAngels\ValueObject\VmImage::custom(2, 64); // также для облачной VDS потребуется диск, будем создавать SSD диск на 10ГБ $disk = new \NetAngels\Entity\SsdDisk($netAngelsApi, 10); // создаем обланую вдс на основе выбранного образа $requisites = (new \NetAngels\Entity\Vds($netAngelsApi,$tariff))->createByImage($image);
在这些操作之后,变量
$requisites将包含\NetAngels\ValueObject\VmRequisites类的对象;创建新的云VDS后,该对象将存储VDS的IP地址;如果云VDS是基于操作系统镜像创建的,则该对象还将存储访问VDS的用户凭证。以下代码
$users = $requisites->getUsers(); var_dump($users);
将输出类似的内容
object(NetAngels\ValueObject\VmRequisites)[39] private 'ip' => string '91.226.83.194' (length=13) private 'users' => array (size=2) 0 => object(NetAngels\ValueObject\VmUser)[41] private 'username' => string 'root' (length=4) private 'password' => string 'M*************y' (length=15) 1 => object(NetAngels\ValueObject\VmUser)[40] private 'username' => string 'web' (length=3) private 'password' => string 'r*************J' (length=15) -
按ID获取VDS
$vds = $netAngelsApi->getVmApi()->getVds(777);
在实体
\Netangels\Entity\Vds和\Netangels\Entity\*Disk\中封装了API,因此可以直接使用它们进行操作// переименование VDS $vds = $vds->rename('Новое имя'); // переменной $vds присваивается новый объект VDS с новым именем // меняем имя и тариф $vds = $netAngelsApi->getVmApi()->getVds(777) ->changeTariff($netAngelsApi->getTariffsApi()->getPowerfulTariff()) ->rename('Супер-мощная VDS'); -
一个简单的VDS开关控制面板
位于 示例