Массовое создание www-доменов в ISPManager 6.

Массовое создание www-доменов в ISPManager 6.

Потребовалось создать большое количество www-доменов ( порядка 800 штук ) в панели ISPManager и подключить к каждому домену сертификат от LetsEncrypt.
Создавать такое количество записей в ручном режиме совсем не хотелось, но благо, что была возможность сформировать текстовый файл со списком доменов.
Дальше на помощь пришли bash и API ISPManager.

В ISPManager существует свой программный интерфейс, который позволяет манипулировать объектами как через командную строку, так и через URI( можно дёргать через curl ).
По ссылке — официальная документация по API.

В моём случае пригодилась командная строка и непосредственно команда: /usr/local/mgr5/sbin/mgrctl -m ispmgr

Допустимые параметры можно посмотреть командой /usr/local/mgr5/sbin/mgrctl -m ispmgr webdomain.edit -i

Справка довольно внятная, всё подробно расписано.

В результате родился такой скрипт:

#!/bin/bash  
file=$(cat domain.list)
for line in $file
do
# создание домена
    echo -e "\n"
    sleep 5s
    /usr/local/mgr5/sbin/mgrctl -m ispmgr webdomain.edit  name=$line aliases=  php=on php_mode=php_mode_fcgi_apache php_cgi_version=isp-php73 owner=www-root email=info@mydomain.com sok=ok
done

После создания доменов приступаю к получению сертификатов, можно было объединить вместе создание домена и получение сертификата, но решил разделить на два этапа.

#!/bin/bash  
file=$(cat domain.list)
for line in $file
do
    echo -e "\n"
    sleep 60s
# генерация и подключение LetsEncrypt сертификата
    /usr/local/mgr5/sbin/mgrctl -m ispmgr letsencrypt.generate username=www-root domain_name=$line domain=$line email=info@maindomain.com enable_cert=on sok=ok
# включить редирект HTTP -> HTTPS
    /usr/local/mgr5/sbin/mgrctl -m ispmgr webdomain.edit elid=$line secure=on redirect_http=on sok=ok
done

Паузу в 60 сек. поставил, чтобы LetsEncrypt сильно не нервничал и возобновлял количество попыток получения сертификата с одного логина ( Up to 300 new orders can be created by a single account every 3 hours. The ability to create new orders refills at a rate of 1 order every 36 seconds).

Nicko

Добавить комментарий