maestroprog/netangels-cvds-api

一个PHP库,提供对NetAngels云VDS托管服务的远程控制。

v1.0 2017-08-12 10:10 UTC

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类的访问

实体 VdsDisk 封装了与API交互的逻辑

示例

要使用API,需要一个特殊的API密钥,您可以在NetAngels面板上获取,前提是您是一个已认证的用户,并且已连接了“云VDS”服务。

  1. 初始化库和获取授权令牌。

    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-tariffsos-imagestoken(获取令牌)。

  2. 创建云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)
    
  3. 按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');
    
  4. 一个简单的VDS开关控制面板

    位于 示例