Red Hat Training

A Red Hat training course is available for Red Hat Satellite

Введение в Red Hat Network Satellite

Red Hat Network Satellite 5.5

Подготовка систем Red Hat Network Satellite

Редакция 2

Red Hat Engineering Content Services

Аннотация

В этом документе рассматривается настройка установки систем с Red Hat Network Satellite. Подробную информацию можно найти в руководстве пользователя Satellite.

Глава 1. Введение

Инициализация — процесс настройки физической или виртуальной машины до предопределенного состояния. Для этой цели RHN Satellite использует возможности кикстарта. Виртуальные машины должны быть созданы при помощи Xen или KVM.

Основные термины

Далее перечислены основные термины.
Кикстарт
Процесс автоматической установки Red Hat, требующий минимального вмешательства пользователя. Изначально термин кикстарт использовался применительно к механизму установки Anaconda, где необходимые параметры размещались в специальном файле. Предопределенный набор настроек получил название профиля кикстарта.
Профиль кикстарта
Это текстовый файл, в котором хранятся необходимые для установки параметры: схема разделов, конфигурация сети, список устанавливаемых пакетов. Настройки Anaconda являются лишь подмножеством профиля кикстарта RHN Satellite, так как он построен на основе расширений Cobbler. Для использования профиля необходимо наличие дерева установки.
Дерево кикстарта
Также известное как дерево установки, представляет собой каталог с необходимыми для установки файлами. В терминах Cobbler дерево кикстарта является составляющей дистрибутива.
PXE (Preboot eXecution Environment)
Низкоуровневый протокол, позволяющий выполнить кикстарт-установку системы без ее предварительной подготовки. Функции объявления загрузочных серверов клиентам при этом возлагаются на сервер DHCP. При этом PXE должен поддерживаться на микропрограммном уровне. Возможности виртуализации и переустановки Satellite доступны и без PXE, но PXE значительно облегчает задачу подготовки новых компьютеров к работе и переустановке незарегистрированных систем.

Режимы установки

Поддерживаемые режимы:
Новая установка
Установка на компьютерах, в которых не установлена операционная система — так называемая установка с нуля.
Виртуальная установка
Satellite поддерживает полностью виртуализированные системы KVM, Xen и паравиртуализированные системы Xen.
Переустановка
В зарегистрированных физических и виртуальных системах можно выполнить повторную установку (см. Раздел 2.5.2, «Переустановка»).

Глава 2. Кикстарт

2.1. Обязательные пакеты

Для установки нестандартных дистрибутивов надо предварительно установить следующие пакеты из канала rhn-tools:
  • koan,
  • spacewalk-koan.
Для доступа к этим пакетам рекомендуется создать копию канала rhn-tools.
RHN Satellite будет искать файлы kernel и initrd в определенных каталогах (см. таблицу).

Таблица 2.1. Обязательные файлы

Архитектура Ядро Образ диска инициализации
IBM System z ПУТЬ/images/kernel.img ПУТЬ/images/initrd.img
PowerPC ПУТЬ/ppc/ppc64/vmlinuz ПУТЬ/images/pxeboot/vmlinux
Другие ПУТЬ/images/pxeboot/vmlinuz ПУТЬ/images/pxeboot/initrd.img

2.2. Дерево установки

На Satellite должно располагаться как минимум одно дерево кикстарта. Его можно создать автоматически или скопировать вручную.

Процедура 2.1. Автоматическая установка дерева кикстарта

Если в RHN есть подходящий канал для дистрибутива, его можно установить автоматически в процессе синхронизации канала.
  1. Выберите базовый и канал rhn-tools для дистрибутива.
    Так, для Red Hat Enterprise Linux 5 на x86 надо выбрать rhel-i386-server-5 и rhn-tools-rhel-i386-server-5.
  2. Выполните синхронизацию Satellite с серверами Red Hat. Если Satellite работает в автономном режиме, для синхронизации могут использоваться заранее подготовленные копии каналов.
  3. При синхронизации будет автоматически создано соответствующее дерево установки.

Процедура 2.2. Установка дерева кикстарта вручную

