Массовое создание 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).
Добавить комментарий