Исправление компьютеров Linux в изолированной среде

Если вы используете клиентские компьютеры Linux, которые находятся в изолированной сетевой среде, агент не сможет использовать YUM для загрузки пакетов RPM из Интернета. Вместо этого вы должны будете сделать следующее:

  • Установите и заполните одно или несколько локальных хранилищ, которые содержат всю библиотеку доступных пакетов RPM.
  • Сконфигурируйте ваши клиентские компьютеры для поиска в нужном хранилище отсутствующих пакетов RPM, а не в Интернете.

Следующая информация должна использоваться в качестве общего руководства по настройке и использованию локального хранилища. Если у вас есть конкретные вопросы или проблемы, пожалуйста, свяжитесь с поставщиком операционной системы Linux.

Настройка локального хранилища

Требования

Вы можете использовать в качестве вашего локального хранилища любой компьютер поддерживаемого сервера Linux. Единственное требование - на нем должно быть достаточно свободного дискового пространства для расположения всей инвентаризации доступных пакетов RPM. Существует множество различных общедоступных хранилищ, содержащих пакеты RPM. Например, есть общее хранилище для пакетов RPM RHEL 9, другое общее хранилище для пакетов RPM для RHEL 8 и т.д. Как правило, ваш локальный компьютер хранилища должен содержать не менее 100 ГБ дискового пространства для каждого общего загружаемого хранилища.

Возможно, вам потребуется два или более серверов Linux в этом процессе.

  • Сценарий 1: Вы можете выбрать один компьютер, который будет использоваться в качестве локального хранилища для всех различных версий пакетов RPM. В этом сценарии компьютер, который вы используете в качестве хранилища, может загружать пакеты RPM для этой же версии, которая используется на компьютере хранилища. Однако вам потребуется отдельный компьютер для загрузки пакетов RPM для каждой отдельной версии, используемой в вашей организации.
  • Например, если в вашей организации используются клиентские компьютеры RHEL 9 x64, RHEL 8 x64 и CentOS 7 x64, вы можете использовать компьютер сервера RHEL 9 x64 в качестве локального хранилища и загружать на него все пакеты RPM для ваших серверов, рабочих станций и настольных ПК RHEL 9 и т.д. Вам потребуются отдельные компьютеры RHEL 8 x64 и CentOS 7 x64 для загрузки всех пакетов RPM для ваших серверов, рабочих станций, настольных ПК RHEL 8 и CentOS и т.д. и затем переместить эти RPM в компьютер локального хранилища.

  • Сценарий 2: Вы можете выбрать три разных локальных хранилища для обслуживания: один для всех пакетов RPM RHEL 9, второй для всех пакетов RPM RHEL 8 и третий для всех пакетов RPM CentOS 7. Для работы этого сценария требуется три выделенных компьютера в качестве ваших хранилищ, и он исключает дополнительное действие пересылки и усилия по обслуживанию объединенного хранилища.

Процесс конфигурации

Поскольку загрузка всей библиотеки доступных пакетов RPM в локальное хранилище может занять несколько, часов рекомендуется выполнить процесс конфигурации в два этапа. Этап 1, в течение которого вы загрузите все доступные пакеты RPM, должен быть начат в конце рабочего дня, чтобы процесс загрузки мог быть выполнен в ночное время. Этап 2 может быть выполнен на следующий день.

Вы должны иметь привилегии пользователя root для выполнения следующих команд.