Для бета-версий Red Hat Enterprise Linux и дистрибутивов, не поддерживаемых Red Hat, дерево кикстарта надо будет создать вручную. Для этого потребуется *.iso дистрибутива.
  1. Скопируйте образ на Satellite и смонтируйте его в /mnt/iso.
  2. Скопируйте содержимое образа во временный каталог в /var/satellite. Так, например, содержимое образа бета-выпуска RHEL можно скопировать в /var/satellite/custom-distro/rhel-i386-server-5.3-beta/.
  3. Откройте веб-интерфейс RHN Satellite и создайте канал (КаналыУправление каналамиСоздать канал). Выберите подходящее для дистрибутива имя, например rhel-5.3-beta.
  4. Перенесите пакеты из дерева в созданный канал:
    rhnpush --server=http://localhost/APP -c 'rhel-5.3-beta' \  -d /var/satellite/custom-distro/rhel-i386-server-5.3-beta/Server/
    Каталог внутри /var/satellite/ может отличаться от приведенного примера в зависимости от дистрибутива.
  5. Позднее копии пакетов можно будет удалить из временного каталога с помощью rm. Сами пакеты все так же будут храниться на сервере Satellite.
    rm /var/satellite/custom-distro/rhel-i386-server-5.3-beta/Server/*.rpm

    Примечание

    Копии можно не удалять. Это позволит в любое время переустановить пакеты с помощью yum.
  6. Чтобы создать дистрибутив, на сайте RHN Satellite выберите СистемыКикстартДистрибутивысоздать дистрибутив. Введите имя и путь к дереву установки (например, /var/satellite/custom-distro/rhel-i386-server-5.3-beta/), выберите базовый канал и установщик (например, Red Hat Enterprise Linux 5). Нажмите Создать кикстарт дистрибутива.
  7. Для согласования программного обеспечения в разных окружениях и системах можно скопировать дочерний канал RHN Tools из базового канала Red Hat Enterprise Linux для созданного дистрибутива. Доступные методы копирования:
    1. В меню веб-интерфеса Satellite выберите КаналыУправление каналамиДублировать канал
    2. Выберите канал в списке Дублировать: и режим копирования.
    3. Нажмите Создать канал.
    4. Введите необходимую информацию и выберите родительский канал для нового канала.
    5. Нажмите Создать канал.
Создание дистрибутива кикстарта

Рисунок 2.1. Создание дистрибутива кикстарта

2.3. Профили кикстарта

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

Процедура 2.3. Работа с помощником создания профиля

  1. Выберите СистемаКикстартСоздать профиль.
  2. Введите метку, базовый канал и дерево установки.
  3. Выберите тип виртуализации (см. Типы виртуализации).
  4. Выберите каталог для размещения профиля. Для нестандартных дистрибутивов введите URI (HTTP или FTP). Нажмите кнопку продолжения.
  5. Введите пароль root и нажмите кнопку завершения.
  6. Для просмотра созданного профиля нажмите Файл кикстарта.

Процедура 2.4. Создание профиля вручную.

  1. Выберите СистемыКикстартЗагрузить файл кикстарта.
  2. Введите метку и выберите дистрибутив.
  3. Выберите тип виртуализации (см. Типы виртуализации).
  4. Можно выбрать существующий файл или ввести текст профиля в окне ввода.
    Пример:
    install
    text
    network --bootproto dhcp
    url --url http://$http_server/ks/dist/org/1/ks-rhel-i386-server-5
    lang en_US
    keyboard us
    zerombr
    clearpart --all
    part / --fstype=ext3 --size=200 --grow
    part /boot --fstype=ext3 --size=200
    part swap --size=1000   --maxsize=2000
    bootloader --location mbr
    timezone America/New_York
    auth --enablemd5 --enableshadow
    rootpw --iscrypted $1$X/CrCfCE$x0veQO88TCm2VprcMkH.d0
    selinux --permissive
    reboot
    firewall --disabled
    skipx
    key --skip
    
    %packages 
    @ Base
    
    %post
    $SNIPPET('redhat_register')
    
  5. RHN Satellite не использует url по умолчанию, поэтому в профиль можно включить следующее:
    url --url http://satellite.example.com/ks/dist/org/1/my_distro
    Замените my_distro меткой дистрибутива, а 1 — идентификатором организации.
  6. Созданные таким образом профили принимают параметр $http_server, который будет автоматически заменен именем Satellite.
  7. Команда $SNIPPET('redhat_register') отвечает за регистрацию.
Ввод текста кикстарта

Рисунок 2.2. Ввод текста кикстарта

Типы виртуализации

Каждому профилю кикстарта соответствует тип виртуализации.

Таблица 2.2. Типы виртуализации

Тип Описание Применяется
нет Нет виртуализации Стандартная подготовка физических систем, установка виртуальных систем, не использующих Xen и KVM (например, VMware и Virtage)
Виртуальный гость KVM Гостевые системы KVM Для подготовки гостевых систем KVM
Полностью виртуализированный гость Xen Гостевые системы Xen Для подготовки гостевых систем Xen

Примечание

Требует соответствующей поддержки оборудования на хосте. Не требует модификации гостевой операционной системы.
Паравиртуализированный гость Xen Гостевые системы Xen Red Hat Enterprise Linux 5 поддерживает паравиртуализацию, которая является наиболее быстрым способом виртуализации. Требует наличия флага PAE процессора и модификации операционной системы.
Хост Xen Хосты Xen Используется для создания виртуального хоста Xen. Поддерживаются паравиртуализированные гости и хосты Xen.
В секции %packages профиля, который будет использоваться хостами Xen, должен быть указан пакет kernel-xen.
В секции %packages профиля, который будет использоваться хостами KVM, должен быть указан пакет qemu.
Для полностью виртуализированных систем может потребоваться включить поддержку виртуализации в BIOS.

Примечание

Подробную информацию можно найти в руководстве по установке Red Hat Enterprise Linux.

2.4. Шаблоны

С помощью утилиты cheetah можно создать шаблоны с переменными, фрагментами настроек, операторами if и for, которые будут включены в файлы кикстарта.
Преимущества шаблонов:
  • Многоразовое использование фрагментов кода в разных файлах кикстарта (например, в секциях разделов).
  • Многоразовое выполнение операций из %post.
  • Определение шаблонов для создания сервера DNS, прокси-сервера или веб-сервера. Так, например, для веб-сервера можно включить следующее:
    httpd
    mod_ssl
    mod_python
    
    При создании профиля веб-сервера следует добавить его шаблон в секцию %packages. Добавление в эту секцию определений прокси-сервера позволит использовать этот же профиль для создания прокси. При добавлении нового пакета в шаблон все использующие его профили будут обновлены автоматически.
Переменные

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

Примечание

Для дерева кикстарта, созданного автоматически в процессе синхронизации с Satellite, переменные дистрибутива не могут быть определены.
Фрагменты

С помощью выражения $SNIPPET('фрагмент') можно добавить отдельные фрагменты в профиль. Фрагменты могут содержать список пакетов, секции сценария %post и прочие определения, которые может содержать файл кикстарта.

Управление фрагментами осуществляется на странице СистемыКикстартФрагменты.
На этой странице приведено несколько стандартных неизменяемых фрагментов. Они используются готовыми файлами кикстарта и хранятся в каталоге /var/lib/cobbler/snippets/ на RHN Satellite. В /var/lib/rhn/kickstarts/wizard/ можно найти шаблон с описанием этих фрагментов.
Так, фрагмент redhat_register используется для регистрации компьютеров на сервере RHN Satellite. Определите значение redhat_management_key на уровне системы, профиля или дистрибутива и добавьте строку $SNIPPET('redhat_register') в секцию %post. Созданные автоматически профили будут содержать этот фрагмент.
На вкладке Дополнительные можно настроить шаблоны специально для конкретной организации. Нажмите создать фрагмент для перехода к странице создания нового шаблона, который будет сохранен в /var/lib/rhn/kickstarts/snippets/. Шаблоны для разных организаций будут храниться в разных каталогах. Так, команда добавления фрагмента для организации с идентификатором 1 будет выглядеть так:
$SNIPPET('spacewalk/1/snippet_name')
Команды добавления фрагментов приведены в столбце Команда в списке фрагментов.

Примечание

Фрагменты определяются на глобальном уровне и не используют структуру наследования, присущую переменным. Переменные могут изменить поведение фрагментов в зависимости от систем, запрашивающих кикстарт.
Фрагменты кикстарта

Рисунок 2.3. Фрагменты кикстарта

Подстановка переменных

Для подстановки переменных используются знаки $ и #. Если требуется непосредственно указать эти знаки в сценарии, можно выбрать один из приведенных ниже способов:

  • Указать \ перед $ или #.
  • Заключить весь сценарий в #raw ... #end raw
    Созданные помощником сценарии %pre и %post заключены в #raw...#end raw по умолчанию. Это можно отключить, сняв флажок Шаблон при редактировании сценария.
  • Добавить #errorCatcher Echo в начало фрагмента.

Пример 2.1. Примеры подстановки специальных знаков

Ниже приведены примеры подстановки специальных знаков в шаблонах кикстарта.
Предположим, что в секцию %post надо добавить сценарий bash:
%post 
echo $foo > /tmp/foo.txt
Если добавить команду в ее первоначальной форме, обработчик будет пытаться выполнить подстановку переменной $foo, что завершится неудачей, так как эта переменная не существует.
1. Самым простым решением является добавление \ перед $:
%post 
echo \$foo > /tmp/foo.txt
Теперь при обработке сценария \$foo будет преобразован в $foo.
2. Можно заключить сценарий в #raw ... #end raw:
%post 
#raw  
echo $foo > /tmp/foo.txt 
#end raw
3. Наконец, можно добавить #errorCatcher Echo в первую строку шаблона. Эта команда заставляет обработчик игнорировать несуществующие переменные и выводить текст в исходном виде. Это выражение включено по умолчанию в файлы кикстарта, созданные с помощью помощника.

2.5. Установка

2.5.1. Установка на новых компьютерах

Способы установки на новых компьютерах:
  • с установочного носителя;
  • загрузив компьютер с помощью PXE;

Процедура 2.5. Загрузка с установочного носителя

  1. Вставьте установочный диск с соответствующей версией дистрибутива. Так, для кикстарта ks-rhel-i386-server-5-u2 используйте диск Red Hat Enterprise Linux 5.2 для i386.
  2. В строке приглашения введите:
    linux ks=http://satellite.example.com/путь/к/файлу/кикстарта
    
  3. Установка начнется автоматически после загрузки системы.

Процедура 2.6. Загрузка PXE

Загрузка PXE должна поддерживаться на уровне BIOS. Современное оборудование обычно включает поддержку по умолчанию. Также должен быть доступен сервер DHCP, даже если системы используют статические настройки.
  1. Важно

    Если сервер DHCP размещен на отдельном компьютере в сети, для изменения файла конфигурации DHCP надо разрешить к нему административный доступ.
    Если же системы расположены в разных сетях, необходимо, чтобы они могли подключаться к серверу DHCP. Для этого настройки маршрутизаторов и коммутаторов должны разрешать взаимодействие между сетями.
    Параметр next-server в настройках сервера DHCP должен указывать на сервер PXE.
    Чтобы использовать имена узлов во время установки, надо добавить:
    option domain-name ДОМЕН;
    option domain-name-servers IP_АДРЕС1, IP_АДРЕС2;
    
  2. На сервере DHCP перейдите в режим root и откройте файл /etc/dhcpd.conf. Добавьте следующую секцию, чтобы разрешить загрузку PXE:
    allow booting;
    allow bootp;
    class "PXE" {
      match if substring(option vendor-class-identifier, 0, 9) = "PXEClient";
      next-server 192.168.2.1;
      filename "pxelinux.0";
    }
    
    В этой секции определены действия:
    1. Активация сетевой загрузки с помощью протокола bootp.
    2. Создание класса с именем PXE. Если в последовательности загрузки системы первым выбирается PXE, система будет идентифицирована как PXEClient.
    3. Перенаправление сервера DHCP на Cobbler с адресом 192.168.2.1.
    4. Сервер DHCP обращается к загрузочному образу /var/lib/tftpboot/pxelinux.0.
  3. Настройте службу xinetd, которая управляет целым набором служб, в том числе TFTP — сервером FTP, отвечающим за передачу загрузочного образа клиенту PXE.
    Команда активации xinetd:
    chkconfig xinetd on
    
    Другой способ состоит в изменении параметра disable = yes на disable = no в файле /etc/xinetd.d/tftp (в режиме root).
  4. Запустите xinetd, чтобы TFTP стал предоставлять образ pxelinux.0:
    chkconfig --level 345 xinetd on
    /sbin/service xinetd start
    
    chkconfig включает xinetd на всех уровнях выполнения, в то время как /sbin/service запускает xinetd немедленно.

2.5.2. Переустановка

Переустановку системы с использованием существующего профиля можно выполнить через веб-интерфейс RHN Satellite. При этом большинство настроек и данных старой системы будет сохранено.
Время переустановки системы можно назначить на вкладке Инициализация. На вкладке Дополнительные настройки можно изменить настройки сетевого подключения и синхронизации профиля, а также параметры ядра, используемые не только во время установки, но при первой загрузке системы.

Пример 2.2. Изменение параметров ядра

Ниже приведены примеры параметров ядра, используемых во время и после установки.
Чтобы установить соединение VNC для удаленного наблюдения за установкой, в строке параметров надо указать vnc vncpassword=ПАРОЛЬ.
Чтобы заново установленная система загружалась с параметром noapic, надо его добавить в строку Post-параметры.

Процедура 2.7. Восстановление файлов

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

Примечание

Восстановление файлов доступно только при использовании помощника установки.
  1. Список восстановления можно создать на странице СистемыКикстартВосстановление файловсоздать список восстановления файлов.
  2. После этого перейдите на страницу СистемыКикстартПрофили и свяжите список с профилем.
  3. На странице Свойства системыВосстановление файлов выберите интересующий список.

2.5.3. Установка виртуальной системы

RHN Satellite 5.5 поддерживает установку следующих типов виртуальных систем:
  • виртуальный гость KVM;
  • полностью виртуальный гость Xen;
  • паравиртуальный гость Xen.

Процедура 2.8. Установка виртуальной системы

  1. Убедитесь, что компьютер, где будет устанавливаться виртуальная система, обладает полномочием виртуализации или платформы виртуализации.
  2. На странице Системы выберите хост, затем ВиртуализацияИнициализация. Далее следует выбрать профиль кикстарта и ввести имя гостевой системы.
  3. На странице Дополнительные настройки можно изменить следующее:
    • сетевое подключение (DHCP или статическое);
    • параметры ядра;
    • настройки синхронизации профиля (после установки можно синхронизировать профиль с другой системой или с другим профилем);
    • память (по умолчанию 512 МБ);
    • размер виртуального диска;
    • число виртуальных процессоров (по умолчанию 1);
    • виртуальный мост (по умолчанию xenbr0 для Xen и virbr0 для KVM).

      Примечание

      virbr0 не разрешает внешние соединения. Если требуется внешнее соединение, рекомендуется использовать мост xenbr0.
    • путь к накопителю (файлу, каталогу, логическому тому, блочному устройству), где будут храниться данные виртуальной системы. Примеры:/dev/sdb, /dev/LogVol00/mydisk, VolGroup00, /var/lib/xen/images/myDisk.
  4. Нажмите Назначить кикстарт и выйти.

2.5.4. Установка через RHN Proxy

Установка может быть выполнена через прокси-сервер RHN, который был предварительно зарегистрирован на RHN Satellite.
  1. Выберите прокси-сервер из списка.
  2. При установке на новом компьютере замените имя RHN Satellite полным именем прокси-сервера. Например, если путь к файлу кикстарта выглядел так:
    http://satellite.example.com/ks/cfg/org/1/label/myprofile
    
    его надо изменить:
    http://proxy.example.com/ks/cfg/org/1/label/myprofile
    

Глава 3. Группы серверов Satellite

Синхронизация одного Satellite с другим позволяет координировать содержимое между серверами Satellite.

Требования взаимной синхронизации

Для взаимной синхронизации необходимо следующее:
  • как минимум два сервера RHN Satellite;
  • как минимум один RHN Satellite с каналами;
  • соединение между серверами должно быть защищено — SSL-сертификат мастер-сервера Satellite должен быть доступен на подчиненных серверах.

3.1. Синхронизация серверов Satellite

Процедура 3.1. Настройка мастер-сервера RHN Satellite

Подчиненные серверы синхронизируют свои данные с одним мастер-сервером.
  1. Сначала следует включить функции синхронизации. Откройте файл /etc/rhn/rhn.conf и проверьте наличие строки:
    disable_iss=0
    
  2. В /etc/rhn/rhn.conf надо изменить переменную allowed_iss_slaves= так, чтобы она содержала имена узлов всех подчиненных Satellite, разделенных запятой:
    allowed_iss_slaves=slave1.satellite.example.org,slave2.satellite.example.org
    
  3. Сохраните файл и перезапустите httpd:
    service httpd restart
    

Процедура 3.2. Настройка подчиненных серверов

Подчиненный сервер — сервер, содержимое которого синхронизируется с мастер-сервером.
  1. Чтобы настроить синхронизацию подчиненных серверов, нужно получить сертификат ORG-SSL из каталога /pub/ на мастер-сервере. Файл RHN-ORG-TRUSTED-SSL-CERT можно переименовать и разместить в любом каталоге на подчиненном Satellite, например в /usr/share/rhn/.
  2. Следующая команда получит список доступных для синхронизации каналов:
    satellite-sync --iss-parent=master.satellite.example.com --ca-cert=/usr/share/rhn/RHN-ORG-TRUSTED-SSL-CERT --list-channels
    
    Замените master.satellite.example.com именем мастер-сервера.

Процедура 3.3. Синхронизация разных Satellite

Завершив настройку, можно синхронизировать каналы мастер-сервера Satellite с подчиненными серверами.
  1. В /etc/rhn/rhn.conf на подчиненных серверах настройте имя мастер-сервера и путь к сертификату SSL:
    iss_parent      = master.satellite.example.com
    iss_ca_chain    = /usr/share/rhn/RHN-ORG-TRUSTED-SSL-CERT
    
  2. Теперь можно начать синхронизацию:
    satellite-sync -c канал

    Примечание

    Параметры команды satellite-sync переопределяют настройки в файле /etc/rhn/rhn.conf

3.2. Синхронизация организаций

Возможности синхронизации Satellite можно использовать для импорта пакетов в организацию. Это можно сделать локально или посредством удаленной синхронизации. В частности, для автономного Satellite с множеством организаций содержимое можно получить из копий каналов или посредством экспорта с подключенного Satellite с последующим копированием на интересующий сервер. Синхронизация позволяет экспортировать каналы с подключенных Satellite.
При синхронизации организаций необходимо придерживаться некоторых правил:
  • Если исходные пакеты принадлежат Red Hat (значение NULL), то эта организация будет использоваться, даже если задана другая организация. Это гарантирует, что содержимое всегда будет принадлежать привилегированной базовой организации.
  • Если организация задана в командной строке, будет выполнен импорт ее данных.
  • Если организация не задана, по умолчанию будет использоваться первая организация.
Дальше приведены примеры, где для синхронизации используются идентификаторы orgid.

Пример 3.1. Импорт с мастер-сервера

Копирование канала с мастер-сервера на подчиненный сервер:
satellite-sync --parent-sat=master.satellite.example.com -c канал --orgid=2

Пример 3.2. Импорт из сохраненной копии организации

Копирование канала из предварительно созданной копии:
$ satellite-sync -m /dump -c канал --orgid=2

Пример 3.3. Импорт содержимого с RHN Hosted

В этом примере подразумевается, что система зарегистрирована и активна.
$ satellite-sync -c канал

3.3. Примеры синхронизации

В этой секции приведены примеры синхронизации.

Пример 3.4. Тестовый сервер Satellite

В этом примере на тестовом Satellite будут подготовлены пакеты с их последующей проверкой. Если проверка завершена успешно, пакеты будут переданы рабочему Satellite.
  1. Выполните команду синхронизации:
    satellite-sync -c your-channel
    
  2. Выполните синхронизацию с тестовым сервером:
    satellite-sync --iss-parent=staging-satellite.example.com -c частный_канал

Пример 3.5. Синхронизация подчиненных серверов

В этом примере мастер-сервер предоставляет данные подчиненным серверам напрямую с периодической синхронизацией.

Пример 3.6. Собственные пакеты на подчиненных серверах

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

Пример 3.7. Двухсторонняя синхронизация

При двухсторонней синхронизации два Satellite-сервера являются мастер-серверами друг для друга.
  1. Оба сервера должны открыть доступ к своим сертификатам SSL.
  2. Параметр iss_parent в файле /etc/rhn/rhn.conf на сервере A должен содержать имя Satellite B.
  3. Параметр iss_parent в файле /etc/rhn/rhn.conf на сервере B должен содержать имя Satellite A.

Глава 4. Дополнительные команды и функции

4.1. XML-RPC API

RHN Satellite 5.5 при инициализации поддерживает функции API XML-RPC.
Ниже перечислены методы API, используемые для установки.

Таблица 4.1. Методы XML-RPC

Метод Описание
kickstart Создание, импорт и удаление профиля кикстарта. Также используется для просмотра дерева установки и профилей.
kickstart.tree Создание, переименование, обновление и удаление дерева установки.
kickstart.filepreservation Создание, просмотр и удаление списков восстановления файлов, которые в дальнейшем могут быть сопоставлены профилю кикстарта с помощью kickstart.profile.system.add_file_preservations.
kickstart.keys Создание, просмотр и удаление ключей GPG/SSL, которые могут быть назначены разным профилям.

Примечание

Метод kickstart.profile.system.add_keys позволяет сопоставить созданный ключ профилю кикстарта.
kickstart.profile Изменение диапазона IP, дерева установки и дочерних каналов, загрузка файлов установки, настройка дополнительных параметров и сценариев pre и post.
kickstart.profile.keys Добавление, просмотр и удаление ключей активации.
kickstart.profile.software Изменение списка пакетов в профиле.
kickstart.profile.system Управление списком восстановления файлов, ключами активации, разделами, настройка удаленных команд и выбор языка для профиля.
Следующие методы используются для повторной установки хоста и его виртуальных систем.
  • system.provision_system
  • system.provision_virtual_guest
Дальнейшую информацию можно найти в https://satellite.example.com/rpc/api.

4.2. Cobbler

RHN Satellite использует Cobbler для инициализации. При обновлении профиля кикстарта или дистрибутива на Satellite они будут обновлены и в экземпляре Cobbler на хосте RHN Satellite. То есть Cobbler может использоваться напрямую для управления установкой.
В таблице приведены команды Cobbler.

Таблица 4.2. Команды Cobbler

Команда Описание
cobbler profile list Просмотр списка профилей на хосте RHN Satellite.
cobbler distro list Просмотр списка установочных деревьев, ядер, дисков RAM и др.
cobbler system list Просмотр списка системных записей, созданных при выборе времени запуска установки.
cobbler profile report --name=профиль или cobbler system report --name=система Просмотр подробной информации о выбранном объекте.
cobbler profile edit --name=профиль --virt-ram=1024 Позволяет изменить параметры. В этом примере при установке виртуальных систем им будет выделяться по 1 ГБ оперативной памяти.
cobbler system edit --name=система --netboot-enabled=1 Система будет переустановлена при следующей загрузке.
cobbler system edit --name=система --profile=новый_профиль --netboot-enabled=1 Назначает системе новый профиль.
cobbler system find --profile=профиль Просмотр списка систем для указанного профиля.
cobbler system find --profile="abc" | xargs -n1 --replace cobbler system edit \ --name={} --profile="def" --netboot-enabled=1 Присвоение системам с профилем abc профиля def и переустановка при следующей загрузке.
cobbler profile edit --name=профиль --kopts="variablename=3" --in-place Настройка дополнительной переменной в профиле.
cobbler system edit --name=система --kopts="selinux=disabled asdf=jkl" Добавляет переменные в системную запись. При этом старые переменные будут игнорироваться.
cobbler profile find --name="*webserver*" | xargs -n1 --replace cobbler profile edit --name={} --profile="RHEL5-i386" Для новых установок изменяет профиль, имя которого содержит webserver, на профиль RHEL5-i386.
Другие настройки Cobbler

В /etc/cobbler/settings можно изменить другие параметры Cobbler, например pxe_just_once (см. Процедура 4.3, «Настройка PXE для Cobbler») или server (определяет имя или адрес сервера RHN Satellite).

Чтобы изменения вступили в силу, надо выполнить:
/sbin/service cobblerd restart
cobbler sync

Важно

Не изменяйте другие настройки в /etc/cobbler/settings. Также не следует изменять файл /etc/cobbler/modules.conf, который отвечает за аутентификацию. Эти файлы должны оставаться в том состоянии, в котором они были созданы при установке RHN Satellite.

Процедура 4.1. Cobbler и SELinux

Поддержка SELinux и межсетевого экрана входит в Red Hat Enterprise Linux по умолчанию. Чтобы сервер Red Hat Enterprise Linux мог использовать Cobbler, необходимо разрешить подключения к Cobbler на уровне SELinux.
  1. Для этого используется команда
    setsebool -P httpd_can_network_connect true
    
    Аргумент -P поддерживает подключение HTTPD между перезагрузками и является обязательным.
  2. Затем следует настроить правила SELinux для предоставления загрузочного образа. Для этого на сервере Cobbler надо выполнить
    semanage fcontext -a -t public_content_t "var/lib/tftpboot/.*"
    
  3. Правила IPTables должны разрешать передачу данных через сервер Cobbler.
    Если уже задан набор правил iptables для межсетевого экрана, надо добавить правила, открывающие порты для Cobbler.
    Для TFTP:
    /sbin/iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 69 -j ACCEPT
    /sbin/iptables -A INPUT -m state --state NEW -m udp -p udp --dport 69 -j ACCEPT
    
    Для HTTPD:
    /sbin/iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
    /sbin/iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
    
    Для Cobbler:
    /sbin/iptables -A INPUT -m state --state NEW -m udp -p udp --dport 25150 -j ACCEPT
    
    Для Koan:
    /sbin/iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 25151 -j ACCEPT
    
  4. Сохраните настройки:
    /sbin/iptables-save
    
  5. Выполните синхронизацию файлов конфигурации:
    cobbler sync
    
  6. Запустите Satellite:
    /usr/sbin/rhn-satellite start
    

    Предупреждение

    Не следует запускать или останавливать cobblerd отдельно от rhn-satellite, так как это может привести к ошибкам.
    Для запуска и остановки RHN Satellite следует использовать /usr/sbin/rhn-satellite.

Процедура 4.2. Настройка системных записей Cobbler

Системные записи Cobbler представляют собой объекты Cobbler, хранящие информацию о системе и ее профиле кикстарта. Так, для установки PXE необходимо, чтобы профиль был связан с системными записями устанавливаемых компьютеров.
  1. Перейдите на страницу Свойства системыОбеспечение и выберите профиль кикстарта.
  2. Выберите Создать системную запись Cobbler.
  3. Созданную связь можно изменить, присвоив параметру pxe_just_once значение true (см. Процедура 4.3, «Настройка PXE для Cobbler»).

Процедура 4.3. Настройка PXE для Cobbler

Cobbler генерирует конфигурацию PXE по умолчанию, но для оптимальной работы может потребоваться откорректировать параметр pxe_just_once.
  1. Загрузка PXE будет выбираться в BIOS первой, до загрузки с локального диска. Если настройки сервера PXE подразумевают удаленную загрузку с локального диска, это приведет к циклической переустановке системы.
    Чтобы этого избежать, в /etc/cobbler/settings добавьте:
    pxe_just_once: 1
    
    Это добавит в шаблон команду $kickstart_done, которая загрузит установленную систему с локального носителя, а не через сеть.
  2. Если требуется переустановить систему с параметром pxe_just_once: 1, надо будет изменить флаг netboot-enabled (на сайте RHN Satellite или напрямую в Cobbler). После перезагрузки системы начнется установка PXE, после завершения которой система будет загружена с локального диска.
    Если в BIOS локальный жесткий диск выбирается первым, не надо устанавливать флаг pxe_just_once. Для переустановки системы через PXE потребуется обнулить главную загрузочную запись.

Правила формирования имен

Для синхронизации RHN Satellite и Cobbler необходимо, чтобы имена дистрибутивов и профилей следовали определенным форматам.
Дистрибутивы
$tree_name:$org_id:$org_name (если создан вручную)
$tree_name (если создан при синхронизации с RHN Satellite)
Профили
$profile_name:$org_id:$org_name

Важно

Не следует изменять автоматически созданные имена. RHN Satellite не поддерживает модифицированные объекты.

Примечание

В целях диагностики Cobbler сохраняет отладочные сообщения в журналах RHN Satellite и в /var/log/cobbler/.

4.3. Koan

Программа koan (сокр. от «kickstart over a network») позволяет удаленно обращаться к RHN Satellite из установленных систем. С помощью koan можно выполнить кикстарт-установку, создать виртуальные системы и получить список доступных профилей с узла RHN Satellite.

Таблица 4.3. Команды Koan

Команда Описание
man koan Справочная страница koan.
koan --replace-self --server=satellite.example.org --profile=профиль или koan --replace-self --server=satellite.example.org --system=система Повторная инициализация системы. Для начала установки следует перезагрузить систему. С помощью этой команды можно также обновить Red Hat Enterprise Linux на большом числе компьютеров.
koan --virt --server=satellite.example.org --profile=профиль или koan --virt --server=satellite.example.org --system=система Установка виртуальной системы
koan --list=profiles --server=satellite.example.org или koan --list=systems --server=satellite.example.org Вывод списка профилей и систем, доступных для удаленной установки.

Примечание

В целях диагностики Koan сохраняет отладочные сообщения в /var/log/koan.

Глава 5. Диагностика проблем

5.1. Веб-интерфейс
Вопрос: Ошибка веб-интерфейса RHN. Какие журналы проверить?
5.2. Anaconda
Вопрос: Ошибка при загрузке файла кикстарта. Что делать?
Вопрос: Ошибка при установке пакета: «Не удалось открыть файл chkconfig-1.3.30.1-2.i386.rpm». Что делать?
5.3. Отладочные сообщения
Вопрос: Я получаю по электронной почте сообщения с темой "WEB TRACEBACK". Что это значит?
5.4. Регистрация
Вопрос: Почему rhnreg_ks возвращает ошибку «Не удалось получить ID системы»?
5.5. Файловая структура кикстарта
Вопрос: Где расположены файлы кикстарта?
Вопрос: Где хранятся фрагменты Cobbler?

5.1. Веб-интерфейс

Вопрос:
Ошибка веб-интерфейса RHN. Какие журналы проверить?
Ответ:
Если не удается просмотреть, настроить или изменить настройки кикстарта в окне веб-интерфейса RHN Satellite, рекомендуется проверить журнал /var/log/tomcat5/catalina.out.
Другие ошибки интерфейса регистрируются в /var/log/httpd/error_log.

5.2. Anaconda

Вопрос:
Ошибка при загрузке файла кикстарта. Что делать?
Ответ:
Причина может заключаться в сетевом подключении. Выполните cobbler check:
# cobbler check
The following potential problems were detected:
#0: reposync is not installed, need for cobbler reposync, install/upgrade yum-utils?
#1: yumdownloader is not installed, needed for cobbler repo add with --rpm-list parameter, install/upgrade yum-utils?
#2: The default password used by the sample templates for newly installed machines (default_password_crypted in /etc/cobbler/settings) is still set to 'cobbler' and should be changed
#3: fencing tools were not found, and are required to use the (optional) power management features. install cman to use them
Если вывод cobbler check не помогает определить проблему, можно сделать следующее:
  • Выполните service httpd status, чтобы проверить статус работы httpd.
  • Выполните service cobblerd status, чтобы проверить статус работы cobblerd.
  • Проверьте возможность загрузки файла кикстарта с другого узла:
    wget http://satellite.example.com/cblr/svc/op/ks/profile/rhel5-i386-u3:1:Example-Org
Вопрос:
Ошибка при установке пакета: «Не удалось открыть файл chkconfig-1.3.30.1-2.i386.rpm». Что делать?
Ответ:
Клиенты получают содержимое из каталога на RHN Satellite, заданным с помощью параметра --url, например:
url --url http://satellite.example.com/ks/dist/ks-rhel-i386-server-5-u3
Если Anaconda сообщает о том, что пакет не найден, следует выполнить следующую проверку (вывод должен содержать 200 OK):
wget http://satellite.example.com/ks/dist/ks-rhel-i386-server-5-u3
--2011-08-19 15:06:55--  http://satellite.example.com/ks/dist/ks-rhel-i386-server-5-u3
Resolving satellite.example.com... 10.10.77.131
Connecting to satellite.example.com|10.10.77.131|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 0 [text/plain]
Saving to: `ks-rhel-i386-server-5-u3.1'
2011-08-19 15:06:55 (0.00 B/s) - `ks-rhel-i386-server-5-u3.1' saved [0/0]
Если вывод не содержит 200 OK, проверьте сообщения об ошибках. В access_log можно проверить, какой именно файл Anaconda пытается загрузить:
# grep chkconfig /var/log/httpd/access_log
10.10.77.131 - - [19/Aug/2011:15:12:36 -0400] "GET /rhn/common/DownloadFile.do?url=/ks/dist/ks-rhel-i386-server-
5-u3/Server  /chkconfig-1.3.30.1-2.i386.rpm HTTP/1.1" 206 24744 "-" "urlgrabber/3.1.0 yum/3.2.19"
10.10.76.143 - - [19/Aug/2011:15:12:36 -0400] "GET /ks/dist/ks-rhel-i386-server-5-u3/Server/chkconfig-
1.3.30.1-2.i386.rpm HTTP/1.1" 206 24744 "-" "urlgrabber/3.1.0 yum/3.2.19"
10.10.76.143 - - [19/Aug/2011:15:14:20 -0400] "GET /ks/dist/ks-rhel-i386-server-5-u3/Server/chkconfig-  
1.3.30.1-2.i386.rpm HTTP/1.1" 200 162580 "-" "urlgrabber/3.1.0 yum/3.2.19"
10.10.77.131 - - [19/Aug/2011:15:14:20 -0400] "GET /rhn/common/DownloadFile.do?url=/ks/dist/ks-rhel-i386-server- 
5-u3/Server/chkconfig-1.3.30.1-2.i386.rpm HTTP/1.1" 200 162580 "-" "urlgrabber/3.1.0 yum/3.2.19"
Если запросы не регистрируются в access_log, возможно, проблема скрывается в сетевых настройках. Если запросы есть, но они генерируют ошибки, надо проверить журналы ошибок.
Можно попробовать загрузить файл вручную:
wget http://satellite.example.com/ks/dist/ks-rhel-i386-server-5-u3/Server/chkconfig-1.3.30.1-2.i386.rpm

5.3. Отладочные сообщения

Вопрос:
Я получаю по электронной почте сообщения с темой "WEB TRACEBACK". Что это значит?
Ответ:
Пример письма:
Subject: WEB TRACEBACK from satellite.example.com
Date: Wed, 19 Aug 2011 20:28:01 -0400
From: RHN Satellite <dev-null@redhat.com>
To: admin@example.com

java.lang.RuntimeException: XmlRpcException calling cobbler.
	at com.redhat.rhn.manager.kickstart.cobbler.CobblerXMLRPCHelper.invokeMethod(CobblerXMLRPCHelper.java:72)
	at com.redhat.rhn.taskomatic.task.CobblerSyncTask.execute(CobblerSyncTask.java:76)
	at com.redhat.rhn.taskomatic.task.SingleThreadedTestableTask.execute(SingleThreadedTestableTask.java:54)
	at org.quartz.core.JobRunShell.run(JobRunShell.java:203)
	at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:520)
Caused by: redstone.xmlrpc.XmlRpcException: The response could not be parsed.
	at redstone.xmlrpc.XmlRpcClient.handleResponse(XmlRpcClient.java:434)
	at redstone.xmlrpc.XmlRpcClient.endCall(XmlRpcClient.java:376)
	at redstone.xmlrpc.XmlRpcClient.invoke(XmlRpcClient.java:165)
	at com.redhat.rhn.manager.kickstart.cobbler.CobblerXMLRPCHelper.invokeMethod(CobblerXMLRPCHelper.java:69)
	... 4 more
Caused by: java.io.IOException: Server returned HTTP response code: 503 for URL: http://someserver.example.com:80/cobbler_api
	at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1236)
	at redstone.xmlrpc.XmlRpcClient.handleResponse(XmlRpcClient.java:420)
	... 7 more
Здесь сообщается о том, что Cobbler не может связаться с taskomatic. Можно сделать следующее:
  • Выполните service httpd status, чтобы проверить статус работы httpd.
  • Выполните service cobblerd status, чтобы проверить статус работы cobblerd.
  • Убедитесь, что правила межсетевого экрана не запрещают подключения localhost.

5.4. Регистрация

Вопрос:
Почему rhnreg_ks возвращает ошибку «Не удалось получить ID системы»?
Ответ:
В конце файла кикстарта есть секция %post, которая среди прочего содержит команды регистрации компьютера на RHN Satellite:
# begin Red Hat management server registration
mkdir -p /usr/share/rhn/
wget http://satellite.example.com/pub/RHN-ORG-TRUSTED-SSL-CERT -O /usr/share/rhn/RHN-ORG-TRUSTED-SSL-CERT   
perl -npe 's/RHNS-CA-CERT/RHN-ORG-TRUSTED-SSL-CERT/g' -i /etc/sysconfig/rhn/*  
rhnreg_ks --serverUrl=https://satellite.example.com/XMLRPC --sslCACert=/usr/share/rhn/RHN-ORG-TRUSTED-SSL-CERT --activationkey=1-c8d01e2f23c6bbaedd0f6507e9ac079d
# end Red Hat management server registration
В этой секции выполняются следующие действия:
  • Создание каталога для хранения сертификата SSL.
  • Загрузка сертификата SSL, который будет использоваться в процессе регистрации.
  • Замена строк в сертификате в соответствии с файлами конфигурации rhn-register и регистрация системы на RHN Satellite. Каждый профиль кикстарта содержит ключ активации, который используется для выделения системе каналов и полномочий. При переустановке системы ключ активации поможет выбрать тот же профиль, который использовался для первоначальной установки.
В случае rhnreg_ks в файле ks-post.log будут зарегистрированы сообщения:
ERROR: unable to read system id.
Эти ошибки также возникают при попытке выполнения rhn_check для незарегистрированной системы.
Для идентификации проблемы можно поочередно скопировать четыре шага из файла кикстарта и выполнить их в окне терминала. Это поможет определить, какое действие приводит к ошибке.

5.5. Файловая структура кикстарта

Вопрос:
Где расположены файлы кикстарта?
Ответ:
Файлы кикстарта хранятся в /var/lib/rhn/kickstarts/. Настроенные вручную параметры хранятся в подкаталоге upload/, а параметры, созданные в ходе работы помощника — в wizard/.
Стандартный кикстарт: /var/lib/rhn/kickstarts/upload/$profile_name--$org_id.cfg
Автоматически созданный кикстарт: /var/lib/rhn/kickstarts/wizard/$profile_name--$org_id.cfg
Вопрос:
Где хранятся фрагменты Cobbler?
Ответ:
Фрагменты Cobbler хранятся в /var/lib/rhn/kickstarts/snippets. Для обращения к ним используется ссылка /var/lib/cobbler/snippets/spacewalk.
Фрагменты:  /var/lib/rhn/kickstarts/snippets/$org_id/$snippet_name

Важно

Пакеты RHN Satellite будут обращаться к стандартным каталогам Cobbler, поэтому не следует изменять стандартное размещение файлов.

Приложение A. История переиздания

История переиздания
Издание 4-2.3.4002013-10-31Rüdiger Landmann
Rebuild with publican 4.0.0
Издание 4-2.3Thu Apr 18 2013Yulia Poyarkova
Перевод на русский язык.
Издание 4-2.2Mon Mar 25 2013Yulia Poyarkova
Перевод на русский язык.
Издание 4-2.1Thu Feb 21 2013Yulia Poyarkova
Синхронизация с кодом XML 4-2.
Издание 4-2Wed Sept 19 2012Dan Macpherson
Сборка для 5.5
Издание 4-1Thu Aug 9 2012Athene Chan
Подготовлен к публикации.
Издание 4-0Mon June 25 2012Athene Chan
Обновлены главы 1-2.
Обновлены главы 3-5.
Исправлена строка iptables (BZ#787348).
Дополнения в секции кикстарта (BZ#702529).
Сообщение о том, что загрузочные образы Cobbler не поддерживаются (BZ#797688).
Издание 3-0Thu May 31 2012Athene Chan
Исправлена пунктуация в секции кикстарта (BZ#826803).
Незначительные изменения в секции кикстарта.
Издание 2-0Thu May 24 2012Athene Chan
Перефразировано предложение в секции taskomatic (BZ#783339).
Замена s390x на IBM System z (BZ#783340).
Издание 1-3Mon Aug 15 2011Lana Brindley
Включение z-stream в y-stream.
Издание 1-2Wed Jun 15 2011Lana Brindley
Подготовлен к локализации.
Издание 1-1Fri May 27 2011Lana Brindley
Обновления команды локализации.
Издание 1-0Fri May 6, 2011Lana Brindley
Контроль качества.
Подготовлен к переводу.
Издание 0-8Thu May 5, 2011Lana Brindley
Контроль качества (BZ#701822).
Издание 0-7Thu April 14, 2011Lana Brindley
Технические исправления
Издание 0-6Wed March 23, 2011Lana Brindley
Подготовка к технической редакции
Издание 0-5Tue March 22, 2011Lana Brindley
BZ#666435
BZ#666846
BZ#678080
BZ#682364
Издание 0-4Tue March 22, 2011Lana Brindley
Диагностика проблем
Издание 0-3Mon March 21, 2011Lana Brindley
Группы серверов Satellite
Издание 0-2Thu March 17, 2011Lana Brindley
Введение
Кикстарт
Дополнительные команды
Изменение структуры документа
Издание 0-1Wed Jan 5, 2011Lana Brindley
Новая структура документа
Издание 0-0Tue Dec 21, 2010Lana Brindley
Создание документа на основе руководства по развертыванию RHN Satellite.

Юридическое уведомление

Copyright © 2011 Red Hat, Inc.
This document is licensed by Red Hat under the Creative Commons Attribution-ShareAlike 3.0 Unported License. If you distribute this document, or a modified version of it, you must provide attribution to Red Hat, Inc. and provide a link to the original. If the document is modified, all Red Hat trademarks must be removed.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.