Найти в Дзене

Локальная копия репозитория Astra Linux

Здравствуйте.
В этой статье мы рассмотрим как создать локальную копию репозитория 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 используется для удаления неиспользуемых файлов из репозитория (например, устаревших версий пакетов, отсутствующих в индексах). Ее также оставим, чтобы наш репозиторий был чистым. Так же в руководствах астр
Оглавление

Здравствуйте.
В этой статье мы рассмотрим как создать локальную копию репозитория Astra Linux внутри своей организации, и как подключиться к ней по HTTP/FTP.

Исходные данные:

имя машины - pxe
ip-адрес - 192.168.50.9

Локальную копию нам будет делать утилита apt-mirror. Следовательно для ее установки выполняем команду.

sudo apt install apt-mirror

Все настройки утилиты находятся в конфигурационном файле по адресу /etc/apt/mirror.list.

-2

В данном файле указывается путь хранения репозитория (по умолчанию /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

Система укажет сколько данных ей необходимо скачать и приступит к выполнению.

Загрузка локальной копии началась
Загрузка локальной копии началась

После успешного завершения задачи можно проверить что файлы скачались. Наш репозиторий готов, осталось его лишь опубликовать для общего доступа.

-4

Доступ к репозиторию может быть как через общие папки (к примеру 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 <опции> <откуда> <куда>. В примере выше это две команды выполняются в две строки.

Как мы видим ссылки создались и наш веб-сервер видит наши файлы репозиториев.

-6

FTP

Для доступа по FTP-протоколу, мы будем ставить сервер vsftpd. Ставится также стандартно:

sudo apt install vsftpd

После установки внесем некоторые правки в конфигурационный файл /etc/vsftpd.conf:

listen=YES
listen_ipv6=NO
anonymous_enable=YES

Первая строка - включает прослушивание по IPv4. Вторая строка - выключает прослушивание по IPv6. Третья строка - разрешает анонимный доступ (мы включаем его для простоты доступа).

-7

После изменения конфигурации так же перезапускаем сервис:

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. Будьте аккуратны! Неправильная правка этого файла может испортить загрузку системы.

Правка файла /etc/fstab
Правка файла /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

Все. Можем проверить что по фтп успешно видно наши репозитории

-9

Осталось только подключить наши репозитории.

Открываем файл с репозиториями и добавляем наши:

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-записи.

-10

После правки репозиториев не забываем обновить информацию о них командой:

sudo apt update

На этом все. Мы подключили локальную копию своего репозитория.

-11