Этап 1

  1. Создайте каталог, который должен стать хранилищем.
    Например, следующая команда создает каталог, который будет использоваться для хранения пакетов RPM для Red Hat 9.
  2. mkdir –p /repos/redhat/9

  3. Отобразите список общедоступных хранилищ, которые вы можете использовать для заполнения вашего локального хранилища.
    Общие хранилища, которые доступны для вас по подписке RHEL.
  4. yum repolist

  5. Используя YUM, установите пакет, содержащий модуль reposync.
  6. yum install yum-utils

  7. Загрузите все доступные пакеты из общедоступного хранилища по вашему выбору.
    Например, следующая команда используется для загрузки пакетов RPM из общего хранилища rhel-9-for-x86_64-baseos-rpms.
  8. reposync –-gpgcheck –l –-repoid=rhel-9-for-x86_64-baseos-rpms –-download_path=/repos/redhat/9

    Процесс загрузки займет много времени, поэтому планируйте его заранее. Параметр -gpgcheck используется для удаления пакетов с ошибками проверки подписей во время процесса загрузки.

  9. Повторите действие 3 для каждого необходимого варианта общего хранилища.
  10. Например, если в вашей организации используются RHEL 9 на системах с процессорами Intel и ARM, вам будет нужно загрузить пакеты RPM из обоих соответствующих хранилищ. Вам может потребоваться несколько дней для выполнения всех необходимых загрузок.

    Не пытайтесь загрузить пакеты RPM для другой версии Red Hat или CentOS. Например, компьютер RHEL 9 не может использоваться для загрузки пакетов RPM для компьютеров RHEL 8 x64 или RHEL 7 x64.

Этап 2

