Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

00-tech-book

.pdf
Скачиваний:
42
Добавлен:
10.02.2016
Размер:
7.86 Mб
Скачать

host unixbox {

hardware ethernet 00:0c:29:77:9c:9c; fixed-address 192.168.146.129; filename «pxelinux.0»;

option subnet-mask 255.255.255.0; option routers 192.168.146.2; option domain-name «company.ru»; option host-name «unixbox»; next-server 192.168.146.130;

}

}

Запускаем DHCPD или перезагружаем если он был запущен

# service dhcpd restart

TFTP

Устанавливаем пакет tftp-server из репозитория

# yum -y install tftp-server

Теперь необходимо включить tftp в конфигурации xinetd, для этого в файле /etc/xinetd.d/tftp

Меняем “disable = yes” на “disable = no” и включаем xinetd

# service xinetd start

Проверяем что порт tftp-сервера прослушивается (tftp работает на порту 69)

# netstat -nlp | grep :69

udp

0 0 0.0.0.0:69

0.0.0.0:*

3105/xinetd

Syslinux

Пакет содержит набор файлов для загрузки по сети. Нам нужны pxelinux.0 который как загрузочный образ мы будем отдавать через DHCP и menu. c32, с помощью этого файла будет рисоваться более привлекательное меню пользователя.

#cp $(rpm -ql syslinux | grep menu.c32) /tftpboot/

#cp $(rpm -ql syslinux | grep pxelinux.0) /tftpboot/

NFS

По умолчанию в системе скорее всего есть NFS, если нету то поставьте с

помощью yum.

# chkconfig nfs on

Модуль 5. Install-сервер.

 

51

 

 

 

 

 

В файл /etc/exports добавляем запись

echo “/var/install-server/ *(ro,no_root_squash)” >> /etc/exports

Запускаем nfs-сервер

# service nfs start

Проверяем что каталог экспортирован

# exportfs /var/install-server

<world>

Создаем структуру tftp-сервера добавляем контент на сервер

#mkdir -p /tftpboot/{pxelinux.cfg,centos52_x86}

#mkdir -p /var/install-server/centos52_x86

Монтируем наш DVD с CentOS 5.2 и закачиваем содержимое в /var/installserver/centos52_x86

#mount /dev/cdrom /mnt/

#cp -r /mnt/* /var/install-server/centos52_x86/

#cp /var/install-server/centos52_x86/images/pxeboot/* /tftpboot/centos52_x86/

В каталоге /tftpboot/pxelinux.cfg создаем файл default и заполняем его как ниже:

default menu.c32

menu title Linux Install Server. Please choose OS to install. prompt 0

timeout 100

label CentOS 5.2 x86 Custom install kernel /centos52_x86/vmlinuz

append initrd=/centos52_x86/initrd.img

label Quit localboot 0

Устанавливаем ОС по сети

После всех сделанных манипуляций которые описаны выше, можем приступить к установке ОС. Стартуем нашу машину с MAC-адресом 00:0c:29:77:9c:9c включив в BIOS загрузку по сети. Когда начнется установка все делаем стандартным образом, кроме как в списке откуда будет ставить

52

 

Модуль 5. Install-сервер.

 

 

 

ОС нужно выбрать NFS, далее когда попросят, указать: NFS server name : 192.168.146.130

CentOS directory: /var/install-server/centos52_x86

Дальше устанавливаем ОС и пользуемся на здоровье :)

Автоматизация установки с помощью Kickstart

Для автоматизации нужно создать файл содержащий всю нужную информацию, которая может потребоваться в процесс установки. Такой файл создается программой system-config-kickstart (GUI tool) в любой CentOS с X Window

#yum -y install system-config-kickstart

#system-config-kickstart

После того как мы создали файл с помощью system-config-kickstart его нужно перенести на Install-сервер и сделать доступным по одному из протоколов

– http, nfs или ftp. Поскольку в работе Install-сервера активно используется NFS то и будем использовать ее.

Вмоем случае kickstart-файл лежит в /var/install-server/centos52_x86/ centos52_x86_ks.cfg

Вфайл /tftpboot/pxelinux.cfg/default нужно всего лишь добавить директиву ks с указанием местоположения kickstart-файла. Пример с kickstart-файлом.

default menu.c32

menu title Linux Install Server. Please choose OS to install. prompt 0

timeout 100

label CentOS 5.2 x86 Custom install kernel /centos52_x86/vmlinuz

append initrd=/centos52_x86/initrd.img

label CentOS 5.2 x86 Kickstart Install kernel /centos52_x86/vmlinuz

