apt-cacher-ng: принудительно установить клиент в локальном хранилище
В настоящее время я управляю дюжиной серверов. apt-cacher-ng
устанавливается на сервере разработки для поддержки пакетов.
Идея состоит в том, чтобы на производственных серверах были точно такие же версия и количество пакетов.
Сначала мы производим обновление / обновление на сервере dev, затем после проверки правильности установки (что может занять несколько часов или день) мы делаем то же самое на производственных серверах.
Проблема заключается в том, что между временем, когда мы производим обновление на dev и на производственном сервере, версии пакетов могли измениться, поэтому рабочие серверы не получат ту же версию пакетов.
Могу ли я заставить клиентов (производственные серверы) синхронизироваться с сервером dev, а не получать новые пакеты из Интернета?
Или есть какой-нибудь умный автоматизированный способ убедиться, что мои клиенты синхронизированы с сервером разработки?
Спасибо за прочтение.
РЕДАКТИРОВАТЬ:
Нашел эту ссылку: debian-administration.org: клонирование системы Debian - идентичные пакеты и версии.
Это частично решает мою проблему, но я все еще ищу ответ с apt-cacher-ng
или еще.
3 ответа
Вы пытались перевести службу acng в автономный режим?
После обновления сервера разработки добавьте offlinemode:1
в файл конфигурации acng и перезапустите сервер. Он по-прежнему может обслуживать кэшированный контент, но не сможет загружать новые пакеты через Интернет.
Я понимаю, что это старый вопрос, но вот способ, которым я решаю эту проблему.
Вы можете указать номера версий при звонке apt-get install
Вы делаете это так:
apt-get install apache2=2.2.20-1ubuntu1
который установит версию 2.2.20-1ubuntu1
из apache2
, Поэтому, когда вы настраиваете сервер разработки, убедитесь, что вы указали номер последней версии, что даст вам тот же результат, что и просто apt-get install x
, Но затем, когда вы перейдете к производству, укажите тот же номер версии (который будет храниться в вас ap-cacher-ng
сервер), чтобы установить эту точную версию, независимо от того, были ли выпущены новые версии.
Смотрите этот вопрос для более подробной информации.
Просто создайте конфигурацию предпочтений dev-dep-pin.conf
в/etc/apt/preferences.d
чтобы зафиксировать только пакет зависимостей, версия которого имеет значение (или нет смысла в автоматическом обновлении, верно?) как на сервере prod, так и на сервере разработки. Вы можете разумно использовать условия политики, чтобы создать схему закрепления, которая работает лучше всего.
scp
/rsync
этот файл между dev и prod сервером, прежде чем вам нужно будет синхронизировать пакеты между рабочим сервером и сервером dev через apt-update/apt-upgrade/apt-install.
Таким образом, вы позволяете производственному серверу свободно автоматически обновлять системные пакеты, сохраняя при этом версии важных пакетов в дереве зависимостей, настроенные точно так же, как сервер разработки.
Указание версии во время установки не может гарантировать, что пакет не изменится в будущих обновлениях/установках (в зависимости от другого пакета). Закрепление должно сделать его постоянным.