Пингвин с одного пинка::Журнал СА 8.2003
www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Наука и технологии
Подписка
Где купить
Авторам
Рекламодателям
Магазин
Архив номеров
Вакансии
Контакты
   

  Опросы

Какие курсы вы бы выбрали для себя?  

Очные
Онлайновые
Платные
Бесплатные
Я и так все знаю

 Читать далее...

1001 и 1 книга  
20.12.2019г.
Просмотров: 4900
Комментарии: 0
Dr.Web: всё под контролем

 Читать далее...

04.12.2019г.
Просмотров: 6152
Комментарии: 0
Особенности сертификаций по этичному хакингу

 Читать далее...

28.05.2019г.
Просмотров: 7390
Комментарии: 2
Анализ вредоносных программ

 Читать далее...

28.05.2019г.
Просмотров: 7734
Комментарии: 1
Микросервисы и контейнеры Docker

 Читать далее...

28.05.2019г.
Просмотров: 6786
Комментарии: 0
Django 2 в примерах

 Читать далее...

Друзья сайта  

Форум системных администраторов  

sysadmins.ru

 Пингвин с одного пинка

Архив номеров / 2003 / Выпуск №8 (9) / Пингвин с одного пинка

Рубрика: Администрирование /  Продукты и решения

Сергей Яремчук СЕРГЕЙ ЯРЕМЧУК, фрилансер. Автор более 800 статей и шести книг. С «СА» с первого номера. Интересы: сетевые технологии, защита информации, свободные ОС

Пингвин с одного пинка

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

Все началось с того, что при очередной установке RedHat 9 я не обратил внимание на сообщение, в котором были указаны файлы протокола установки и некий файл kickstart.


Если с первым файлом /root/install.log все ясно с первого взгляда, в нем содержится список всех установленных пакетов (как не убирал лишнее, все равно оказалось много хлама) и ошибки при установке некоторых из этих пакетов. Приблизительно в таком виде:

Установка 887 пакетов

Установка glibc-common-2.3.2-11.9.

….

Установка hwdata-0.75-1.

Файл OMF [/usr/local/share/omf/file-roller/file-roller-C.omf] не является допустимым

с точки зрения ScrollKeeper-OMF DTD: /usr/share/xml/scrollkeeper/dtds/scrollkeeper-omf.dtd

Невозможно зарегистрировать /usr/local/share/omf/file-roller/file-roller-C.omf

Установка redhat-logos-1.1.12-1

И так все 887 пакетов, которые установлены, поэтому после инсталляции можно спокойно просмотреть, что там все-таки наустанавливали и после этого уже не удивляться, куда все свободное место делось. А вот второй файл /root/anaconda-ks.cfg меня удивил и озадачил одновременно. Посмотрите сами, что там нашлось:

# Kickstart file automatically generated by anaconda.

install

lang ru_RU.UTF-8

langsupport --default ru_RU.UTF-8 ru_RU.UTF-8 ru_UA.UTF-8 uk_UA.UTF-8

keyboard ru_win

mouse genericwheelps/2 --device psaux

xconfig --card "RIVA128" --videoram 4096 --hsync 30-70 --vsync 50-120 --resolution

1024x768 --depth 16 --startxonboot  --defaultdesktop gnome

network --device eth0 --bootproto static --ip 192.168.0.4 --netmask 255.255.255.0 --hostname grinder

