Как поддерживать в актуальном состоянии несколько машин одновременно

В ситуациях, когда вы управляете несколькими машинами, Apt может быть очень полезным, поскольку он упрощает процесс обновления и применения исправлений безопасности для каждой машины. Проблема в том, что при использовании традиционного метода после выхода обновления вам необходимо загрузить копии всех новых пакетов для каждой из машин, что подразумевает феноменальное потребление нашей полосы пропускания и пропускной способности. с официального сервера. К счастью, есть метод, который позволяет нам обновить одну из машин, а оттуда обновить остальные машины, составляющие нашу сеть. Этот метод, помимо снижения затрат и оптимизации использования полосы пропускания, позволяет избежать дублирования пакетов на разных машинах: все они устанавливают пакеты, используя наш «кэш-сервер».


Когда вы запускаете один и тот же дистрибутив на разных машинах (будь то на работе, в компьютерных лабораториях, на «фермах» серверов, в кластерах или даже в вашей небольшой домашней сети), может быть полезно создать репозиторий кеша в вашей сети. так что после загрузки пакета из официального репозитория все другие машины загружают его из этого кеш-репозитория, который хранится на машине в вашей сети, которую мы будем называть «сервером». Таким образом, обновления, загруженные с одного компьютера, можно установить на другом без необходимости повторно загружать их из официальных репозиториев.

Давайте сначала рассмотрим некоторые «нетрадиционные» решения, которые я НЕ рекомендую, но которые обязательно придут в голову при решении этого вопроса.

Поделиться / etc / apt

Когда вы устанавливаете пакет в дистрибутив Debian (или его производные), он сохраняется локально в каталоге '/ etc / apt'. Когда требуется пакет, Apt сначала просматривает этот каталог, чтобы увидеть, есть ли локальная копия (то есть кеш), что позволяет избежать ненужной загрузки. В результате некоторые из вас наверняка подумали, что хорошим способом решения рассматриваемой проблемы может быть выбор компьютера, который мы обозначим как своего рода сервер, который будет обновляться с использованием официальных репозиториев и который будет поделитесь своим каталогом '/ etc / apt' с остальными машинами в сети. Однако этот метод может привести к проблемам, связанным с блокировкой файла sources.list. В общем, это не самое распространенное и не самое удобное решение.

Переместить пакеты

Вместо совместного использования общего каталога '/ etc / apt' другой альтернативой может быть использование каждым компьютером собственного локального каталога кэша, но создание сценария, который позаботится о копировании пакетов с одного компьютера на другой, чтобы все они оставались обновлено. Инструмент для выполнения этой задачи может быть подходящим, но я, честно говоря, не рекомендую его, поскольку он недостаточно прозрачен для конечного пользователя. Кроме того, это может означать совершенно ненужное использование дискового пространства, поскольку все пакеты придется скопировать на каждую из машин.

Выделенные системы кеширования

Лучшее решение этой проблемы - использовать выделенную систему кеширования. Короче говоря, речь идет о создании копии официальных серверов на одной из машин в вашей сети, а затем настройке остальных машин так, чтобы вместо поиска обновлений с официальных серверов они делали это с помощью этого локальный кеш (или копия).

Существует множество систем, предназначенных для работы с Apt, включая apt-cacher, apt-proxy и apt-cached.

Здесь мы будем иметь дело с apt-cacher, который является наиболее простым в использовании.

Apt-кэшер

Apt-cacher сильно отличается от других систем кэширования репозиториев, поскольку это не отдельная программа, а запускается как сценарий CGI под Apache. Это дает несколько преимуществ, например, делает его небольшим и простым инструментом, но в то же время очень мощным и, следовательно, более надежным, поскольку он не требует собственного кода для обработки протоколов, и он очень гибкий, поскольку вы можете использовать Механизм контроля доступа Apache на случай, если вы хотите ограничить количество машин, которым разрешен доступ к кешу.

Apt-cacher необходимо установить только на одном компьютере, который, по вашему мнению, должен работать как кеш вашего локального репозитория. Затем остальные компьютеры в вашей сети должны быть настроены для запроса обновлений из кеша, а не с официальных серверов.

Настройка сервера

Для установки просто

sudo apt-get установить apt-cacher

Этот пакет имеет зависимости с apache, perl и wget, поэтому он установит их, если он у вас не был установлен ранее.

После установки рекомендуется перезапустить Apache:

/etc/init.d/apache перезапуск

Наконец, все, что вам нужно сделать, это настроить параметры скрипта по умолчанию. Я написал в терминале:

sudo gedit /etc/apt-cacher/apt-cacher.conf

В общем, все настройки по умолчанию в порядке, но рекомендуется изменить следующие три:

admin_email = mimail @ myserver generate_reports = 1 expire_hours = 24

Второй элемент - это логическая переменная, которая определяет создание отчетов (0 не создает отчеты, 1 создает их). Первый элемент - это адрес электронной почты, на который будут отправляться созданные отчеты. Третий и последний пункт определяет количество часов, в течение которых Apt должен ждать, чтобы проверить наличие обновлений на официальных серверах.

Если вы используете прокси, не забудьте добавить следующие элементы:

http_proxy = proxy.example.com: 8080 use_proxy = 1

