Введение в круг понятий. UNIX/Linux  
  Сетевая установка - обзор возможностей  


Настоящие материалы являются авторскими, права автора защищены Законами РФ и международными соглашениями. Для использования настоящих материалов вам необходимо ознакомиться и полностью принять лицензионное соглашение. В случае, если вы не принимаете настоящее лицензионное соглашение полностью, вы не имеете права пользоваться настоящими материалами


ОС Linux реализует множество варинтов установки новой системы, и наиболее распространённый - это установка вручную. Однако в случае, когда парк превышает несколько машин, более удобным является предварительная подготовка инфраструктуры сетевой установки и последующая автоматизированная установка. Эта возможность обеспечивается несколькими технологиями. Это сетевая загрузка PXE, встроеные в инсталлятор ОС возможности приёма файла ответов и получения дистрибутива из сетевого источника. Для дистрибутивов RHEL и CentOS Linux образы ядра Linux и initrd для начальной сетевой загрузки серез PXE уже содержатся в самом дистрибутиве

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

 
  Сетевая установка. Настройка инфраструктуры  

Ниже описывается заведомо работающий и простой в конфигурировании вариант резвёртывания среды для сетевой установки Linux на примере Linux CentOS 5.3

  • В операционную систему необходимо доустановить нужные пакеты:
    yum install dhcp tftp-server syslinux
     
  • Сервер DHCP, развёрнутый в локальной сети ранее, или установленный в предидущем пункте, необходимо доконфигурировать. В конфигурацию dhcp добавить
    allow booting ;
    allow bootp ;
    next-server 192.168.0.1 ;
    filename "pxelinux.0" ;
    # - опционально
    range dynamic-bootp 192.168.0.4 192.168.0.254 ;
     
  • Для сервера TFTP необходимо провести следующие манипуляции:
    • Копируем в корень PXE загрузчик из пакета syslinux. Для Cent OS эта задача выполняется при установке пакета syslinux, причём копирование просиходит в папку /tftpboot/linux-install. Для Debian необходимо скачать небольшой архив netboot.tag.gz с серверов Debian. но он должен соответствовать версии дистрибутива установки, или же будет получено сообщение об ошибке. Для других RPM дистрибутивов вариантом может являться команда:
      cp $(rpm -ql syslinux | grep pxelinux.0) /tftpboot/
       
    • Для каждого дистрибутива, который будет доступен для сетевой установки, создать каталог и скопировать PXE версию ядра и initrd файла дистрибутива:

      mkdir /tftpboot/linux-install/{centos_5.5,rhel_5.5}
      cp /mnt/CentOS_5.5/images/pxeboot/* /tftpboot/linux-install/centos_5.5/
      cp /mnt/RHEL_5.5/images/pxeboot/* /tftpboot/linux-install/rhel_5.5/
       
    • --- создать файл подсказки /var/lib/tftpboot/boot.msg. Пример содержания:
      ninst_cnt55_001 - install CENTOS 5.5
      ninst_rhel55_001 - install RHEL 5.5
      local - boot local (default)
       
    • --- создать конфигурационный файл PXE загрузчика:
      для Cent OS уже всё лежит в подпапке linux-install, иначе говорми
      mkdir /tftpboot/pxelinux.cfg; echo > /var/lib/tftpboot/pxelinux.cfg/default

      # пример содержания
      default local
      timeout 100
      prompt 1
      display msgs/boot.msg

      label local
        localboot 1

      label ninst_cnt55_001
        kernel centos_5.5/vmlinuz
        append initrd=centos_5.5/initrd.img ks=http://192.168.0.2/ks/ks.cfg

      label ninst_rhel55_001
        kernel rhel_5.5/vmlinuz
        append initrd=rhel_5.5/initrd.img ks=http://192.168.0.2/ks/ks_rhel.cfg
       
    • для httpd. Считаем Apache развёрнутым предварительно, и смонтированные дистрибутивы смапированы в папки сайта (или же в папках размещены копии дисков дистрибутивов). Ниже приведён пример добавления конфигурационного блока для раздела, отдающего дистрибутив в сеть по протоколу http (здесь важны закрывающие каталог слэши)

      Alias /netinstall_centos_5.3/ "/mnt/Distributs/CentOS/CentOS.5.3/"
      <Directory "/mnt/Distributs/CentOS/CentOS.5.3/">
         Options Indexes MultiViews
         AllowOverride None
         Order allow,deny
         Allow from all
      </Directory>

      Alias /netinstall_rhel_5.5/ "/mnt/Distributs/RHEL/RHEL_5.5/"
      <Directory "/mnt/Distributs/RHEL/RHEL_5.5/">
         Options Indexes
         AllowOverride None
         Order allow,deny
         Allow from all
      </Directory>
       
  • Возможность создания меню означает возможность указания различных файлов ответов, то есть не только разичных дистрибутивов, но и различных конфигураций. Это позволяет автоматизировать установку и восстановление типовых серверных и пользовательских конфигураций относительно малыми трудозатратами, заранее подготовив соответствующие типовые файлы ответов. В файле ответа (kickstart для rhel/rpm - дистрибутивов) необходимо не забыть указать источник - откуда будет браться дистрибутив, например
    url --url http://IP_сервера/путь_к_корню_дистрибутива/
     

Примечание 1. PXE ищет конфигурационный файл, как описано в документации к пакету syslinux. Сначала MAC адрес, потом IP в формате, который можно получить командой gethostip из того же пакета syslinux, и потом уже файл с именем default. Это позволяет готовить разные конфигурационные файлы для полностью автоматизированной установки различных машин на основании разных ks - файлов, указанных в разных конфигурационных файлах PXE (удобно использовать с символическими ссылками)

Примечание 2. Возможны варианты в конфигурировании DHCP, которые описаны в документации пакета syslinux


Белонин С.С. (С), июль 2004 года

(даты последующих модификаций не фиксируются)


 
     
   
   
    Нравится      

(C) Белонин С.С., 2000-2018. Дата последней модификации страницы:2018-01-09 13:25:37