пятница, 4 июля 2008 г.

Развертывание типового (эталонного) образа Ubuntu Linux

В конторе периодически закупаются новые компьютеры и сотрудникам IT-отдела приходится отрываться от более интересных дел и заниматься рутиной в виде установки и настройки операционной системы. Установка Ubuntu традиционным способом с помощью компакт-диска, установка драйверов, обновлений и дополнительных программ из интернета, настройка всего занимают слишком много времени. Одним из способов оптимизации процесса является создание типового образа операционной системы и затем быстрое его развертывание на новых компьютерах.

Создание эталонного образа.

Прежде всего необходимо создать эталонный образ Ubuntu. Для этого нам потребуется эмулятор виртуальных машин, например VirtualBox или VMWare. Далее:

  1. Устанавливаем Ubuntu в виртуальной машине.
  2. Настраиваем установленную операционную систему. Например так:

    • включить основные и дополнительные репозитарии и произвести обновление пакетов;
    • установить полную локализацию системы;
    • установить мультимедийные кодеки;
    • установить пакеты с драйверами для видео карт nvidia и ati;
    • установить flash плугин для браузера;
    • установить плугин для открытия документов MSOffice 2007 (*.docx и др.) в OpenOffice;
    • установить необходимые программы и утилиты: ssh сервер, vnc сервер, unrar, wine, virtualbox и много чего ещё...;
    • указать сетевые настройки, например адреса dns и ntp серверов, маршруты;
    • отключить загрузку не нужных демонов;
    • отключить запуск не нужных заданий по расписанию cron;
    • любые другие программы и/или настройки.
  3. Настройка профиля пользователя по умолчанию. Для этого создаем пользователя, например testuser, логинимся под ним и производим настройку. Например:

    • отключить эффекты рабочего стола;
    • разрешить удаленный доступ к рабочему столу (vnc) и задать пароль для него;
    • прописать настройки соединения в браузере: проски-сервер и прочее;
    • в редакторе меню отключить запуск некоторых программ, например подменю "Игры";
    • в настройках сеанса, отключить запуск не нужных программ;
    • любые другие настройки.

    После завершения настройки профиля, копируем содержимое /home/testuser в /etc/skel. Делаем владельцом пользователя root:

    sudo chown -R root:root /etc/skel

    Просматриваем директорию /etc/skel, удаляем все лишнее, заменяем в файлах абсолюный путь /home/testuser на относительный ~/.

    Теперь при создании нового пользователя в его домашнюю директорию будет копироваться содержимое /etc/skel.

  4. Для создания образа будем использовать livecd дистрибутив System Rescue CD.

    После загрузки, поднимаем сеть:

    sysresccd ~ # net-setup

    Монтируем директорию по сети, куда мы будем копировать образ:

    sysresccd ~ # mkdir /mnt/etalon

    пример для sftp:

    sysresccd ~ # mount -t fuse sshfs#login@192.168.0.1:/etalon /mnt/etalon

    пример для smb:

    sysresccd ~ # mount -t cifs -o user=login //192.168.0.2/etalon /mnt/etalon

    Далее, монтируем жесткий диск виртуальной машины:

    sysresccd ~ # mkdir /mnt/sda1
    sysresccd ~ # mount /dev/sda1 /mnt/sda1

    Создаем образ обычной утилитой tar:

    sysresccd ~ # cd /mnt/sda1
    sysresccd sda1 # tar cvzf /mnt/etalon/etalon-ubuntu8.04-20080704.tar.gz *

Образ операционной системы создан. У меня файл образа занимает около 1,5 Гб. Остается только записать его на dvd болванку.

Развертывание эталонного образа на новом компьютере

Развертывание образа эта операция ради которой и затевалось создание самого образа. Здесь нас снова поможет незаменимый инструмент системного администратора System Rescue CD. Загружаем новый компьютер с его помощью, при загрузке вводим опции, чтобы после можно было освободить dvd привод:

rescuecd docache doeject