append initrd=/centos52_x86/initrd.img ks=nfs:192.168.146.135:/var/install-server/ centos52_x86/centos52_x86_ks.cfg

label Quit localboot 0

Теперь выбрав «CentOS 5.2 x86 Kickstart Install» в меню выбора ОС нам

останется только подождать сервера с установленной на нем ОС.

Ниже пример моего Kickstart-файла. Мне захотелось чтобы в установленной

Модуль 5. Install-сервер.

 

53

 

 

 

ОС в настройках sshd была опция «PermitRootLogin yes». Kickstart-файл позволяет не только задавать параметры установки ОС но и выполнять скрипты, до инсталляции (%pre) и после (%post). Таким образом можно написать массу скриптов по тюнингу и за 5-10 минут инсталляции получить полностью готовую ОС.

#platform=x86, AMD64, or Intel EM64T

#System authorization information auth --useshadow --enablemd5

#System bootloader configuration bootloader --location=mbr

#Clear the Master Boot Record

zerombr

#Partition clearing information clearpart --all --initlabel

#Use text mode install

text

#Firewall configuration firewall --disabled

#Run the Setup Agent on first boot firstboot --disable

#System keyboard

keyboard us

#System language lang en_US

#Installation logging level logging --level=info

#Use NFS installation media

nfs --server=192.168.146.130 --dir=/var/install-server/centos52_x86

# Network information

network --bootproto=dhcp --device=eth0 --onboot=on

#Root password

rootpw --iscrypted $1$Bz09jb2I$hfzh2vApqMjG0sEPsAwNr/

#SELinux configuration selinux --disabled

#Do not configure the X Window System skipx

#System timezone

timezone Europe/Moscow

#Install OS instead of upgrade install

#Disk partitioning information

part swap --bytes-per-inode=4096 --fstype=”swap” --size=512 part / --bytes-per-inode=4096 --fstype=”ext3” --grow --size=1 %post --interp /bin/bash

PATH=/somework /bin/mkdir $PATH

/bin/sed -e ‘s/#PermitRootLogin yes/PermitRootLogin yes/g’ /etc/ssh/sshd_config > $PATH/sshd_config_edited

/bin/cp $PATH/sshd_config_edited /etc/ssh/sshd_config /bin/rm -rf $PATH

54

 

Модуль 5. Install-сервер.

 

 

 

%packages

@base

@mysql @mail-server @web-server @system-tools

После того как процесс установки завершится нужно закомментировать строчку “ filename “pxelinux.0”;” в /etc/dhcpd.conf, чтобы после перезагрузки сервераснованеначалсяпроцессустановки.Япробовалпоставить“labelQuit” первым в списке меню, чтобы по таймауту делался localboot 0 (выход из меню и загрузка ОС на сервере), но счетчик банально не отсчитывается. Очевидно

это один из багов syslinux. Скажу что в Debian все работает нормально.

Как видно секции %packages, были установлены базовые утилиты, MySQL, MTA, Apache и системные утилиты.

Установка ОС у меня заняла 5 минут.

Диагностика

В случае возникновения неисправностей используйте tcpdump. Но его также стоит использовать чтобы понять как все работает “изнутри”.

# tcpdump -n -i eth0 “ether host 00:0c:29:25:04:55”

Ну и на всякий случай структура каталога /tftpboot

Резюме

Мы разобрались с простым и эффективным способом быстрой установки ОС по сети.

Домашнее задание

Сделать свой Install-сервер и используя его, установить ОС на клиент. Можно использовать мой kickstart-файл в качестве примера, только не забудьте изменить IP-адрес NFS-сервера и путь к дистрибутиву Linux, пароль на систему будет 111111 (root/111111).

Модуль 5. Install-сервер.

 

55

 

 

 

Xen

Что это такое ?

Виртуализация — это очень эффективная технология построения виртуальной инфраструктуры. Благодаря различным средствам виртуализации стало возможно в рамках одного «железного» сервера настраивать несколько виртуальных.

Зачем это нужно ?

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

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

Эмуляция аппаратуры

Популярный продукт в этой категории: QEMU

На хост-машине создается виртуальная машина которая эмулирует определенную архитектуру. Способ работает медленно но полезен, когда нужно на сервере запустить ОС другой архитектуры.

Полная виртуализация

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

56

 

 

 

 

Модуль 6. Виртуализация. Xen.

 

 

 

 

 

 

 

 

 

Популярный продукт в этой категории: VMware

В работе этого способа используется виртуальная машина (hypervisor)

которая выступает посредником между гостевой ОС и реальным оборудованием. Гостевая ОС может быть запущена без всяких модификаций, но должна поддерживать аппаратную платформу.

