====== Настройка Rsync зеркал в отдельной папке на DSM 7.2 ====== {{:software:nas:rsync_mirror_dsm_1.png? |300}} Программы, которые можно установить с помощью Центра приложений или любого другого пакетного менеджера, хранятся в репозиториях. Репозитории представляют из себя обычное хранилище пакетов и специальных файлов, доступное через интернет. Поэтому у каждого репозитория есть свой адрес. Например, официальные основные репозитории Ubuntu находятся по адресу [[http://archive.ubuntu.com/ubuntu/|http://archive.ubuntu.com/ubuntu]]. =====Введение===== Ниже описываются шаги по созданию репозитория в отдельной папке при настроеном Web-сервере на Synology Nas в DSM 7.2, т.е. когда на страницах основного сайта представлены ссылки для загрузки на репозиторий зеркал, находящийся на этом же Web-сервере. =====Подготовка к работе===== Настройка Web-сервера и службы rsync описаны в статье [[software:nas:configure_rsync_mirror|Настройка Rsync зеркал репозиториев на DSM 7.2]]. Поэтому повторятся не будем, а перейдем к созданию папок, настройке **службы rsync**, созданию **скриптов** и **планировщику задач** на Synology Nas в DSM 7.2 ====Рабочая станция==== * Устанавливаем [[software:nas:putty|Putty]] - клиентскую программу для работы с сетевым протоколом SSH, SFTP и генерации цифровых SSH-ключей, которая является свободным приложением с открытым исходным кодом и распространяется под [[https://ru.wikipedia.org/wiki/%D0%9B%D0%B8%D1%86%D0%B5%D0%BD%D0%B7%D0%B8%D1%8F_MIT|Open Source лицензией MIT]]. * Устанавливаем редактор [[https://notepad-plus-plus.org/|Notepad++]] - бесплатный текстовой редактор исходного кода. Работая в среде MS Windows, его использование регулируется [[https://ru.wikipedia.org/wiki/GNU_General_Public_License|GNU General Public License]]. ==== Создание папок ==== Создадим в корне сайта папку для нашего репозитория, в примере папка будет называться **repo**. В ней будут распологаться папки зеркал и скрытую папку для скриптов, в примере папка будет называться **.scripts**. {{:software:nas:nas_repo_rsync_new_folder_1.png?|}} ===Файл .htaccess=== В Notepad++ на локальной машине создадим файл **.htaccess** — это локальный конфигурационный файл веб-сервера Apache, который позволяет управлять настройками сайта, с содержанием одной единственной строки Options +Indexes {{:software:nas:rsync_mirror_dsm_18.png?|}} и сохраняем как, указываем имя:.htaccess и тип файла:"все файлы". {{:software:nas:rsync_mirror_dsm_19.png?|}} Перетаскиваем файл .htaccess в окно программы File Station {{:software:nas:rsync_mirror_dsm_20.png?|}} В браузере вводим IP адрес нашего сервера и убеждаемся, что индексация папок работает. {{:software:nas:rsync_mirror_dsm_21.png?|}} **Примечание** Без файла .htaccess Synology запрещает доступ к странице без файла index.html, index.php и т.д. и необходимо редактировать конфигурационный файл пакета Apache HTTP Server 2.4, что требует определенных навыков в работе с Synology. Файл .htaccess можно создать средствами пакета Synology Office, который установит нам кучу не нужных для зеркала пакетов, а после все не нужное удалить. {{:software:nas:rsync_mirror_dsm_22.png?|}} ====Настройка Роутера==== Выполняем на роуторе переадресацию портов **873** для **rsync** и **22** для **SSH** на наш Nas Synology {{:software:nas:rsync_mirror_dsm_44.png?|}} ==== Настройка службы rsync ==== Подключимся к Synology Nas [[software:nas:putty|Putty]] - клиентскую программу для работы с сетевым протоколом SSH и перейдем в каталог etc. cd /etc {{:software:nas:nas_repo_rsync_new_folder_2.png?|}} Откроем в редакторе файл конфигурации **rsyncd.conf** {{:software:nas:nas_repo_rsync_new_folder_3.png?|}} sudo vi rsyncd.conf и заменим содержимое на uid = nobody gid = nobody use chroot = yes max connections = 4 syslog facility = local5 pid file = /var/run/rsyncd.pid [rsync] path = /volume1/web/repo comment = Shared folder list = yes {{:software:nas:nas_repo_rsync_new_folder_4.png?|}} **ESC :wq** для сохранения и выхода из редактора vi {{:software:nas:nas_repo_rsync_new_folder_5.png?|}} ====Создание скриптов==== В папке **.scripts** создадим файл скрипта загрузки **mirror_ubuntu.sh** и файл исключения при зеркалировании **mirror_ubuntu_list.txt** {{:software:nas:nas_repo_rsync_new_folder_6.png?|}} в файле скрипта пропишем следующее #!/bin/bash -x rsync -avr --exclude-from='/volume1/web/.scripts/mirror_ubuntu_list.txt' rsync://archive.ubuntu.com/ubuntu/ /volume1/web/repo/ubuntu/ **rsync** - загрузить зеркало с адреса **%%rsync://archive.ubuntu.com/ubuntu/%%** в каталог **%%/volume1/web/repo/ubuntu/%%** исключив указанное в файле **%%/volume1/web/repo/.scripts/mirror_ubuntu_list.txt%%** {{:software:nas:nas_repo_rsync_new_folder_7.png?|}} в файле **mirror_ubuntu_list.txt** укажем директории архива Ubuntu которые планируем исключить
«См.вариант исключения»:!: оставим для зеркалирования только свежие релизы Ubuntu focal, jammy и noble. Остальные исключим за ненадобностью и экономией места на диске dists/bionic-backports/ dists/bionic-proposed/ dists/bionic-security/ dists/bionic-updates/ dists/bionic/ dists/devel-backports/ dists/devel-proposed/ dists/devel-security/ dists/devel-updates/ dists/devel/ dists/oracular-backports/ dists/oracular-proposed/ dists/oracular-security/ dists/oracular-updates/ dists/oracular/ dists/plucky-backports/ dists/plucky-proposed/ dists/plucky-security/ dists/plucky-updates/ dists/plucky/ dists/trusty-backports/ dists/trusty-proposed/ dists/trusty-security/ dists/trusty-updates/ dists/trusty/ dists/xenial-backports/ dists/xenial-proposed/ dists/xenial-security/ dists/xenial-updates/ dists/xenial/ ubuntu/
{{:software:nas:nas_repo_rsync_new_folder_8.png?|}} Изменим рекурсивно права на папки sudo chown -R VladPolskiy:root /volume1/web/repo sudo chmod -R 755 /volume1/web/repo {{:software:nas:nas_repo_rsync_new_folder_16.png?|}} ====Настройка Планеровщика задач==== В панели управления в разделе Планировщик задач создадим Запланированную задачу в виде Скрипта, заданного пользователем {{:software:nas:nas_repo_rsync_new_folder_9.png?|}} Во вкладке общие понятное для нас Имя задачи (примером mirror_ubuntu.sh), пользователь root {{:software:nas:nas_repo_rsync_new_folder_10.png?|}} Во вкладке расписание Выполнить в сегодняшнее число, время запуска через несколько минут от текущего времени (не забываем сверить наше время и времы и часовой пояс на Synology NAS) для проверки работы автоматизации. {{:software:nas:nas_repo_rsync_new_folder_11.png?|}} На вкладке Настройки задачи Указываем отправлять сведения о запуски и свой адрес электронной почты, для получения отчетов и в окне Выполнить каманду вставляем следующую команду на запуск нашего скрипта bash /volume1/web/.scripts/mirror_ubuntu.sh {{:software:nas:nas_repo_rsync_new_folder_12.png?|}} Ок, соглашаемся с возможными последствиями {{:software:nas:nas_repo_rsync_new_folder_13.png?|}} Подтверждаем вводом пароля Администратора {{:software:nas:nas_repo_rsync_new_folder_14.png?|}} если все вышеописанное выполнено по инструкции, в назначенное время (в примере в 19:00) должен запуститься скрипт mirror_ubuntu.sh {{:software:nas:nas_repo_rsync_new_folder_15.png?|}} Заходим в директорю web/repo в File Station для проверки работы нашего скрипта {{:software:nas:nas_repo_rsync_new_folder_18.png?|}} Выставляем необходимый день и время обновления нашего репозитория в Планеровщике Задач и проверим отображение репозитория в браузере {{:software:nas:nas_repo_rsync_ubuntu_releases_11.png?|}} =====Дополнения и Файлы===== * [[software:nas:configure_rsync_mirror|См. Настройка Rsync зеркал репозиториев на DSM 7.2]] * {{ :software:nas:example_mirror_ubuntu.rar | Файлы папок и скриптов из данного руководства}} * [[github>]]https://git.wwoss.ru/VladPolskiy/Setting_Rsync_DSM_7.2