Теперь при помощи shell-скриптов можно продавать что угодно



На сегодняшний день большинство провайдеров, помимо стандартных услуг хостинга, доменов и SSL, предоставляют и различные “нехостинговые” сервисы. Например, VPN или стриминг. Возникает вопрос: как организовать их подключение для клиента в BILLmanager? Можно давать доступ вручную, но что делать, если заявок на подключение прорва? Автоматизировать процесс, конечно! Недавно в BILLmanager появилось ещё одно решение для автоматизации продаж, и мы хотим об этом рассказать.

В статье речь пойдёт о том, как при помощи shell-скриптов своими силами настроить продажу нестандартных услуг в нашей биллинговой платформе.


Возможно, у опытных пользователей возникнет вопрос: “Но для BILLmanager же есть дополнительные модули, зачем shell-скрипты?” Дело в том, что скрипты проще написать: программист не нужен; знающего BASH системного администратора вполне достаточно.

Итак, подумаем: для каких услуг потребуется написание скриптов. Навскидку приходит несколько вариантов: для продажи ключей активации к тому или иному ПО, для предоставления места на ftp-сервере под хранение резервных копий, для реализации стриминга, торговли черничными маффинами и смузи. Разумеется, список можно продолжить, он ограничен только фантазией.

Рассмотрим пример продажи доступа к ftp-серверу с каким-то ценным содержимым. Пусть это будут регулярно обновляемые векторные карты местности.

Выясним, каковы технические требования. Согласно документации необходимо 4 скрипта: для заказа, приостановки, возобновления и прекращения доступа.

В первый скрипт (open.sh) передаются автоматически сгенерированные имя пользователя и пароль, а также могут передаваться какие-то дополнительные параметры, необходимые для работы скрипта. На выходе должна быть строка начинающаяся с “OK” и содержащая параметр “--id”: уникальный идентификатор созданной услуги. Допускается также возвращать дополнительные параметры; например, ссылку на ftp-сервер, чтобы показать её заказавшему сервис пользователю.

В остальные скрипты (suspend.sh, resume.sh, close.sh) передаётся уникальный идентификатор созданной услуги (--id), а на выходе должна быть строка “OK”.

Итак, приступим. Пусть в нашем случае файловым сервером будет ProFTPD.

Для того чтобы дать клиенту доступ к картам, нужно создать пользователя и назначить ему пароль. Для этого воспользуемся теми параметрами, которые BILLmanager генерирует автоматически: так мы получаем ещё и ID услуги, поскольку юзернейм создаётся уникальным. Достаём значения из строки параметров, затем вызываем useradd, а потом назначаем пароль с помощью passwd. Осталось вернуть “OK”, идентификатор, а также данные для авторизации на сервере, чтобы потом передать эту информацию клиенту.

Результат: open.sh
#!/bin/bash
for i
do
	if [ ${i:0:6}  = "--user" ] 
	then
		username=${i:7}
	elif [ ${i:0:10} = "--password" ]
	then
		password=${i:11}
	fi
done
useradd $username -d /home/ftp_folder -m -s /bin/false
echo $password | passwd --stdin $username > /dev/null
echo "OK --id=$username --username=$username --password=$password"

Услугу подключили. Сделаем механизм приостановки доступа на случай, если закончится баланс на счёте клиента. По полученному ID вызываем usermod и меняем домашний каталог на /dev/null.

Результат: suspend.sh
#!/bin/bash
for i
do
	string=${i}
	if [ ${string:0:4} = "--id" ]
	then
	username=${string:5}
	fi
done
usermod -d /dev/null $username
echo "OK"


Результат: resume.sh
#!/bin/bash
for i
do
	string=${i}
	if [ ${string:0:4} = "--id" ]
	then
	username=${string:5}
	fi
done
usermod -d /home/ftp_folder $username
echo "OK"

И, наконец, если предоставление услуги по каким-либо причинам более не планируется, то нужно удалить пользователя. Используя всё тот же идентификатор, запускаем userdel.

Результат: close.sh
#!/bin/bash
for i
do
	string=${i}
	if [ ${string:0:4} = "--id" ]
	then
	username=${string:5}
	fi
done
userdel $username
echo "OK"


Всё, написание кода завершено. Реализованные скрипты копируем в отдельную директорию на машину, откуда будут раздаваться карты, и применяем на них “chmod +x”. Кроме этого следует проверить, что ftp-сервер “смотрит” в /etc/passwd. За это отвечает строка AuthOrder в файле etc/proftpd.conf. Чтобы всё работало, в ней должно быть mod_auth_unix.c.

Теперь выполним настройки в BILLmanager. Нужно создать новый тип продукта, а затем тарифный план данного типа. После этого в качестве модуля обработки выбрать Shellscripts и дождаться завершения его установки. Если возникнет запрос на создание дата-центра — создаём его. На следующем этапе указываем IP-адрес ftp-сервера, заполняем данные аутентификации и путь к папке со скриптами. После нажатия на “Далее” вписываем произвольное название обработчика. Затем повторно выбираем тип продукта, указываем наименования, обработчик и цены. Осталось обозначить дополнительные параметры, которые передаются из скрипта open.sh. В типах продуктов выбираем только что созданный тип, щёлкаем “Параметры”, “Создать”. Создаём 2 параметра в соответствии со скриптом open.sh, отмечаем в них флажок “Показывать при открытии”, а также в выпадающем списке “Доступ для изменения” выбираем “Сотрудник”.

Настройки выполнены, и теперь услугу можно подключать клиентам.

Итак, тема shell-скриптов раскрыта. С радостью ответим на ваши вопросы, а также будем благодарны за обратную связь по статье. Успехов в разработке услуг!

www.ispsystem.ru/software/billmanager/download

Завершение работ по обновлению BILLmanager

Уважаемые клиенты! Спешим сообщить о полном завершении плановых работ по обновлению BILLmanager 4 Advanced на BILLmanager 5 Advanced, теперь можете зайти и оценить обновленную панель. Обратите внимание, у всех изменилась реферальная ссылка, не забудьте сменить ее во всех своих рекламных компаниях! Если возникнут вопросы по обновлению, не стесняйтесь, задавайте вопросы мы онлайн!

Обращаем ваше внимание, что служба поддержки работает ежедневно с 9:00 до 23:00 (по Москве).

C уважением, служба поддержки клиентов HOST-I7U.COM

BILLmanager 5 Advanced: запуск публичного тестирования



Мы рады объявить о старте публичного тестирования альфа-версии BILLmanager 5 Advanced.

Расширенная версия популярной платформы предоставляет дополнительный функционал для продажи любых собственных видов услуг, а также набор маркетинговых инструментов. С полным списком новых возможностей и отличий от версии BILLmanager 4 Advanced можно ознакомиться в нашей Документации.

Версия предназначена только для ознакомления и тестирования.
На данном этапе мы не предоставляем подробную документацию (она находится в процессе создания) и не берем на себя обязательств по технической поддержке BILLmanager 5 Advanced. Все сообщения об ошибках вы можете оставлять через публичную систему регистрации ошибок.

Установка
На этапе тестирования мы предлагаем бесплатную версию, не ограниченную по времени и функционалу, но ограниченную возможностью зарегистрировать не более 50 клиентов. Лицензия регистрируется автоматически во время установки. Ознакомиться с инструкцией по установке вы можете по ссылке.

Спасибо за участие в тестировании и ваши отзывы о продукте!