дата публикации 04.02.2019
Создание зеркала apt-mirror для proxmox
При добавлении новых нод proxmox в кластер ceph важно иметь одинаковую версию всех пакетов. В этом нам поможет создание собственного зеркала обновлений apt-mirror.
Добавляем контейнер или виртуальную машину debian 9. Установим пакет apt-mirror
apt install apt-mirror
Делаем копию установочного конфига и создаем новый конфиг с таким содержимым:
# mv /etc/apt/mirror.list /etc/apt/mirror.list.back
# nano /etc/apt/mirror.list
set base_path /media/data/proxmox-repo # путь к папке с репой
set defaultarch amd64 # архитектура репозитория
set nthreads 20 # системные значения
set _tilde 0
# репозитории, которые надо зеркалить
deb http://ftp.ru.debian.org/debian stretch main contrib
deb http://ftp.ru.debian.org/debian stretch-updates main contrib
deb http://security.debian.org stretch/updates main contrib
deb http://download.proxmox.com/debian stretch pve-no-subscription
deb http://repo.zabbix.com/zabbix/3.0/debian stretch main
deb-src http://repo.zabbix.com/zabbix/3.0/debian stretch main
deb http://download.proxmox.com/debian/ceph-luminous stretch main
# удалять устаревшие версии пакетов
clean http://download.proxmox.com/debian
clean http://ftp.ru.debian.org/debian
clean http://security.debian.org
clean http://repo.zabbix.com/zabbix/3.0/debian
clean http://download.proxmox.com/debian/ceph-luminous
В моем случае помимо основных пакетов proxmox присутствует репозиторий для zabbix. Размер созданной репы будет в районе 100Gb.
Создаем необходимые для работы папки и обновляем зеркало:
mkdir /media/data
mkdir /media/data/proxmox-repo
mkdir /media/data/proxmox-repo/var
mkdir /media/data/proxmox-repo/mirror
mkdir /media/data/proxmox-repo/skel
apt-mirror
На несколько часов можно оставить это дело в покое. Открываем еще одно терминала и продолжаем настройку.
Установим apache2
apt install apache2
В результате выполнения команды apt-mirror по пути /media/data/proxmox-repo/mirror/ появятся зеркалированные объекты, у меня это выглядит вот так:
# ls -l
download.proxmox.com
ftp.ru.debian.org
repo.zabbix.com
security.debian.org
Для публикации зеркала создадим линки из папки /var/www/html/
ln -s /media/data/proxmox-repo/mirror/download.proxmox.com /var/www/download.proxmox.com
ln -s /media/data/proxmox-repo/mirror/security.debian.org /var/www/security.debian.org
ln -s /media/data/proxmox-repo/mirror/ftp.ru.debian.org /var/www/ftp.ru.debian.org
ln -s /media/data/proxmox-repo/mirror/repo.zabbix.com /var/www/html/repo.zabbix.com
На обновляемых хостах proxmox необходимо заменить все репозитории в /etc/apt/. Должно получиться примерно так:
# старое значение
#deb http://ftp.ru.debian.org/debian stretch main contrib
# новое значение
deb http://ip-адрес-или-доменное-имя/ftp.ru.debian.org/debian stretch main contrib
И так для каждого зеркалированного репозитория.
И последнее действие. Чтоб при обновлении избежать ошибки Release file for is expired создаем файл с таким содержимым на каждой ноде:
nano /etc/apt/apt.conf.d/10no--check-valid-until
Acquire::Check-Valid-Until "0";