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.

Таким образом, вы позволяете производственному серверу свободно автоматически обновлять системные пакеты, сохраняя при этом версии важных пакетов в дереве зависимостей, настроенные точно так же, как сервер разработки.

Указание версии во время установки не может гарантировать, что пакет не изменится в будущих обновлениях/установках (в зависимости от другого пакета). Закрепление должно сделать его постоянным.

Другие вопросы по тегам