Но есть и другой распространённый подход - создание мета-пакета, который включает в себя в виде зависимостей набор отдельных пакетов. В случае каких-то изменений в составе пакетов, вам не придётся менять составленный ранее список. Достаточно изменить сам мета-пакет, и сервера при стандартном обновлении установят недостающее.
В зависимости от ситуации, можно использовать тот или иной подход. У каждого есть как свои плюсы, так и минусы. Например, если список пакетов хранится в ansible и часто меняется, придётся постоянно обновлять список в переменной и пушить эти изменения в репозиторий. Если они несущественны и не требуют отдельного учёта, проще менять мета-пакет, не затрагивая код ролей или плейбуков. Например, если вы ведёте набор софта для настройки рабочей станции на Linux. Там будет масса всего для установки. Удобно всё это завернуть в один мета-пакет workstation и менять именно его.
Мета-пакеты во всю представлены в стандартных репозиториях. Самый популярный мета-пакет - linux-image-amd64, который обновляет ядро. Посмотреть его состав можно так:
# apt show linux-image-amd64.....Description: Linux for 64-bit PCs (meta-package).....Набор инструментов build-essential, оболочки gnome, xfce4, kde - это всё тоже мета-пакеты. Узнал о них совершенно случайно не так давно. Сколько лет настраиваю линуксы, всегда пакеты по одному ставил, храня списки в переменных.
Собрать свой мета-пакет очень просто. Покажу на примере мета пакета
deb-base с набором программ, которые я обычно ставлю на все сервера:# mkdir -p ~/deb-base/DEBIAN# nano ~/deb-base/DEBIAN/controlPackage: deb-baseVersion: 1.0Architecture: allMaintainer: Vladimir <root@serveradmin.ru>Depends: sudo, curl, wget, htop, rsync, unattended-upgrades, net-tools, lsof, iftopDescription: Base Debian server configuration# dpkg-deb --build deb-baseПолучил на выходе мета-пакет
deb-base.deb, у которого в зависимостях sudo, curl, wget, htop, rsync, unattended-upgrades, net-tools, lsof, iftop. При установке мета-пакета они все будут установлены:# apt install ./deb-base.debПричём эти пакеты устанавливаются по-отдельности, их можно как обычно посмотреть через
dpkg:# dpkg -l | grep iftopВ случае необходимости любой из установленных пакетов можно удалить как обычно через apt. Если изменить список пакетов и версию в файле
control, пересобрать мета-пакет и запустить:# apt upgrade ./deb-base.debТо в систему будет добавлено то, чего не хватает из зависимостей в мета-пакете. Если ты свои пакеты хранишь в локальном репозитории, то изменения приедут на целевые сервера с плановым обновлением.
Работают мета-пакеты просто и прозрачно, используя для создания встроенный в deb дистрибутивы менеджер пакетов dpkg. Есть и другие инструменты для этого, но этот проще всего.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX 😩
#linux