Представленный здесь процесс создает хранилище, доступное через HTTP. Существуют другие методы использования хранилища. Вы можете воспользоваться любым, наиболее знакомым вам способом.

  1. Используя YUM, установите приложение с возможностью создания хранилища.
  2. yum install createrepo

  3. Создайте хранилище.
  4. createrepo /repos/redhat/9

    Если вы получили сообщение об ошибке, в котором говорится о невозможности открыть файл *.rpm, убедитесь, что у вас достаточно места на диске. Если пространства достаточно, повторите действие (действие 3 этапа 1). Возможно, что некоторые файлы были пропущены при первой загрузке.

  5. Установите веб-сервис Apache.
    Это обеспечит возможность вашего доступа к локальному хранилищу через протокол HTTP.
  6. yum install httpd

  7. Разрешите использование порта 80 в вашем локальном браузере.
    Это необходимо из-за настройки хранилища для использования HTTP. Пртокол HTTPS также является возможным вариантом, однако в данном примере используется HTTP для упрощения примера.
  8. Отредактируйте файл httpd.conf и добавьте любые следующие отсутствующие записи.
  9. vi /etc/httpd/conf/httpd.conf

     

    ServerAdmin root@localhost

    DocumentRoot /var/www/html

    ServerName <machinename>

  10. Свяжите ваше новое хранилище с местоположением веб-сайта по умолчанию.
  11. ln -s /repos/redhat /var/www/html/redhat

  12. Проверьте синтаксис веб-службы Apache.
  13. httpd -t

  14. Запустите веб-сервис Apache.
  15. systemctl start httpd

    Вам может потребоваться повторить эту команду во время каждого перезапуска сервера. Вы можете использовать следующие команды для автоматического запуска службы во время перезапуска сервера:
    systemctl enable httpd.

  16. Получите zip-файл updateinfo.xml.gz.
  17. Действия 9 - 13 относятся только к компьютерам Red Hat.

    yum list-sec

  18. Скопируйте файлы *updateinfo.xml.gz из местоположения по умолчанию в папку /repodata.
  19. cp /var/cache/yum/x86_64/9rhServer/rhel-9-for-x86_64-baseos-rpms/*updateinfo.xml.gz /repos/redhat/9/repodata/

  20. Распакуйте файл *updateinfo.xml.gz.
  21. gzip –d /repos/redhat/9/repodata/*updateinfo.xml.gz

  22. Переименуйте файл *updateinfo.xml для удаления ненужных первых символов.
  23. mv /repos/redhat/9/repodata/*updateinfo.xml /repos/redhat/9/repodata/updateinfo.xml

  24. Перейдите в хранилище и убедитесь в наличии файла updateinfo.xml.
  25. modifyrepo /repos/redhat/9/repodata/updateinfo.xml /repos/redhat/9/repodata/

  26. (Применяется только к компьютерам, на которых имеют поддержку SELinux) Предоставляет разрешение для www/html/redhat для доступа к /repos/redhat.
  27. cd /var/www/html

    chcon -R -t httpd_sys_content_t redhat/

Повторите процесс конфигурации для других версий и дистрибутивов Linux

Вы должны будете повторить все или некоторые действия процесса конфигурации для каждой версии дистрибутива Linux, используемого в вашей организации. Например, вы можете использовать компьютер RHEL 9 для загрузки пакетов RPM для RHEL 9, компьютер CentOS 7 x64 для загрузки пакетов RPM для CentOS 7x64 и компьютер RHEL 8 x64 для загрузки пакетов RPM для RHEL 8 x64 и т.д. Изменяйте команды по мере необходимости для каждой уникальной версии Linux.

Сценарий 1: Если вы используете одно хранилище для всех различных версий Linux.

Предположим, вы используете компьютер Red Hat 9 в качестве хранилища - здесь представлено то, что вы должны сделать для получения файлов RPM для Red Hat 8:

  1. На компьютере хранилища Red Hat 9 повторите этап 1, действие 1, указав исключение: /repos/redhat/8.
  2. На компьютере Red Hat 8 выполните этап 1: действия 3 и 4.
    В действии 3 каталог repos/redhat/9 не будет существовать на компьютере Red Hat 8, поэтому удалите параметр -download_path и оставьте его в папке по умолчанию, или укажите другое местоположение.
  3. После загрузки пакетов RPM переместите их в каталог repos/redhat/8 вашего локального хранилища.
    После завершения у вас будет одно хранилище на одном компьютере, содержащее пакеты RPM для всех поддерживаемых версий Red Hat.

Сценарий 2: Если вы используете отдельные хранилища для каждой версии Linux

Повторите весь процесс конфигурации для каждой версии Linux, используемой в вашей организации.

Свяжите ваши клиентские компьютеры Linux с локальным хранилищем

Вы должны изменить YUM на каждом клиенте Linux для выполнения поиска в локальном хранилище пакетов RPM, а не в Интернете.

Если вы решили использовать различные локальные хранилища для каждой версии Linux, убедитесь, что каждый клиент подключается к корректному локальному хранилищу.

  1. Выполните вход в клиентский компьютер.
  2. Перейдите в каталог, в котором находятся найденные хранилища.
  3. cd /etc/yum.repos.d

  4. Создайте файл с именем local.repo и сконфигурируйте его с указанием вашего нового локального хранилища.
  5. nano local.repo

    [mylocalrepo]

    name=Local Rhel9 Server Repo

    baseurl=http://es-nxt-rhel9-repo.example.com/redhat/9

    gpgcheck=0

  6. Укажите, что если пакет RPM отсутствует в локальном хранилище, клиент не должен пытаться найти его в Интернете (отключение клиентского компьютера от сети).
  7. -

    Используйте vi для любого файла, кроме local.repo (например, redhat.repo)

    Найдите идентификатор хранилища (например, rhel-9-for-x86_64-baseos-rpms)

    Set enabled = 0

Периодическое обслуживание вашего хранилища

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

reposync –gpgcheck –l –repoid=rhel-9-for-x86_64-baseos-rpms –download_path=/repos/redhat/9

createrepo --update /repos/redhat/9

Сети с "воздушным зазором"

Если ваша организация использует сеть с "воздушным зазором, что означает невозможность подключения клиентских компьютеров к любым компьютерам без доступа к Интернету, вы должны сконфигурировать и использовать второе хранилище. Это демонстрируется на следующей диаграмме.

В этом случае после настройки и конфигурации подключенного хранилища, как это было представлено ранее, вы создадите второе хранилище на отключенном от сети компьютере, а затем используете съемный носитель для перемещения файлов вручную из подключенного хранилища в автономное. Затем ваши клиентские компьютеры Linux должны быть сконфигурированы для указания на отключенное, а не на подключенное хранилище.

Информация по теме

https://access.redhat.com/solutions/23016