meta data for this page
Создание корпоративного репозитория Р-Виртуализация
Настройка веб-сервера
Данная инструкция позволит вам настроить веб сервер NGINX в операционной системе Alpine Linux для размещения статических файлов, например репозитория дистрибутивов ПО.
Необходимо выполнить следующие команды для добавления и настройки Nginx:
- Обновить кэш менеджера пакетов, командой:
apk update
- Установить веб-сервер NGINX:
apk add nginx
- Добавить пользователя веб-сервера в систему и задать ему соответствующие права
adduser -D -g 'www' www chown -R www:www /var/lib/nginx chown -R www:www /var/local-repo
- Создать конфигурационный файл нового веб-ресурса и задать ему следующие значения, где
repo.local
- доменный адрес создаваемого сервера.vi /etc/nginx/http.d/mirror.conf
- /etc/nginx/http.d/mirror.conf
server { listen 80; server_name repo.local; add_header X-Frame-Options "SAMEORIGIN"; add_header Referrer-Policy "no-referrer"; root /var/local-repo/; location / { autoindex on; allow all; sendfile on; sendfile_max_chunk 1m; autoindex_exact_size off; autoindex_format html; autoindex_localtime on; } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }
- Запустить веб-сервер NGINX и настроить его автоматическую загрузку при включении операционной системы.
rc-service nginx start rc-update add nginx default
ОПЦИОНАЛЬНО: Настройка авторизации на веб сервере
Для защиты веб сервера NGINX простой авторизацией, требующей ввод имени пользователя и пароля необходимо:
- Установить необходимые пакеты, командой
apk add apache2-utils
- Создать файл, который будет содержать логины и шифрованные пароли пользователей, имеющих доступ:
touch /etc/nginx/.htpasswd && chown www:www /etc/nginx/.htpasswd
- Добавить в авторотационный файл новую запись имени пользователя и пароля, командой1):
htpasswd /etc/nginx/.htpasswd username
- Внести в конфигурационный файл веб-сервера NGINX, в раздел
location /
строки с указанием необходимости авторизации пользователей2):vi /etc/nginx/http.d/mirror.conf
- /etc/nginx/http.d/mirror.conf
auth_basic "Restricted Content"; auth_basic_user_file /etc/nginx/.htpasswd;
- Перезапустить веб сервер NGINX
rc-service nginx restart
- Проверить полученный результат, обратившись по адресу веб-сервера.
Настройка синхронизации пакетов
Для регулярной синхронизации пакетов и обновления локального репозитория необходимо добавить следящие строки в планировщик заданий пользователя www
. Для этого необходимо выполнить команду
crontab -u www -e
В открывшемся редакторе планировщика добавить следующие строки:
0 0 * * 1-5 /usr/bin/rsync -av rsync://updates.rosplatforma.ru/r-virtualization-linux /var/local-repo/www/r-virtualization-linux --exclude "6" --delete 0 2 * * 1-5 /usr/bin/rsync -av rsync://updates.rosplatforma.ru/r-virtualization /var/local-repo/www/r-virtualization --delete 0 4 * * 1-5 /usr/bin/rsync -av rsync://updates.rosplatforma.ru/r-management /var/local-repo/www/r-management --exclude "*-6.0.0" --delete
В данном примере команд планировщика производится синхронизация трех репозиториев по будням в 0, 2, 4 часа. Пакеты версии 6
исключаются.
На момент подготовки инструкции репозиторий без версии 6
занимает 220 ГБ.
Изменение адреса репозитория в гипервизоре Росплатформа
Для смены интернет-репозитория на локальный необходимо выполнить следующие команды в консоли каждого сервера виртуализации Росплатформа.
- Заархивировать оригинальные конфигурационные файлы на случай необходимости восстановления. Данная команда создает файл-архив
/etc/yum.repos.d/internet-repo.tar
и переносит туда все настройки репозиторием обновления продукта.tar -cf /etc/yum.repos.d/internet-repo.tar --remove-files /etc/yum.repos.d/*
- Создать новые конфигурационные файлы, которые будут описывать расположение пакетов обновления ПО, используя команды приведенные ниже или вручную. В конфигурационных файлах и командах необходимо заменить
mirror.micronode.ru
на соответствующий URL репозитория. - Выполнить команду
yum update
для проверки и обновления пакетов.
echo "[va-agent] name=R-Management Agent baseurl=http://mirror.micronode.ru/r-management/va-agent/releases/7.0/\$basearch/os/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-R-Management-7 [va-agent-updates] name=R-Management Agent Updates baseurl=http://mirror.micronode.ru/r-management/va-agent/updates/7.0/\$basearch/os/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-R-Management-7" > /etc/yum.repos.d/va-agent.repo
echo "# Rosplatforma repo file [rosplatforma-base] name=RosPlatforma - Base baseurl=http://mirror.micronode.ru/r-virtualization-linux/7/\$basearch/os/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPLATFORM_GPG_KEY #released updates [rosplatforma-updates] name=RosPlatforma - Updates baseurl=http://mirror.micronode.ru/r-virtualization-linux/7/\$basearch/updates/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPLATFORM_GPG_KEY" > /etc/yum.repos.d/r-virtualization-linux.repo
echo "[r-virtualization-os] name=R-Virtualization baseurl=http://mirror.micronode.ru/r-virtualization/releases/7.0/\$basearch/os/ enabled=1 gpgcheck=1 priority=50 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-R-Virtualization-7 [r-virtualization-updates] name=R-Virtualization Updates baseurl=http://mirror.micronode.ru/r-virtualization/updates/7.0/\$basearch/os/ enabled=1 gpgcheck=1 priority=50 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-R-Virtualization-7" > /etc/yum.repos.d/r-virtualization.repo
Содержимое конфигурационных файлов приведено ниже.
- /etc/yum.repos.d/va-agent.repo
[va-agent] name=R-Management Agent baseurl=http://mirror.micronode.ru/r-management/va-agent/releases/7.0/$basearch/os/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-R-Management-7 [va-agent-updates] name=R-Management Agent Updates baseurl=http://mirror.micronode.ru/r-management/va-agent/updates/7.0/$basearch/os/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-R-Management-7
- /etc/yum.repos.d/r-virtualization-linux.repo
# Rosplatforma repo file [rosplatforma-base] name=RosPlatforma - Base baseurl=http://mirror.micronode.ru/r-virtualization-linux/7/$basearch/os/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPLATFORM_GPG_KEY #released updates [rosplatforma-updates] name=RosPlatforma - Updates baseurl=http://mirror.micronode.ru/r-virtualization-linux/7/$basearch/updates/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPLATFORM_GPG_KEY
- /etc/yum.repos.d/r-virtualization.repo
[r-virtualization-os] name=R-Virtualization baseurl=http://mirror.micronode.ru/r-virtualization/releases/7.0/$basearch/os/ enabled=1 gpgcheck=1 priority=50 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-R-Virtualization-7 [r-virtualization-updates] name=R-Virtualization Updates baseurl=http://mirror.micronode.ru/r-virtualization/updates/7.0/$basearch/os/ enabled=1 gpgcheck=1 priority=50 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-R-Virtualization-7
Изменение адреса репозитория в контейнере Р-Управление
Для смены интернет-репозитория в контейнере веб интерфейса Р-Управление на локальный необходимо выполнить следующие команды в консоли сервера виртуализации Росплатформа, на котором в текущий момент выполняется контейнер va-mn
.
- Заархивировать оригинальные конфигурационные файлы на случай необходимости восстановления. Данная команда создает файл-архив
/etc/yum.repos.d/internet-repo.tar
и переносит туда все настройки репозиторием обновления продукта.prlctl exec va-mn "tar -cf /etc/yum.repos.d/internet-repo.tar --remove-files /etc/yum.repos.d/*"
- Создать новые конфигурационные файлы, которые будут описывать расположение пакетов обновления ПО, используя команды приведенные ниже или вручную, подключившись к консоли контейнера командой
prlctl enter va-mn
. В конфигурационных файлах и командах необходимо заменитьmirror.micronode.ru
на соответствующий URL репозитория. - Выполнить команду
prlctl exec va-mn yum update -y
для проверки и обновления пакетов.
Команды для автоматического создания необходимых файлов приведены ниже:
prlctl exec va-mn 'echo "# Rosplatforma repo file [rosplatforma-base] name=RosPlatforma - Base baseurl=http://mirror.micronode.ru/r-virtualization-linux/7/\$basearch/os/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPLATFORM_GPG_KEY #released updates [rosplatforma-updates] name=RosPlatforma - Updates baseurl=http://mirror.micronode.ru/r-virtualization-linux/7/\$basearch/updates/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPLATFORM_GPG_KEY" > /etc/yum.repos.d/r-virtualization-linux.repo'
prlctl exec va-mn 'echo "[va-mn] name=R-Management Management Node baseurl=http://updates.rosplatforma.ru/r-management/va-mn/releases/7.0/\$basearch/os/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-R-Management-MN-7 [va-mn-updates] name=R-Management Management Node Updates baseurl=http://updates.rosplatforma.ru/r-management/va-mn/updates/7.0/\$basearch/os/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-R-Management-MN-7" > /etc/yum.repos.d/r-management.repo'
Содержимое конфигурационных файлов приведено ниже.
- /etc/yum.repos.d/r-virtualization-linux.repo
# Rosplatforma repo file [rosplatforma-base] name=RosPlatforma - Base baseurl=http://mirror.micronode.ru/r-virtualization-linux/7/$basearch/os/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPLATFORM_GPG_KEY #released updates [rosplatforma-updates] name=RosPlatforma - Updates baseurl=http://mirror.micronode.ru/r-virtualization-linux/7/$basearchh/updates/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPLATFORM_GPG_KEY
- /etc/yum.repos.d/r-management.repo
[va-mn] name=R-Management Management Node baseurl=http://updates.rosplatforma.ru/r-management/va-mn/releases/7.0/$basearch/os/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-R-Management-MN-7 [va-mn-updates] name=R-Management Management Node Updates baseurl=http://updates.rosplatforma.ru/r-management/va-mn/updates/7.0/$basearch/os/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-R-Management-MN-7
Изменение адреса репозитория в контейнере веб интерфейса Р-Хранилище
Для смены интернет-репозитория в контейнере веб интерфейса Р-Хранилище на локальный необходимо выполнить следующие команды в консоли сервера виртуализации Росплатформа, на котором в текущий момент выполняется контейнер vstorage-ui
.
- Заархивировать оригинальные конфигурационные файлы на случай необходимости восстановления. Данная команда создает файл-архив
/etc/yum.repos.d/internet-repo.tar
и переносит туда все настройки репозиторием обновления продукта.prlctl exec vstorage-ui "tar -cf /etc/yum.repos.d/internet-repo.tar --remove-files /etc/yum.repos.d/*"
- Создать новые конфигурационные файлы, которые будут описывать расположение пакетов обновления ПО, используя команды приведенные ниже или вручную, подключившись к консоли контейнера командой
prlctl enter vstorage-ui
. В конфигурационных файлах и командах необходимо заменитьmirror.micronode.ru
на соответствующий URL репозитория. - Выполнить команду
prlctl exec vstorage-ui yum update -y
для проверки и обновления пакетов.
Команды для автоматического создания необходимых файлов приведены ниже:
prlctl exec vstorage-ui 'echo "# Rosplatforma repo file [rosplatforma-base] name=RosPlatforma - Base baseurl=http://mirror.micronode.ru/r-virtualization-linux/7/\$basearch/os/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPLATFORM_GPG_KEY #released updates [rosplatforma-updates] name=RosPlatforma - Updates baseurl=http://mirror.micronode.ru/r-virtualization-linux/7/\$basearch/updates/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPLATFORM_GPG_KEY" > /etc/yum.repos.d/r-virtualization-linux.repo'
prlctl exec vstorage-ui 'echo "[storage-ui] name=Storage UI baseurl=http://updates.rosplatforma.ru/r-virtualization/releases/7.0/\$basearch/os/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-R-Virtualization-7 [storage-ui-updates] name=Storage UI Updates baseurl=http://updates.rosplatforma.ru/r-virtualization/updates/7.0/\$basearch/os/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-R-Virtualization-7" > /etc/yum.repos.d/r-virtualization.repo'
Содержимое конфигурационных файлов приведено ниже.
- /etc/yum.repos.d/r-virtualization-linux.repo
# Rosplatforma repo file [rosplatforma-base] name=RosPlatforma - Base baseurl=http://mirror.micronode.ru/r-virtualization-linux/7/$basearch/os/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPLATFORM_GPG_KEY #released updates [rosplatforma-updates] name=RosPlatforma - Updates baseurl=http://mirror.micronode.ru/r-virtualization-linux/7/$basearch/updates/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPLATFORM_GPG_KEY
- /etc/yum.repos.d/r-virtualization.repo
[storage-ui] name=Storage UI baseurl=http://updates.rosplatforma.ru/r-virtualization/releases/7.0/$basearch/os/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-R-Virtualization-7 [storage-ui-updates] name=Storage UI Updates baseurl=http://updates.rosplatforma.ru/r-virtualization/updates/7.0/$basearch/os/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-R-Virtualization-7
Использованием репозиториев защищенных простой аутентификацией (basic_auth)
В случае если корпоративный репозиторий пакетов Р-Виртуализация защищен базовой аутентификацией требующей ввода логина пароля для доступа к сайту, в конфигурационных файлах резпоизториев необходимо дополнительно указать имя пользователя и пароль в следующем формате:
username=update password=P@ssw0rd!
где:
update
- заменить на логин пользователя.P@ssw0rd!
- заменить на пароль.
После внесения изменений конфигурационные файлы должны выглядеть следующим образом:
- /etc/yum.repos.d/va-agent.repo
[va-agent] name=R-Management Agent baseurl=http://mirror.micronode.ru/r-management/va-agent/releases/7.0/$basearch/os/ username=update password=P@ssw0rd! enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-R-Management-7 [va-agent-updates] name=R-Management Agent Updates baseurl=http://mirror.micronode.ru/r-management/va-agent/updates/7.0/$basearch/os/ username=update password=P@ssw0rd! enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-R-Management-7
- /etc/yum.repos.d/r-virtualization-linux.repo
# Rosplatforma repo file [rosplatforma-base] name=RosPlatforma - Base baseurl=http://mirror.micronode.ru/r-virtualization-linux/7/$basearch/os/ username=update password=P@ssw0rd! enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPLATFORM_GPG_KEY #released updates [rosplatforma-updates] name=RosPlatforma - Updates baseurl=http://mirror.micronode.ru/r-virtualization-linux/7/$basearch/updates/ username=update password=P@ssw0rd! enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPLATFORM_GPG_KEY
- /etc/yum.repos.d/r-virtualization.repo
[r-virtualization-os] name=R-Virtualization baseurl=http://mirror.micronode.ru/r-virtualization/releases/7.0/$basearch/os/ username=update password=P@ssw0rd! enabled=1 gpgcheck=1 priority=50 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-R-Virtualization-7 [r-virtualization-updates] name=R-Virtualization Updates baseurl=http://mirror.micronode.ru/r-virtualization/updates/7.0/$basearch/os/ username=update password=P@ssw0rd! enabled=1 gpgcheck=1 priority=50 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-R-Virtualization-7
- /etc/yum.repos.d/r-management.repo
[va-mn] name=R-Management Management Node baseurl=http://updates.rosplatforma.ru/r-management/va-mn/releases/7.0/$basearch/os/ username=update password=P@ssw0rd! enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-R-Management-MN-7 [va-mn-updates] name=R-Management Management Node Updates baseurl=http://updates.rosplatforma.ru/r-management/va-mn/updates/7.0/$basearch/os/ username=update password=P@ssw0rd! enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-R-Management-MN-7