В этой статье мы покажем, как быстро поднять свой deb репозиторий с помощью aptly и добавить в него необходимые пакеты (в этом примере мы сделаем собственный репозиторий для пакетов ELK).
Подключитесь к Debian хосту, где вы хотите запустить локальный репозиторий. Установите пакет aptly:
# apt install aptly
Создайте конфиг файл /etc/aptly.conf (используется JSON формат). Можно использовать дефолтную конфигурацию, в которой нужно поправить только путь rootDir и имя FileSystemPublishEndpoints:
{ "rootDir": "/mnt/repo", "downloadConcurrency": 4, "downloadSpeedLimit": 0, "architectures": [], "dependencyFollowSuggests": false, "dependencyFollowRecommends": false, "dependencyFollowAllVariants": false, "dependencyFollowSource": false, "dependencyVerboseResolve": false, "gpgDisableSign": false, "gpgDisableVerify": false, "gpgProvider": "gpg", "downloadSourcePackages": false, "skipLegacyPool": true, "ppaDistributorID": "elk", "ppaCodename": "", "FileSystemPublishEndpoints": { "elkrepo": { "rootDir": "/var/www/aptly", "linkMethod": "symlink", "verifyMethod": "md5" } }, "enableMetricsEndpoint": false }
Создаём директории:
# mkdir -p /mnt/repo /var/www/aptly
В этом примере мы создадим репозиторий для Debian 11 Bullseye.
# aptly repo create -distribution="bullseye" elk
Теперь скачайте deb пакет, который вы хотите добавить в ваш репозиторий. В нашем примере я это будет пакет filebeat-8.4.3-amd64.deb, который я скачал с сайта Elastic (https://www.elastic.co/downloads/beats/filebeat).
# wget -q --show-progress https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-8.4.3-amd64.deb
Скопируйте deb пакет на сервер и добавьте его в репозиторий:
# aptly repo add elk ~/filebeat-8.4.3-amd64.deb
Создайте GPG ключ для репозитория:
# gpg --default-new-key-algo rsa4096 --gen-key --keyring pubring
Real name: elkrepo
Опубликуйте репозиторий с этим ключом:
# aptly publish repo elk
Можно сразу выгрузить публичный ключ:
# gpg --export --armor > /mnt/repo/public/elkrepo.asc
Теперь вам нужно запустить на хосте любой веб сервер и настроить через него доступ к директории /var/www/aptly. Можно использовать в качестве веб сервера сам aptly (по умолчанию слушает на порту 8080):
# aptly serve
Aptly сам создаст и опубликует директорию /mnt/repo/public. Запустите на любом компьютере браузером и подключитесь к серверу браузером на порт 8080. Просмотрите содержимое репозитория вместе с gpg ключом.
Осталось подключить ваш локальный репозиторий на клиентах. Создайте файл /etc/apt/sources.list.d/elk_repo.list:
deb http://192.168.55.20:8080 bullseye main
Обновите пакеты и теперь можете установить filebeat из вашего репозитория:
# apt update && apt install filebeat