В этой статье мы покажем, как быстро поднять свой 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
