Причины использовать локальный репозиторий
Локальный репозиторий может уменьшить нагрузку на сеть. Так как обновления скачиваются всего один раз во время синхронизации локального репозитория с официальным. А остальные сервера обновляются по локальной сети.
Также локальное зеркало обеспечит идентичность пакетов на всех серверах. Например, мы можем обновить тестовый сервер, в течении нескольких дней проверить его работу. И если все нормально, следующем шагом можем обновлять боевые сервера. При этом официальные репозитории за эти дни успеют поменять версии пакетов, но наш репозиторий останется без изменения.
Установка и настройка apt-mirror
На debian и ubuntu apt-mirror устанавливается легко из официальных репозиториев:
# apt install apt-mirror
Основной конфигурационный файл – /etc/apt/mirror.list. Например нам нужно создать зеркало репозитория для proxmox ps и proxmox ve. Указываем нужные репозитории и комментирует ненужные, все остальное можно оставить по умолчанию:
# nano /etc/apt/mirror.list
#deb http://ftp.us.debian.org/debian unstable main contrib non-free
#deb-src http://ftp.us.debian.org/debian unstable main contrib non-free
deb [arch=amd64] http://download.proxmox.com/debian/pve buster pve-no-subscription
deb http://download.proxmox.com/debian/pbs buster pbs-no-subscription
Давайте разберем другие настройки в конфигурационном файле:
set base_path
– путь к основному каталогу репозитория;set mirror_path
– здесь будут складываться скаченные пакеты;set skel_path
– место для временно скачиваемых индексов;set var_path
– здесь размещены файлы журналов, url-адреса и контрольные суммы MD5. А также скрипты clean.sh, postmirror.sh;set cleanscript
– скрипт очистки, по умолчанию пустой, его ещё нужно написать;set defaultarch
– архитектура по умолчанию (i386 или x86_64)set postmirror_script
– скрипт постобработки, по умолчанию пустой;set run_postmirror
– запускать ли скрипт постобработки (0 – не запускать, 1 – запускать);set nthreads
– количество потоков при скачивании (по умолчанию 20);set _tilde
– чтобы разрешить правильную загрузку зеркал с тильдой в URL-адресе или имени пакета установите – 1, по умолчанию – 0.
Чтобы создать репозиторий выполним:
# apt-mirror
Вы увидите объём репозитория и он начнёт закачиваться к вам на сервер!
После закачки можем проверить что у нас закачалось. Для начала посмотрим на дерево скаченных каталогов:
# tree -d /var/spool/apt-mirror/
/var/spool/apt-mirror/
├── mirror
│ └── download.proxmox.com
│ └── debian
│ ├── pbs
│ │ └── dists
│ │ └── buster
│ │ └── pbs-no-subscription
│ │ └── binary-amd64
│ └── pve
│ └── dists
│ └── buster
│ └── pve-no-subscription
│ └── binary-amd64
├── skel
│ └── download.proxmox.com
│ └── debian
│ ├── pbs
│ │ └── dists
│ │ └── buster
│ │ └── pbs-no-subscription
│ │ └── binary-amd64
│ └── pve
│ └── dists
│ └── buster
│ └── pve-no-subscription
│ └── binary-amd64
└── var
И посмотрим на размер загруженных зеркал:
# du -sh /var/spool/apt-mirror/mirror/download.proxmox.com/debian/*
9.1G /var/spool/apt-mirror/mirror/download.proxmox.com/debian/pbs
11G /var/spool/apt-mirror/mirror/download.proxmox.com/debian/pve
Установка и настройка nginx
Опубликовать репозиторий можно с помощью веб сервера apache2 или naginx. Я для этой цели использовал nginx.
Для начала установим этот веб сервер:
# apt install nginx
После установки настроим, а именно укажем корневой путь “/var/spool/apt-mirror/mirror/download.proxmox.com/debian/” и в блок “location /” добавим опцию “autoindex on”
# nano /etc/nginx/sites-enabled/default
root /var/spool/apt-mirror/mirror/download.proxmox.com/debian/;
location / {
try_files $uri $uri/ =404;
autoindex on;
Теперь перезапустим nginx:
# service nginx restart
И можем зайти в репозиторий с помощью web браузера:
Осталось только настроить сервера PVE и PBS, чтобы они обновлялись не с официального репозитория, а с локального зеркала. Для этого в sources.list на этих северах напишем следующее:
# nano /etc/apt/sources.list.d/pve-no-subscription.list
deb [arch=amd64] http://xxx.xx.xx.xx/pve buster pve-no-subscription
# nano /etc/apt/sources.list.d/pbs-no-subscription.list
deb [arch=amd64] http://xxx.xx.xx.xx/pbs buster pbs-no-subscription
Спасибо за внимание!
Источник: https://sysadminium.ru/linux_apt-mirror_nginx_lokalnyj_repozitorij/
Was this helpful?
0 / 0