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

В ситуации, когато управлявате множество машини, Apt може да бъде много полезен, тъй като прави процеса на актуализиране и прилагане на корекции за сигурност за всяка машина много прост. Проблемът е, че при традиционния метод, след като излезе актуализация, трябва да изтеглите копие на всички нови пакети за всяка от машините, което предполага феноменално потребление на нашата честотна лента и честотна лента. За щастие има метод което ни позволява да актуализираме една от машините и оттам да актуализираме останалите машини, които изграждат нашата мрежа. Този метод, освен че намалява разходите и оптимизира използването на нашата честотна лента, избягва дублирането на пакети на различните машини: всички те инсталират пакетите, използвайки нашия „кеш сървър“.


Когато използвате една и съща дистрибуция на различни машини (независимо дали на работа, в компютърни лаборатории, в сървърни „ферми“, в клъстери или дори във вашата малка домашна мрежа), може да е полезно да създадете хранилище на кеш във вашата мрежа така че след като пакетът бъде изтеглен от официално хранилище, всички други машини го изтеглят от това хранилище на кеш, което се съхранява на машина във вашата мрежа, която ние ще наречем "сървър". По този начин актуализациите, изтеглени от една машина, могат да бъдат инсталирани на останалите, без да се налага да ги изтегляте повторно от официалните хранилища.

Нека първо разгледаме някои „нетрадиционни“ решения, които НЕ препоръчвам, но със сигурност ще дойдат на ум при решаването на този въпрос.

Споделяне / etc / apt

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

Преместване на пакети

Вместо да споделят обща директория „/ etc / apt“, друга алтернатива може да бъде, че всеки компютър използва своя собствена директория за локален кеш, но генерира скрипт, който се грижи за копиране на пакетите от една машина на друга, така че всички те да останат актуализирани. Инструмент за изпълнение на тази задача може да бъде „apt-move“, но честно казано не го препоръчвам, защото не е достатъчно прозрачен за крайния потребител. В допълнение, това може да означава напълно ненужно използване на дисково пространство, тъй като всички пакети ще трябва да бъдат копирани на всяка от машините.

Специализирани кеш системи

Най-доброто решение на този проблем е да се използва специална кеш система. Накратко, става въпрос за създаване на копие на официалните сървъри на една от машините във вашата мрежа и след това конфигуриране на останалите машини, така че вместо да търсят актуализации от официалните сървъри, те да го правят, използвайки това локален кеш (или копие).

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

Тук ще се справим с apt-cacher, който е най-лесен за използване.

apt-cacher

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 create_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. Не забравяйте, че „име на сървър“ трябва да бъде заменено с IP на машината, която сте определили като „сървър“, т.е. като депозитар на локалния кеш за пакети.

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

Сега всичко, което трябва да направите, е да модифицирате Source.list на клиентите, така че те да преминат през сървъра. Ако IP на сървъра е 123.123.123.123, трябва да го добавите към всеки ред на източника.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 # Modified deb http://123.123.123.123/apt-cacher/ftp.us.debian.org/debian/ sid основен принос несвободен deb-src http://123.123.123.123/apt-cacher/ftp.us.debian. org / debian / sid основен принос несвободен

Както можете да видите, трябва да добавите 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.   sepulvedamarcos каза той

    въпрос ....

    ако имам няколко машини със същия дистрибутор ... но не и със същите програми .... Откъде знаете какво да изтеглите от официалните репозитории ... понижава всичко ??? ...

  7.   Нека използваме Linux каза той

    Въпросът ви е отличен. Изчислявам, че системата трябва да работи по същия начин, както в обикновен Apt: ако не я намери в кеша, тя я изтегля от официалните хранилища. В този случай една от „клиентските“ машини информира „сървъра“, че се нуждае от актуализация според списъка с актуализации на „сървъра“ на вашата мрежа. За да инсталирам тази актуализация, изчислявам, че първо ще търси пакета в кеша на сървъра. Ако не може да го намери, той го изтегля от официалните хранилища, записва го на сървъра и оттам се инсталира на машината, която го е изисквала. Този пакет ще бъде достъпен в кеша на "сървъра", така че други машини във вашата мрежа да могат да го инсталират и от там.

    Моля, не се колебайте да пишете, ако не бях достатъчно ясен.

    Прегръдка! Павел.

  8.   Мишударк каза той

    Мисля, че има ГРЕШКА ... пакетите не се съхраняват в / etc / apt…. те всъщност остават в / var / cache / apt / archives

  9.   Нека използваме Linux каза той

    Истината е, че не знам.
    Със сигурност има начин да го направя. 🙁
    Ако разберете, уведомете ме и ще го добавя.
    Наздраве! Павел.

  10.   Алваро каза той

    Нищо с динамичните ip, нали?

  11.   Марс каза той

    Очевидно в по-актуалните дистрибуции трябва да добавите порта (3142 по подразбиране) към URL адреса на локалната мрежа. Изглежда така: http://mi_servidor:3142/apt-cacher

  12.   Алфредо Тореалба каза той

    Имам lubuntu 16.04, който го е направил при тази система и дали е работила за него? И това, което исках да попитам, е следното, ако инсталирам този сървър и другите ми машини нямат същите програми, когато отправят заявка на моите клиентски машини за инсталиране на програма, която имам на сървъра, мислите ли, че инсталирам директно от локалния сървър или заявката към официалния сървър на хранилището ¿?