Чтобы убедиться, что он работает, вы можете получить доступ к своему локальному кешу через URL-адрес http: // server_name / apt-cacher /, и появится страница с конфигурацией apt-cacher. Помните, что «server_name» должен быть заменен IP-адресом машины, которую вы обозначили как «сервер», то есть как хранилище локального кэша пакетов.

Конфигурация клиентов

Теперь все, что вам нужно сделать, это изменить sources.list клиентов так, чтобы они проходили через сервер. Если IP-адрес сервера 123.123.123.123, вы должны добавить его в каждую строку sources.list, а также будьте осторожны, чтобы все они ссылались на один и тот же сервер, иначе кеш не будет иметь никакого эффекта.

sudo gedit /etc/apt/sources.list
Примечание. Осторожно! В Debian и его производных «sources.list» хранится в «/ etc / apt». Однако в других дистрибутивах он может храниться по другому пути. Если вы не можете найти файл, вы всегда можете найти его, введя «locate sources.list» в терминал.

После открытия файла с IP-адресом нашего сервера 123.123.123.123 все строки должны быть изменены с использованием следующих критериев:

# Исходный #deb http://ftp.us.debian.org/debian/ sid main contrib non-free # deb-src http://ftp.us.debian.org/debian/ sid main contrib non-free # Изменен deb http://123.123.123.123/apt-cacher/ftp.us.debian.org/debian/ sid main contrib non-free deb-src http://123.123.123.123/apt-cacher/ftp.us.debian. org / debian / sid main contrib non-free

Как видите, вам нужно добавить IP-адрес сервера + '/ apt-cacher /' в начале URL-адреса. Затем идет оставшаяся часть исходной строки.

Статистика трафика

Если вы добавили элемент «generate_reports = 1» в файл «apt-cacher.conf», apt-cacher сгенерирует статистику доступа, к которой вы можете получить доступ по URL-адресу «/ apt-cacher / report».

Если по какой-либо причине вам необходимо сгенерировать статистику до количества часов, установленного в 'apt-cacher.conf', выполните следующую команду:

/usr/share/apt-cacher/apt-cacher-report.pl

Оставьте свой комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

  1. Ответственный за данные: Мигель Анхель Гатон
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.

  1.   Эдуардо сказал

    Приветствую вас, отличный вклад, мой вопрос в том, знаете ли вы какое-либо приложение, которое позволяет вам иметь централизованный репозиторий для применения исправлений, но к разным дистрибутивам, то есть поддерживать несколько компьютеров в одно и то же время, но с разными дистрибутивами

  2.   Давайте использовать Linux сказал

    Привет, Эдуардо! Правда в том, что мне это очень сложно. Если вы обнаружите какой-либо способ, не переставайте сообщать мне.
    Большое объятие! Ура! Павел.

  3.   скупой сказал

    Я использую марионетку для удаленного управления серверами, которыми я управляю.

  4.   Давайте использовать Linux сказал

    Да, большое спасибо за информацию. Я это уже поправил.
    Объятие! Павел.

  5.   Гениутриксон сказал

    Привет,

    руководство супер хорошее ... у меня есть область действия .. в Debian Lenny source.lst находится по пути / etc / apt /

    привет

  6.   Сепульведамаркос сказал

    вопрос….

    если у меня есть пара машин с одним и тем же дистрибутивом… но не с одинаковыми программами…. Как узнать, что скачать из официальных репозиториев…. все опускает ??? ...

  7.   Давайте использовать Linux сказал

    Ваш вопрос отличный. Подсчитал, что система должна работать так же, как в обычном Apt: если не находит в кеше, то скачивает из официальных репозиториев. В этом случае одна из «клиентских» машин сообщает «серверу», что ему необходимо обновление, в соответствии со списком обновлений на «сервере» вашей сети. Я рассчитываю, что для установки этого обновления оно сначала будет искать пакет в кеше сервера. Если он не может найти его, он загружает его из официальных репозиториев, сохраняет на сервере, а оттуда устанавливается на машину, которая в нем нуждается. Этот пакет будет доступен в "серверном" кэше, чтобы другие машины в вашей сети также могли установить его оттуда.

    Пожалуйста, не стесняйтесь писать, если я был недостаточно ясен.

    Объятья! Павел.

  8.   Мишударк сказал

    Я думаю, что это ОШИБКА… пакеты не хранятся в / etc / apt…. они фактически остаются в / var / cache / apt / archives

  9.   Давайте использовать Linux сказал

    По правде говоря, я не знаю.
    Конечно, есть способ сделать это. 🙁
    Если узнаешь, дай мне знать, и я добавлю.
    Ура! Павел.

  10.   Альваро сказал

    Ничего подобного с динамическими IP, да?

  11.   Marce сказал

    По-видимому, в более современных дистрибутивах вам нужно добавить порт (по умолчанию 3142) к URL-адресу локальной сети. Это выглядело бы так: http://mi_servidor:3142/apt-cacher

  12.   Альфредо Торреальба сказал

    У меня есть lubuntu 16.04, кто делал это в этой системе и сработало ли у него? И я хотел спросить следующее: если я устанавливаю этот сервер, а на других моих машинах нет таких же программ, когда я делаю запрос на мои клиентские машины для установки программы, которая у меня есть на сервере, как вы думаете, я устанавливаю ее непосредственно с локального сервера или запрос к серверу официального репозитория ¿?