Паравиртуализация

Популярный продукт в этой категории: Xen

Способ похож на полную виртуализацию – здесь тоже используется гипервизор, но код виртуализации интегрируется в саму операционную систему. Это конечно же минус, но паравиртуализация позволяет добиться производительности близкой к не виртуализированной ОС.

Виртуализация уровня операционной системы

Популярный продукт в этой категории: Linux-VServer

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

система одна и просто изолируются сервера запускаемые под ее управлением. Необходима модификация ядра.

Модуль 6. Виртуализация. Xen.

 

57

 

 

 

Архитектура Xen

Причины по которым стоит использовать виртуализацию.

1. Сильная экономия на аппаратном оборудование при консолидации

серверов;

2.Возможность поддержки старых платформ в целях совместимости;

3.Возможность изолировать потенциально опасные окружения;

4. Возможность создания любой аппаратной конфигурации (в рамках

возможностей сервера);

5.Симуляция различного оборудования в виртуальной машине (зависит от возможностей ПО виртуализации);

6.Возможность создания виртуальных сетей в рамках одного сервера;

7.Мобильность виртуальных машин (простота переноса между двумя физическими серверами);

8. Повышение управляемости сервером (простота создания резервных

копий).

Настраиваем сервер виртуализации

Создадим виртуальную машину и научимся ее использовать. Также

разберемся с Xen.

58

 

Модуль 6. Виртуализация. Xen.

 

 

 

Установка Xen

Мои виртуальные машины будут располагаться в /vm. Я специально выделил этот раздел сервера под виртуальные машины.

Устанавливаем Xen

# yum -y install xen

В процессе установки в /boot/grub/menu.lst будет добавлен блок загрузки ядра с поддержкой Xen

title CentOS (2.6.18-92.1.22.el5xen) root (hd0,0)

kernel /xen.gz-2.6.18-92.1.22.el5

module /vmlinuz-2.6.18-92.1.22.el5xen ro root=/dev/VolGroup00/LogVol00 module /initrd-2.6.18-92.1.22.el5xen.img

Нужно сделать так чтобы именно оно загружалось в процессе загрузки сервера. Для этого опцию ”default=1” меняем на “default=0”. Таким образом будет загружаться ядро перечисленное первым в файле загрузчика Grub (наше ядро с поддержкой Xen).

Перезагружаем сервер

# shutdown -r now

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

Посмотрим какое ядро загрузилось в самой ОС.

# uname -r

2.6.18-92.1.22.el5xen

Отлично, как видим загрузилось ядро с поддержкой Xen.

Модуль 6. Виртуализация. Xen.

 

59

 

 

 

Создание новых виртуальных машин в Xen

Давайте посмотрим список нашим виртуальных машин.

# xm list

 

 

 

 

 

 

 

 

 

 

 

Name

ID Mem(MiB) VCPUs State Time(s)

 

 

 

 

 

 

Domain-0

0

26

1 r----- 59.3

Поскольку мы только начали, никаких виртуальных машин нет. Но сейчас мы это исправим. Установка новой ВМ можно сделать с помощью команды virt-install.

[root@localhost ~]# virt-install

What is the name of your virtual machine? linuxbox4

How much RAM should be allocated (in megabytes)? 256

What would you like to use as the disk (file path)? /vm/linuxbox4.img

How large would you like the disk (/vm/linuxbox4.img) to be (in gigabytes)? 6

Would you like to enable graphics support? (yes or no) no

What is the install location? /mnt

Распишу по пунктам о чем нас спрашивали:

“What is the name of your virtual machine?” - здесь мы указываем имя виртуальной машины

“How much RAM should be allocated (in megabytes)?” - сколько оперативной памяти выделить для новой виртуальной машины

“What would you like to use as the disk (file path)?” - путь к файлу-образу будущей виртуальной машины

“How large would you like the disk (/vm/linuxbox4.img) to be (in gigabytes)?” - сколько места выделить для новой ВМ в гигабайтах

“Would you like to enable graphics support? (yes or no)” - обращаю внимание, что пункт не имеет отношения к X Window в новой системе. Здесь нас спрашивают, в каком режиме мы хотим провести процесс инсталляции. Ставиться мы будем из консоли без графики. В противном случае нужно было бы использовать VNC чтобы подключиться к этой машине. Лишние хлопоты.

“What is the install location?”- здесь указываем откуда мы будем ставить ОС, я заблаговременно примонтировал dvd-диск в /mnt, но устанавливать можно откуда угодно.

60

 

Модуль 6. Виртуализация. Xen.