Данная библиотека, написанная на PHP, позволяет работать с NetAngels Cloud VDS API., (*1)
-
Инициализация библиотеки и получение авторизационного токена., (*7)
define('API_KEY', '#Ваш API ключ#');
try {
$netAngelsApi = new \NetAngels\Api(new ApiKey(API_KEY));
} catch (Exception $e) {
echo '
Не удалось получить авторизационный токен:' . $e->getMessage() . ', (*8)
';
if ($prev = $e->getPrevious()) {
echo '
' . nl2br($prev->getMessage()) . ', (*9)
';
}
}
Далее переменная $netAngelsApi
будет использована взеде., (*10)
При создании нового объекта \NetAngels\Api
происходит попытка получения авторизационного токена.
Не все API методы требуют авторизационный токен, поэтому можно поймать исключение, и работать дальше с API без токена.
API ресурсы, поддерживающе работу без токена: vm-tariffs
, os-images
, token
(получение токена)., (*11)
-
Создание облачной VDS, (*12)
// в качестве примера выберем самый начальный тариф
$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 данный объект хранит IP адрес созданной VDS;
а если облачная VDS была создана на основе образа ОС,
то этот объект будет хранить также реквизиты пользователей для доступа к данной VDS., (*13)
Данный код, (*14)
$users = $requisites->getUsers();
var_dump($users);
Выведет что-то вроде этого:, (*15)
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)
-
Получение VDS по ID, (*16)
$vds = $netAngelsApi->getVmApi()->getVds(777);
В сущностях \Netangels\Entity\Vds
и \Netangels\Entity\*Disk\
инкапсулировано API,
поэтому операции можно производить прямо с ними:, (*17)
// переименование VDS
$vds = $vds->rename('Новое имя');
// переменной $vds присваивается новый объект VDS с новым именем
// меняем имя и тариф
$vds = $netAngelsApi->getVmApi()->getVds(777)
->changeTariff($netAngelsApi->getTariffsApi()->getPowerfulTariff())
->rename('Супер-мощная VDS');
-
Простенькая панель для включения/выключения VDS, (*18)
Находится в примере, (*19)