Здравствуйте.
В этой статье мы рассмотрим как создать локальную копию репозитория Astra Linux внутри своей организации, и как подключиться к ней по HTTP/FTP.
Исходные данные:
имя машины - pxe
ip-адрес - 192.168.50.9
Локальную копию нам будет делать утилита apt-mirror. Следовательно для ее установки выполняем команду.
sudo apt install apt-mirror
Все настройки утилиты находятся в конфигурационном файле по адресу /etc/apt/mirror.list.
В данном файле указывается путь хранения репозитория (по умолчанию /var/spool/apt-mirror), путь до скрипта выполнения задач после закачки (если требуется), количество потоков.
Ниже мы указываем какие репозитории нам нужно скачать. В данном примере мы закачиваем репозитории base и extended. Все репозитории, которые нам не нужны, комментируем.
Строка clean используется для удаления неиспользуемых файлов из репозитория (например, устаревших версий пакетов, отсутствующих в индексах). Ее также оставим, чтобы наш репозиторий был чистым.
Так же в руководствах астры рекомендуется назначить владельцем папки репозитория служебную учетную запись apt-mirror. Так как мы не меняли путь по умолчанию, команда выглядит следующим образом:
sudo chown apt-mirror:apt-mirror /var/spool/apt-mirror
Все. Останется только запустить скачку командой:
sudo -u apt-mirror apt-mirror
Система укажет сколько данных ей необходимо скачать и приступит к выполнению.
После успешного завершения задачи можно проверить что файлы скачались. Наш репозиторий готов, осталось его лишь опубликовать для общего доступа.
Доступ к репозиторию может быть как через общие папки (к примеру smb), так и через сетевые сервисы HTTP/FTP. Ниже рассмотрим как раз HTTP/FTP.
HTTP
Для доступа по HTTP нам необходимо установить веб-сервер. Мы установим Apache. Для этого выполним команду:
sudo apt install apache2
После установки нам нужно изменить одну настройку в конфигурационном файле /etc/apache2/apache2.conf, раскомментируем строку AstraMode On и изменим ее на AstraMode Off. После этого перезапустим сервис apache2.
sudo systemctl restart apache2
Следующим шагом мы создаем в стандартной папке веб-сайта папку для репозиториев:
sudo mkdir /var/www/html/repo
А для того, чтобы не занимать лишнее место, внутри этой папки делаем символические ссылки на наши репозитории.
sudo ln -s /var/spool/apt-mirror/mirror/download.astralinux.ru/astra/stable/1.7_x86-64/repository-base /var/www/html/repo/repository-base
sudo ln -s /var/spool/apt-mirror/mirror/download.astralinux.ru/astra/stable/1.7_x86-64/repository-extended /var/www/html/repo/repository-extended
Команда ln -s создает ссылку и имеет формат ln <опции> <откуда> <куда>. В примере выше это две команды выполняются в две строки.
Как мы видим ссылки создались и наш веб-сервер видит наши файлы репозиториев.
FTP
Для доступа по FTP-протоколу, мы будем ставить сервер vsftpd. Ставится также стандартно:
sudo apt install vsftpd
После установки внесем некоторые правки в конфигурационный файл /etc/vsftpd.conf:
listen=YES
listen_ipv6=NO
anonymous_enable=YES
Первая строка - включает прослушивание по IPv4. Вторая строка - выключает прослушивание по IPv6. Третья строка - разрешает анонимный доступ (мы включаем его для простоты доступа).
После изменения конфигурации так же перезапускаем сервис:
sudo systemctl restart vsftpd
И так же создаем папки для наших репозиториев.
sudo mkdir /srv/ftp/repo
sudo mkdir /srv/ftp/repo/{repository-base,repository-extended}
И либо качаем туда репозитории физически, либо так же делаем ссылки. vsftpd не очень любит работу с символическими ссылками. Поэтому нам на помощь придет команда mount --bind
sudo mount --bind /var/spool/apt-mirror/mirror/download.astralinux.ru/astra/stable/1.7_
x86-64/repository-base /srv/ftp/repo/repository-base
sudo mount --bind /var/spool/apt-mirror/mirror/download.astralinux.ru/astra/stable/1.7_
x86-64/repository-extended /srv/ftp/repo/repository-extended
Обратите внимание: команда mount после перезагрузки сбрасывается. Поэтому вам необходимо добавить ее в автозагрузку, или же поправить файл /etc/fstab. Будьте аккуратны! Неправильная правка этого файла может испортить загрузку системы.
Для правки fstab в нашем примере получается следующее:
/var/spool/apt-mirror/mirror/download.astralinux.ru/astra/stable/1.7_x86-64/repository-extended /srv/ftp/repo/repository-extended none nofail,bind 0 0
/var/spool/apt-mirror/mirror/download.astralinux.ru/astra/stable/1.7_x86-64/repository-base /srv/ftp/repo/repository-base none nofail,bind 0 0
параметр nofail стоит для того, чтобы если система не смогла найти указанный путь, она все равно загружалась дальше.
Проверить правильность монтирования можно командой (если она выполнилась без ошибок, все хорошо):
sudo mount -a
Все. Можем проверить что по фтп успешно видно наши репозитории
Осталось только подключить наши репозитории.
Открываем файл с репозиториями и добавляем наши:
sudo nano /etc/apt/sources.list
Либо специальной командой
sudo apt edit-sources
Для HTTP
deb http://192.168.50.9/repo/repository-base/ 1.7_x86-64 main contrib non-free
deb http://192.168.50.9/repo/repository-extended/ 1.7_x86-64 main contrib non-free
Для FTP
deb ftp://pxe/repo/repository-base/ 1.7_x86-64 main contrib non-free
deb ftp://pxe/repo/repository-extended/ 1.7_x86-64 main contrib non-free
Обратите внимание: Репозитории можно указывать как по ip-адресу, так и по имени компьютера, если существуют DNS-записи.
После правки репозиториев не забываем обновить информацию о них командой:
sudo apt update
На этом все. Мы подключили локальную копию своего репозитория.