Добавить в избранное | Сделать стартовой страницей

Большая Linux библиотека для пользователей OS Linux и ПО для нее
Есть что сказать? Нужен совет? Посети наш форум.


При поддержке
Продвижение сайта
Продвижение сайта
Раскрутка сайта
Создание сайта
Оптимизация сайта
Интернет реклама
Аудит сайта
Администрирование сервера
настройка сервера
установка сервера
аренда сервера
Администрирование сервера
администрирование сервера
настройка сервера
аренда сервера
Rambler's Top100


Пингвин с полпинка (автоматизация установи системы).

Автор : Сергей А.ЯРЕМЧУК
Так уж получилось, что за долгое время общения с компьютером Линуксов мне пришлось установить, наверное, больше, чем всех остальных систем вместе взятых, особенно за последний год. Не знаю, как кому, а для меня это уже довольно скучное и будничное мероприятие. Если честно, я даже иногда радуюсь возникающим проблемам - хоть разнообразие какое-то. Причем, хочу сказать, что эта скука распространяется только на дистрибутивы с графическим инсталлятором. В других как-то скучать особенно не приходятся - постоянно что-то вводишь, контролируешь, да и об устанавливаемых пакетах там особенно никто не спрашивает, и так их там с гулькин нос, в результате, сама установка у меня редко превышает полчаса. А что в графической оболочке - щелкаешь одну и ту же кнопку "Вперед" (или "Далее"). Скукота, да и только. А особенно надоедает функция выбора пакетов. Можно, конечно свалить все в кучу, да места жалко, вот и приходится убирать все лишнее при инсталляции, чтобы не валялось бесполезным грузом на жестком диске. А лишнего там бывает ой как много, особенно на многодисковых дистрибутивах.

Ситуация обостряется еще тем, что я люблю после установки немного поэкспериментировать, иногда с последствиями. Поэтому приходится иногда повторять эту нудную операцию сначала, а еще друзья просят помочь, а еще… Все это время думал, нельзя ли как то автоматизировать процесс, чтобы раз - и готово. Но для этого ведь должна уже быть какая-то поддержка в самом дистрибутиве т.е. придется как минимум его разделать. В общем, так продолжалось довольно долго, пока во время очередной переинсталляции RedHat'a 9 не обратил внимание на сообщение (Рис. 1).

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

И так про все 887 пакетов, которые установлены. То есть, после инсталляции можно спокойно просмотреть, что вам там навалили, и после этого уже не удивляться, куда свободное место делось.

А вот второй файл - /root/anaconda-ks.cfg - меня удивил и озадачил одновременно. Посмотрите сами, что там нашлось (не все, конечно):

Оказалось, что в этом файле расписаны ответы на все вопросы, на которые пришлось отвечать во время инсталляции Красной Шапки. Как видите, здесь можно найти все: системные языки, клавиатурную раскладку, конфигурации мыши и графической подсистемы, введенный пароль root'a… Дополнительно закомментированы параметры разбивки жесткого диска; забегая немного вперед, скажу, что это сделано специально - при разбивке диска система остановится и позволит это сделать вручную. И напоследок, указаны сначала все группы приложений, которые можно установить, а затем и устанавливаемые пакеты, не входящие в выбранные группы или удаленные из них. Как видите, чтобы добавить нужный пакет, достаточно прописать его в файл без номера версии, а убрать можно, добавив знак минус (–) перед пакетом (список всех пакетов можно найти в /RedHat/base/comps.xml). Наличие такого файла сразу наводит на некоторые подозрения, состоятельность которых я и пошел проверять на сайт компании RedHat. И действительно, по адресу http://www.redhat.com/docs среди прочих документов нашлись и искомые: RedHat Linux KickStart HOWTO, датированный аж 1999 годом (сколько раз я проходил мимо него!) и RedHat Customization Guide. После прочтения которых, мягко говоря, я очень расстроился. Оказалось, что в Шапках, начиная с пятой версии, имеется система, позволяющая быстро установить большое количество идентичных Linux'ов на основании заранее определенной конфигурации, занесенной в файл. При этом, кроме основных предопределенных действий, есть возможность выполнить любое количество дополнительных пользовательских команд (например, соединиться с Интернетом, скачать программу и установить ее или добавить запись в конфигурационный файл). И вообще, как вы поняли, при частой переустановке или необходимости устанавливать Linux на несколько компьютеров с одинаковой конфигурацией это, как говорится, "то, что доктор прописал", - лучшего и придумать нельзя. Как же пользоваться этим файлом? А очень просто. Сначала переименовываем файл anaconda-ks.cfg в ks.cfg (имя, разыскиваемое по умолчанию) и записываем его на дискету. Теперь необходимо загрузиться, как обычно, и при появлении приглашения ввести:

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

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

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

Но это еще не все. Допустим, необходимо установить дистрибутив на совсем другой компьютер(ы); возиться долго не хочется, а править файл вручную влом. И не надо - в RedHat'e есть утилита, которая в удобной графической форме позволяет выставить все нужные параметры и затем создать нужный файл. Вызывается она очень просто: в командной строке набираем redhat-config-kickstart, и вслед за этим появляется окно (рис. 2-7). Как видите, при помощи этой утилиты можно указать все параметры, которые могут встретиться при инсталляции, вплоть до задания размеров разделов и файловых систем на них (в том числе и RAID-массивов), настройки системы Х-Window и выбора пакетов для установки. А в конце можно приписать команды, которые система должна выполнить до и после установки. После выбора всех пунктов настройки сохраняются в указанный файл.

   

   

   

Теперь восстановление системы (данные, я надеюсь, вы и так бэкапите) после сбоев может проводить двумя способами. Первый - архивация всей системы, что требует наличия лишнего свободного места на жестком диске и кучи болванок, а к тому же и мощного процессора, иначе процедура может заметно затянуться. Второй способ - восстановление при помощи kickstart'a. При этом, учитывая, что все вновь устанавливаемые программы находятся в /usr/local, а настройки пользователя - в /home (которые желательно размещать на отдельном разделе жесткого диска), их бэкапим как обычно, а чтобы не настраивать заново всю систему, также сохраняем и каталог /etc. Остальное переустанавливаем при помощи kickstart'a, а затем поверх распаковываем архивы с /usr/local, /home и /etc - если, конечно, их затронули разрушения. После этого система будет работать как ни в чем не бывало. Для форматирования достаточно будет указать только корневой каталог (если только не повреждены другие), а остальные разделы примонтируются автоматически, т.к. данные уже имеются в старом /etc/fstab. При этом архивы хорошо бы заранее положить в определенное место (а создавать их можно вообще автоматически, при помощи cron, - предположим, раз в неделю), а в конец kickstart-файла добавить скриптик, реализующий их последующую распаковку. А чтобы файл держать всегда в боевой готовности, чтобы не приходилось потом убирать мусор, желательно при каждом удалении ненужной программы, входящей в комплект дистрибутива, добавлять туда соответствующую строчку. Эту работу можно опять же возложить на плечи скрипта (как я уже не раз говорил, ручная работа - это не для Unix). Вот пример такого скрипта:

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

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

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

Linux forever!


Обсудить данную тему на нашем форуме "Все о Linux"