We are happy to announce that Vesta is back under active development as of 25 February 2024. We are working on v1 candidate and expect to engage more with the community over the coming months. We are committed to open source, and we encourage contributors to help us build the future of Vesta.
API регистрации пользователей
API регистрации пользователей
Подскажите, есть ли ли API для регистрации пользоателей?
Last edited by A1ex on Tue Mar 19, 2013 6:46 am, edited 1 time in total.
Re: API регистрации пользователей
В панели есть полноценный API, но к сожалению, документация по работе с ним пока не готова. Попробую вкратце описать ключевые моменты, но если что-то не будет понятно, уточняйте.
В папке /usr/local/vesta/bin расположены скрипты, которые одновременно являются функциями API. Если нужно создать пользователя, нужен скрипт v-add-user, если нужно удалить базу данных, это сделает скрипт v-delete-database и так далее по аналогии. Другими словами, если вы сделаете ls /usr/local/vesta/bin, то сможете получить представление о доступных функциях.
Если запустить скрипт без параметров, он выдает краткую справку об использовании:
Каждый скрипт возвращает return_code. Если return_code равен 0, значит операция заверишалсь успешно. Любая другая цифра будет обозначать ошибку. Актуальную таблицу кодов возврата всегда можно найти в файле /usr/local/vesta/func/main.sh
API вдохновлено идеями UNIX и поэтому вся информация хранится в простых текстовых файлах. Каждый скрипт решает только одну задачу. В случае успешного завершения скрипта, на экран ничего не выводится. Если произошла ошибка, то скрипт сразу завершает свою работу и выводит сообщение на экран.
Вернемся к созданию пользователя и проверим код возврата.
По таблице выше 1 это E_ARGS, что означает недостаточное количество аргументов. Необязательные параметры заключены в квадтратные скобки. Для успешного создания пользователя нужно азадть всего 3 аргумента - имя пользователя, пароль и почтовый адрес. Если пакет не указан, то будет подставлен пакет по умолчанию, который называется default.
Помимо категории скриптов для создания и изменения, есть категория для отображения, такие срипты попадают под шаблон v-list-*. Скрипты могут отображать информацию в нескольких форматах. На данный момент поддерживается 3 формата: shell, plain и json. Первые два удобны для работы в командной строке.
Третий формат используется для работы веб-интерфейса, который для работы использует то же самое API. Для работы веб-интерфейса в систему устанавливается дополнительный веб-сервер nginx и php-fpm, для обработки php. Все запросы интерфейса выполняются под пользователем admin, которому разрешено выполнять функции api через sudo.
Теперь попробую конкретнее ответить на ваш вопрос по поводу создания пользователей. Тут возможны 2 варианта:
1) Можно ипользовать api напрямую, выполняя скрипты в /usr/local/vesta/bin, как это делает веб-интерфейс
2) Можно воспользоваться wrapper-ом веб-интерфейса для доступа к api.
В большинстве случаев, второй вариант будет релевантнее. Дальше про него. Кстати, совсем недавно была реализована интеграция billing системы WHMSC на его wrapper-а. В модуле для whmcs реализованы ключевые функции, которые вероятно и вам интересны. Модуль умеет:
* создавать пользоватей
* удалять пользователей
* менять пароль пользователя
* добавлять web/mail/dns домены
К wrapper-у нужно обращаться POST запросами, передавая имя и пароль пользователя admin. Приведу несколько наиболее всотребованных примеров:
В папке /usr/local/vesta/bin расположены скрипты, которые одновременно являются функциями API. Если нужно создать пользователя, нужен скрипт v-add-user, если нужно удалить базу данных, это сделает скрипт v-delete-database и так далее по аналогии. Другими словами, если вы сделаете ls /usr/local/vesta/bin, то сможете получить представление о доступных функциях.
Если запустить скрипт без параметров, он выдает краткую справку об использовании:
Code: Select all
[root@v-test ~]# v-add-user
Error: not enought arguments
Usage: v-add-user USER PASSWORD EMAIL [PACKAGE] [FNAME] [LNAME]
Code: Select all
OK=0
E_ARGS=1
E_INVALID=2
E_NOTEXIST=3
E_EXISTS=4
E_SUSPENDED=5
E_UNSUSPENDED=6
E_INUSE=7
E_LIMIT=8
E_PASSWORD=9
E_FORBIDEN=10
E_DISABLED=11
E_PARSING=12
E_DISK=13
E_LA=14
E_FTP=15
E_SSH=16
E_DB=17
E_RRD=18
E_UPDATE=19
E_RESTART=20
Вернемся к созданию пользователя и проверим код возврата.
Code: Select all
[root@v-test ~]# v-add-user
Error: not enought arguments
Usage: v-add-user USER PASSWORD EMAIL [PACKAGE] [FNAME] [LNAME]
[root@v-test ~]# echo $?
1
Code: Select all
[root@v-test ~]# v-add-user demo d3mo0p4ssw0rd [email protected]
[root@v-test ~]# echo $?
0
Code: Select all
[root@v-test ~]# v-list-users shell
USER PACKAGE U_DISK U_BANDWIDTH SUSPENDED DATE
--------- --------- --------- --------- --------- ---------
admin default 3 0 no 2013-02-11
test default 1 0 no 2013-03-10
demo default 0 0 no 2013-03-18
Теперь попробую конкретнее ответить на ваш вопрос по поводу создания пользователей. Тут возможны 2 варианта:
1) Можно ипользовать api напрямую, выполняя скрипты в /usr/local/vesta/bin, как это делает веб-интерфейс
2) Можно воспользоваться wrapper-ом веб-интерфейса для доступа к api.
В большинстве случаев, второй вариант будет релевантнее. Дальше про него. Кстати, совсем недавно была реализована интеграция billing системы WHMSC на его wrapper-а. В модуле для whmcs реализованы ключевые функции, которые вероятно и вам интересны. Модуль умеет:
* создавать пользоватей
* удалять пользователей
* менять пароль пользователя
* добавлять web/mail/dns домены
К wrapper-у нужно обращаться POST запросами, передавая имя и пароль пользователя admin. Приведу несколько наиболее всотребованных примеров:
Code: Select all
# Создать пользователя demo
https://server-ip/api/?&user=admin&password=currentpwd&cmd=v-add-domain&arg1=demo&arg2=d3m0p4ssw0rd&[email protected]
# Добавить пользователю домен demo.vestacp.com
https://server-ip/api/?&user=admin&password=currentpwd&cmd=v-add-domain&arg1=demo&arg2=demo.vestacp.com
# Удалить пользователя включая его домены
https://server-ip/api/?&user=admin&password=currentpwd&cmd=v-delete-user&arg1=demo
-
- Posts: 2
- Joined: Mon Mar 18, 2013 12:54 am
Re: API регистрации пользователей
Ухты, очень интересовал етот вопрос, хочется связать сие чудо с билингом http://www.joonte.com/
Re: API регистрации пользователей
Ну раз другие панели поддерживаются, то и с добавлением плагина для vesta не должно возникнуть сложностей.
Re: API регистрации пользователей
skid, спасибо!
Re: API регистрации пользователей
А как установить модуль WHCMS для работы с vesta
Re: API регистрации пользователей
Вот инструкция по установке
Code: Select all
cd /home/wex/web/billing-whcms-site.ltdr/public_html/modules/servers
mkdir vesta
wget http://c.vestacp.com/0.9.8/rhel/whmcs-module.php -O vesta.php
Re: API регистрации пользователей
Обьясните мне) Установил сее чудо себе на сервер. Сразу решил написать микро-билинг)
Сделал регистрацию, авторизацию, покупку. Но вот пользователь не создается(уже 5 дней прошло). Результатом долгих мучений и экспериментов понял что проблема в source(команда на баше аналог include). Соответственно и api из браузера не вызывается. пробовал curl копал ваш скрипт. Но толку нет) Помогите с тем чтобы поднять этот гребанный api и скиньте оригинальный файл v-add-user
Зарание спасибо)
Сделал регистрацию, авторизацию, покупку. Но вот пользователь не создается(уже 5 дней прошло). Результатом долгих мучений и экспериментов понял что проблема в source(команда на баше аналог include). Соответственно и api из браузера не вызывается. пробовал curl копал ваш скрипт. Но толку нет) Помогите с тем чтобы поднять этот гребанный api и скиньте оригинальный файл v-add-user
Зарание спасибо)
Re: API регистрации пользователей
Не совсем понятно в чем причина. Вы используете POST запросы или запускаете скрипты напрямую?