Создание зеркал серверов автоустановки Plesk
Поддержка локальных зеркал серверов автоустановки Plesk помогает избежать значительных трат времени и трафика на загрузку одних и тех же файлов снова и снова при установке или обновлении нескольких серверов Plesk. Локальные зеркала доступны по протоколу HTTP, и их можно указывать в качестве источника для загрузки пакетов Plesk во время установки или обновления.
Обязательные условия для создания локального зеркала репозитория
- На виртуальном хосте, используемом для зеркала, должны быть отключены все обработчики скриптов (php, pl, cgi, py, fcgi и т. д.).
- На виртуальном хосте или папке, используемых для зеркала, должна быть установлена опция
+FollowSymLinks
. - Если не указаны другие источники, то с машины, на которой запускается скрипт, и с машины, где будут устанавливаться файлы, должно быть доступно следующее:
-
rsync://rsync.installer.plesk.com/autoinstall
для Plesk для Linux, -
rsync://autoinstall-win.plesk.com/autoinstall
для Plesk для Windows.
-
- На машине, где запускается скрипт, PHP необходимо собрать с поддержкой следующих расширений (смотрите http://www.php.net/manual/en/ssh2.installation.php):
- ssh2_connect,
- simplexml,
- XML DOM.
- Зеркала для Plesk для Windows и Plesk для Linux нельзя располагать в одних и тех же папках. Необходимо использовать отдельные пути для создания зеркал.
Настройка локального зеркала репозитория
-
Скачайте и распакуйте инструмент Plesk Mirror Setup
# wget https://support.plesk.com/hc/en-us/article_attachments/12388062580887/mirrorctl-3.1.4.zip # unzip mirrorctlv2.0.1.zip # cd mirrorctl
-
Проверьте наличие доступных версий продукта
Используйте команду
show-all-releases
для просмотра доступных продуктов и командуos-list
для просмотра ОС, поддерживаемых определенным продуктом:# ./mirrorctl show-all-releases
# ./mirrorctl os-list --release=PLESK_12_0_18
-
Выберите, какие версии продукта вы хотите иметь на зеркале
Используйте команды
cfg --add
иcfg --remove
для изменения списка версий продукта, которые должны быть на зеркале:# ./mirrorctl cfg --add --release=PLESK_12_0_18 --os=cos5_i386 # ./mirrorctl cfg --add --win --release=PANEL_12_0_18_WIN --cfg-file=./plesk_win_mirror
-
Сохраните настройки локального зеркала репозитория в файл
Используйте команду
cfg --export
для сохранения созданной конфигурации в файл:# ./mirrorctl cfg --export --path=./
Конфигурация будет сохранена в файл
mirror.xml
в указанном месте.<?xml version="1.0" encoding="UTF-8"?> <xml> <release name="PLESK_12_0_18" version="12.0.18"> <os name="cos5_i386"/> </release> </xml>
Для загрузки сохраненной конфигурации из файла используйте команду
cfg --import
:# ./mirrorctl cfg --import --cfg-file=./mirror.xml
-
Создайте зеркало репозитория
Прежде всего создайте папку для зеркала:
# mkdir /var/www/html/mirror/ # mkdir /var/www/html/mirror_windows/
Затем используйте команду
update
для синхронизации зеркала с официальным репозиторием:# ./mirrorctl update --path=/var/www/html/mirror/ # ./mirrorctl update --win --path=/var/www/html/mirror_windows/ --cfg-file=./plesk_win_mirror
Примечание: Этот репозиторий можно использовать для установки только тех версий продукта и ОС, которые были указаны в конфигурации зеркала. Все остальные версии будут недоступны для утилиты autoinstaller
в этом репозитории.
Проверьте список доступных версий продукта в созданном репозитории:
# ./mirrorctl show-all-releases --src-host=/var/www/html/mirror/
# ./mirrorctl show-all-releases --win --src-host=/var/www/html/mirror_windows/
Теперь можно использовать локальное зеркало репозитория в процессе установки и обновления Plesk.
Использование локального зеркала репозитория
Зеркало можно использовать одним из следующих способов:
-
изменив преобразование DNS и настроив веб-хост зеркала так, чтобы
https://autoinstall.plesk.com
(для Linux) илиhttp://autoinstall-win.plesk.com/
(для Windows) указывали на зеркало; -
указав URL зеркала в переменной
SOURCE
в файле/root/.autoinstallerrc
на машине, где запускается автоустановщик;[root@container ~]# cat /root/.autoinstallerrc SOURCE=http://uri.of.local.mirror/here/
-
указав URL зеркала в опции
--source
при запуске автоустановщика в интерактивном режиме.
Поддержка удаленных локальных зеркал репозиториев
Инструмент Plesk Mirror Setup может управлять репозиториями, расположенными как в той же файловой системе, так и на удаленных серверах. Для указания удаленного исходного и удаленного целевого зеркал используются опции --path
и --src-host
.
Используйте --path
для указания удаленного целевого зеркала:
-
С использованием конкретного пользователя, пароля и хоста:
--path=user:UserSecurePassword@mymirror.tld:344/var/www/html/ --path=user:UserSecurePassword@192.168.100.100:22/var/www/html/ --path=root:RootSecurePassword@localhost:/var/www/html/
-
С использованием авторизации ключами SSH (требуются и закрытый, и открытый ключи):
--path=192.168.100.100:/var/www/html/
Если для данного пользователя не существует пары RSA по умолчанию (id_rsa и id_rsa_pub), то будет использоваться пара DSA по умолчанию (id_dsa и id_dsa.pub) из папки
$HOME/.ssh/
.--path=user@mymirror.tld:344/var/www/html/
-
Используйте конкретные ключи SSH как дополнительные опции утилиты mirrorctl:
--path=root@mymirror.tld:344/var/www/html/ --private-key=~/.ssh/id_mirror --public-key=~/.ssh/id_mirror.pub
Используйте --src-host
для указания удаленного исходного зеркала:
-
С помощью rsync по протоколу SSH:
--src-host=test@192.168.100.100:/var/www/html/test-mirror/ --src-host=mytestmirror.tld:/var/www/html/test-mirror/
- В приведенном выше случае запрещено указывать пароль пользователя или порт SSH (22).
- В случае использования опции
--src-host
для пользователя, запустившего инструмент, должна быть настроена авторизация ключами SSH, чтобы он мог получить доступ к хосту, указанному опцией--src-host
, в качестве пользователя, указанного этой опцией. - Если опция
--src-host
используется вместе с опцией--path
, то, опять же, для пользователя, указанного опцией--path
, должна быть настроена авторизация ключами SSH, чтобы он мог получить доступ с хоста, указанного опцией--path
, к хосту, указанному опцией--src-host
, в качестве пользователя, указанного опцией--src-host
.
-
Использование процесса rsync на исходном хосте:
--src-host=rsync://mytestmirror.tld:873/testmirror
Пример настройки rsync:
# head /etc/rsyncd.conf
[testmirror]
path = /var/www/html/test-mirror/
comment = Test repository
# cat /etc/xinetd.d/rsync
service rsync
{
# disable = yes
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}
Пример 1: Настройка периодических обновлений для локального зеркала репозитория
Цель: удостовериться, что зеркало с выбранными версиями продуктов находится в актуальном состоянии.
-
Создайте конфигурацию зеркала, добавив необходимые версии продуктов и операционные системы:
# /home/user/mirrorctl/mirrorctl cfg --add --release=PLESK_12_0_18 --os=cos5_i386 --cfg-file=/var/www/html/mirror/myconfig.xml # /home/user/mirrorctl/mirrorctl cfg --add --release=PLESK_12_0_18 --os=rhel5_i386 --cfg-file=/var/www/html/mirror/myconfig.xml # /home/user/mirrorctl/mirrorctl cfg --add --release=PLESK_11_5_30 --os=cos5_i386 --cfg-file=/var/www/html/mirror/myconfig.xml # /home/user/mirrorctl/mirrorctl cfg --add --win --release=PANEL_12_0_18_WIN --cfg-file=/var/www/html/mirror/windows_myconfig.xml
-
Настройте автоматическое обновление зеркала с помощью crontab:
$ crontab -l # m h dom mon dow command 59 23 * * * cd /home/user/mirrorctl/ && ./mirrorctl update --path=/var/www/html/mirror/ --cfg-file=/var/www/html/mirror/myconfig.xml > ./mirror-cron.log 2>&1 59 22 * * * cd /home/user/mirrorctl/ && ./mirrorctl update --win --path=/var/www/html/mirror_windows/ --cfg-file=/var/www/html/mirror/windows_myconfig.xml > ./mirror-cron-win.log 2>&1
Пример 2: Добавление новых операционных систем
Цель: добавить на зеркало еще одну операционную систему для конкретной версии продукта.
-
Импортируйте с помощью утилиты mirrorctl текущую конфигурацию репозитория, которую вы создали ранее:
# ./mirrorctl cfg --import --path=/var/www/html/mirror/ --cfg-file=myconfig
-
Добавьте новую ОС для нужной версии продукта:
# ./mirrorctl cfg --add --release=PLESK_12_0_18 --os=deb6.0_i386 --cfg-file=myconfig
-
Синхронизируйте зеркало:
# ./mirrorctl update --path=/var/www/html/mirror/ --cfg-file=myconfig
Пример 3: Скачивание определенной версии/ОС
Цель: скачать конкретную ОС для конкретной версии продукта на зеркало из официального репозитория, не скачивая остальные отображаемые на зеркале версии/ОС.
-
Создайте файл конфигурации, содержащий только те версии ОС/продукта, которые вы хотите скачать:
# ./mirrorctl cfg --add --release=PLESK_12_0_18 --os=cos5_i386 --cfg-file=./temp-config # ./mirrorctl cfg --add --release=PLESK_12_0_18 --os=cos5_x86_64 --cfg-file=./temp-config
-
Скачайте указанные ОС в существующий репозиторий с помощью команды push:
# ./mirrorctl push --path=/var/www/html/mirror/ --cfg-file==./temp-config
Пример 4: Создание зеркала для тестирования новых версий продукта
Цель: создать тестовое зеркало для новой версии продукта, протестировать эту версию и загрузить только эту протестированную версию (без последних официальных обновлений, которые вы еще не тестировали) в основной репозиторий.
-
Создайте тестовое зеркало для всех ОС новой версии продукта:
# ./mirrorctl cfg --add --release=PLESK_12_0_18 --os=all --cfg-file=./test-config # ./mirrorctl update --path=/var/www/html/test-mirror/ --cfg-file=./test-config
-
Протестируйте новую версию;
-
Загрузите всю версию продукта в основной репозиторий:
# ./mirrorctl push --src-host=/var/www/html/test-mirror/ --path=/var/www/html/mirror/ --cfg-file=./test-config
Предупреждение: Если опция --src-host
не используется, то новая версия продукта будет загружена из официального репозитория и может отличаться от той, которую вы только что тестировали.
Пример 5: Создание зеркала для тестирования выпусков продукта для новых ОС
Цель: создать тестовое зеркало со списком конкретных ОС для уже имеющихся на зеркале версий продукта с последними обновлениями, протестировать эти ОС, а затем загрузить некоторые из них в основной репозиторий.
-
Создайте тестовое зеркало, где будут доступны несколько ОС для выбранной версии продукта:
# ./mirrorctl cfg --add --release=PLESK_12_0_18 --os=cos5_i386 --cfg-file=./test-config # ./mirrorctl cfg --add --release=PLESK_12_0_18 --os=cos5_x86_64--cfg-file=./test-config # ./mirrorctl update --path=/var/www/html/test-mirror/ --cfg-file=./test-config
-
Получите список доступных выпусков продукта и ОС с тестового зеркала, созданного выше:
# ./mirrorctl show-all-releases --src-host=/var/www/html/test-mirror/ # ./mirrorctl os-list --release=PLESK_12_0_18 --src-host=/var/www/html/test-mirror/
-
Создайте новый файл конфигурации, содержащий только те выпуски и ОС с тестового зеркала, которые вы хотите добавить на основное зеркало:
# ./mirrorctl cfg --add --release=PLESK_12_0_18 --os=cos5_i386 --src-host=/var/www/html/test-mirror/ --cfg-file=push.xml
-
Проверьте созданный файл конфигурации на наличие выпусков/ОС в тестовом репозитории:
# ./mirrorctl cfg --check --src-host=/var/www/html/test-mirror/ --cfg-file=push.xml
-
Загрузите выбранные выпуски и ОС с тестового зеркала в основной репозиторий:
# ./mirrorctl push --src-host=/var/www/html/test-mirror/ --path=/var/www/html/mirror/ --cfg-file=push.xml
Предупреждение: Если опция --src-host
не используется, то новая версия продукта будет загружена из официального репозитория и может отличаться от той, которую вы только что тестировали.
Предупреждение: Если не указана опция --cfg-file
, будет использоваться конфигурационный файл по умолчанию BUILD/config.xml
(относительно папки, в которой находится инструмент). То есть только версии/ОС из этого конфигурационного файла будут загружены в основной репозиторий.
Предупреждение: Если неверно указана опция --cfg-file
, будет использоваться конфигурационный файл, указанный для команды push.