rootpw --iscrypted $1(zf6ola?s$lNcDbUeKI9l&&AKJ06x4S0

firewall --medium --trust=eth0

authconfig --enableshadow --enablemd5 --enablesmbauth --smbservers grinder --smbworkgroup Gljuk

timezone Europe/Kiev

bootloader --location=mbr

# The following is the partition information you requested

# Note that any partitions you deleted are not expressed

# here so unless you clear all partitions first, this is

# not guaranteed to work

#clearpart --linux

#part / --fstype ext3 --onpart hda11

#part /mnt/win_c --fstype vfat --noformat --onpart hda2

#part /mnt/win_e --fstype vfat --noformat --onpart hda8

#part /mnt/win_d --fstype vfat --noformat --onpart hda7

#part /usr/local --fstype ext3 --noformat --onpart hda6

#part /mnt/other --fstype reiserfs --noformat --onpart hda9

#part /home --fstype ext3 --noformat --onpart hda10

#part swap --onpart hda5 

%packages

@ Administration Tools

@ GNOME Desktop Environment

@ Graphical Internet

@ Graphics

@ Russian Support

@ Sound and Video

@ System Tools

@ Ukrainian Support

@ X Window System

-kernel-pcmcia-cs

galeon

-gtkam

ethereal-gnome

mc

xmms-skins

fonts-KOI8-R-75dpi

Оказалось, что в этом файле расписаны ответы буквально на все вопросы, на которые пришлось отвечать во время инсталляции «Красной Шапки». Как видите, здесь можно найти все: системные языки, клавиатурную раскладку, конфигурацию мыши, графическую подсистему, введенный пароль root. Дополнительно закомментированы параметры разбивки жесткого диска, забегая немного вперед, скажу, что это сделано специально: при разбивке диска система остановится и позволит это сделать вручную. И напоследок указаны сначала все группы приложений, которые можно установить, а затем устанавливаемые пакеты, не входящие в выбранные группы или удаленные из них. Как видите, чтобы добавить нужный пакет, достаточно прописать его в файл без номера версии, а убрать можно, добавив знак минус «-» перед пакетом (список всех пакетов можно найти в /RedHat/base/comps.xml). Наличие такого файла сразу наводит на некоторые мысли, правильность которых я и пошел проверять на сайт компании RedHat. И действительно, по адресу http://www.redhat.com/docs среди прочих документов нашлись и искомые: RedHat Linux KickStart HOWTO, датированный аж 1999 годом (самое интересное, что я много раз проходил мимо него) и RedHat Customization Guide. После прочтения которых очень расстроился. Оказалось, что в «Шапках», начиная с 5 версии, имеется система, позволяющая быстро установить большое количество идентичных Linux на основании заранее определенной конфигурации, занесенной в файл. При этом, кроме основных предопределенных действий, есть возможность выполнить любое количество дополнительных пользовательских команд (например, соединиться с Интернетом, скачать программу и установить ее или добавить запись в конфигурационный файл). И вообще, как вы поняли, при частой переустановке или необходимости устанавливать Linux на несколько компьютеров с одинаковой конфигурацией это, как говорится, «то, что доктор прописал», лучшего и придумать нельзя.

Как же пользоваться этим файлом? А очень просто: сначала переименовываем файл anaconda-ks.cfg в ks.cfg (имя, разыскиваемое по умолчанию) и записываем его на дискету. Теперь необходимо загрузиться как обычно и при появлении приглашения ввести:

boot: linux ks=floppy

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

boot: linux ks=hd:fd0/anaconda-ks.cfg

Интересно, что если просто ввести в строке приглашения:

boot: linux ks

То система будет пытаться произвести инсталляцию при помощи NFS, используя BOOTP и DHCP. То есть попросту говоря, при постоянной необходимости множественной установки RedHat можно не заготавливать кучи CD-дисков, а создать в сети сервер NFS (Network File System) и брать все установочные файлы оттуда, находясь вообще неизвестно где, и даже диски при этом не придется менять.

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

redhat-config-kickstart

и вслед за этим появляется окно. Как вы видите на скриншотах, при помощи этой утилиты можно указать все параметры, которые могут встретиться при инсталляции вплоть до задания размеров разделов и файловых систем на них (в том числе и RAID-массивов), настройки системы Х-Window и выбора пакетов для установки, в конце можно приписать команды, которые система должна выполнить до и после установки. После выбора всех пунктов настройки сохраняются в указанный файл.


Теперь восстановление системы (данные, я надеюсь, вы и так бэкапите) после сбоев может происходить двумя способами. Первый – архивация всей системы, что требует наличия лишнего свободного места как на жестком диске, так и вдоволь болванок и мощного процессора, иначе процедура может заметно затянуться.

Второй способ – восстановление при помощи kickstart. При этом учитывая, что все вновь устанавливаемые программы находятся в /usr/local, а настройки пользователя в /home (которые желательно размещать на отдельном разделе жесткого диска), их бэкапим как обычно, а чтобы не настраивать заново всю систему, то так же сохраняем и каталог /etc. Остальное переустанавливаем при помощи kickstart, а затем поверх распаковываем архивы с /usr/local, /home и /etc (может еще и /var в зависимости от назначения компьютера), если, конечно, их затронули разрушения.

После этого система будет работать как ни в чем не бывало. Для форматирования достаточно будет указать только корневой каталог (если только не повреждены другие), а остальные разделы примонтируются автоматически, т.к. данные уже имеются в старом /etc/fstab. При этом архивы можно положить в заранее определенное место (и создавать их вообще автоматически при помощи cron, предположим, раз в неделю), а в конец kickstart-файла добавить скриптик, реализующий их последующую распаковку. А чтобы файл держать всегда в боевой готовности и не убирать затем лишнего – при каждом удалении ненужной программы, входящей в комплект дистрибутива, добавлять туда соответствующую строчку. Это можно опять же возложить на плечи скрипта (ручная работа – это вообще не стиль для UNIX).

Например, такого:

#! /bin/sh

for arg in $*; do

rpm -е $1 || ехit $?

echo "- $1 " >> /root/anaconda-ks.cfg && echo "Файл $1 успешно удален, информация занесена в /root/anaconda-ks.cfg "

shift

done

После делаем его исполняемым (chmod +x), называем попонятнее: rpm_del (для новичков вообще рекомендую сделать себе алиасов попонятнее, наподобие FreeBSD, то есть rpm_del = «rpm -e», rpm_install = «rpm -Uvh» и т. д.) и перемещаем в каталог, где его найдет переменная $PATH (/usr/local/bin, например). Теперь из-под root вводим:

# rpm_del mozilla xemacs docbook-style-xsl

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

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


Комментарии отсутствуют

Добавить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-41
Fax: (499) 277-12-45
E-mail: sa@samag.ru