Вытаскиваем livecd, устанавливаем в привод болванку с образом. Далее:

  1. Разметка диска. Например: все место под корневой раздел, файловая система reiserfs, под swap 2ГБ:

    sysresccd ~ # сfdisk /dev/sda
    sysresccd ~ # mkfs.reiserfs /dev/sda1
    sysresccd ~ # mkswap /dev/sda2
  2. Монтируем диски и разворачиваем эталон:

    sysresccd ~ # mkdir /mnt/sda1
    sysresccd ~ # mount /dev/sda1 /mnt/sda1
    ...
    sysresccd ~ # mkdir /mnt/etalon
    sysresccd ~ # mount /dev/cdrom /mnt/etalon
    ...
    sysresccd ~ # tar -С /mnt/sda1 xvzf /mnt/etalon/etalon-ubuntu8.04-20080704.tar.gz
  3. Правим файлы /mnt/sda1/etc/fstab и /mnt/sda1/boot/grub/menu.lst чтобы UUID метки дисков соответствовали новым томам. UUID метки можно узнать с помощью команды:

    sysresccd ~ # blkid
  4. Устанавливаем загрузчик grub в mbr область нового диска:

    sysresccd ~ # grub-install --root-directory=/mnt/sda1 /dev/sda

Если все прошло успешно, то мы уже можем загрузить с операционную систему с жесткого диска. Дальше:

  1. Сконфигурируем видео драйвер (в эталоне должен быть установлен универсальный драйвер vesa):

    administrator@etalon:~# sudo dpkg-reconfigure -phigh xserver-xorg

    После перезапуска иксов (Ctrl-Alt-Backspace) должен подняться нормальный видео драйвер.

  2. Сменим имя хоста и сетевые настройки:

    administrator@etalon:~# sudo gedit /etc/hostname
    administrator@etalon:~# sudo gedit /etc/network/interfaces

Компьютер готов к работе. После установки на рабочее место пользователя ещё потребуется настроить принтера, но это уже отдельная история.

После приобретения некоторого опыта установка операционной системы на новый компьютер занимает около 20 минут. Конечно предварительно должно быть потрачено время на создание эталонного образа и периодическое его обновление, но при больших количествах новых компьютеров оно окупается. Данный способ успешно применяется уже 1,5 года.

10 комментариев:

Анонимный комментирует...

Спасибо за подробную инструкцию!
Надо будет на неделе заняться.

Анонимный комментирует...

Не лучше ли будет поднапрячься еще немного, сделать загрузочный cd с помощью isolinux (инструкции: http://syslinux.zytor.com/iso.php), а в загрузочном скрипте initrd прописать автоматическое разбиение диска и разворачивание образа?

Dmitriy Maygurov комментирует...

Если уж "напрягаться ещё немного", то стоит организовать полноценную сетевую установку. Тогда установка новой/замена старой машины вообще сводится к загрузке через PXE - по сути одно нажатие одной кнопке на старте машины.
Ссылку на инструкцию не привожу, ибо мы как раз написанием оной занимаемся.

Unknown комментирует...

Конечно PXE - да, или partimage или http://www.debian.org/releases/stable/i386/ch04s07.html.ru

Анонимный комментирует...

велосипед
это давно обкатанный gentoo-way
странно что вы используете это для ubuntu, неужели там нет возможности собрать полноценный установочный custom cd?

xeim комментирует...

2bappoy
Автоматическое разбиение диска не всегда приемлемо, особенно если дисков несколько.

2Dmitriy Maygurov
С удовольствием почитал бы вашу инструкцию. Одна из причин размещения данной статьи - может кто-нибудь посоветует лучшее решение. Пока вижу один недостаток PXE: при большом количестве офисов надо либо держать несколько серверов PXE либо новые компьютеры все время возить в центральный офис.

Анонимный комментирует...

Как параноик добавлю перегенерацию ssh-ключей:
#rm /etc/ssh/ssh_host
#dpkg-reconfigure openssh-server

А то как-то небезопасно, знаете ли :)

Анонимный комментирует...

Данный способ успешно применяется уже 1,5 года

Анонимный комментирует...

решил проверить инструкцию, только в качестве лайвСД использивал puppyrus

образ сделал без проблем

при разворачивании cтолкнулся с рядом проблем

1, сначало cfdisk как-то криво разбил диск и разворот архива давал ошибки. запустил гпартед он показал ошибки. разбил из под него.

2, потом оказалось что UUID надо менять не только в fstab но и в грубе

3, раздел с подкачкой не получил UUID =/

ну а в остальном все хорошо =)

maddisoncaiazza комментирует...

JW Marriott Spa - Hollywood Casino, St. Charles
Discover cheap deals for JW Marriott Spa in St. Charles starting at $89. Save 문경 출장안마 up 제주도 출장마사지 to 60% off with our 이천 출장샵 Hot Rate deals when 제주도 출장샵 booking a last 충청남도 출장안마 minute hotel room.