IBM®
Перейти к тексту
    в России и странах СНГ [изменить]    Условия использования
 
 
   
    Главная страница    Продукты    Услуги и решения    Поддержка и загрузка    Мой профиль    
Перейти к тексту

developerWorks Россия  >  Linux | AIX и UNIX  >

Автоматизация установки Linux в Cloud-средах

Как упростить установку Linux на LPAR-раздел Power или System p

developerWorks
Опции документа
PDF format - Fits A4 and Letter

PDF - Fits A4 and Letter
42KB (12 страница)

Загрузить Adobe® Reader®

Опции документа, требующие включения JavaScript, не отображаются

Обсудить

Исходные тексты примера


Выскажите мнение об этой странице

Помогите нам улучшить содержание


Уровень сложности: средний

Дэвид Эшли, старший ИТ-специалист, IBM
Дэвид Баучер, старший технический специалист, IBM

26.03.2009

Упрощение процесса установки операционных систем позволяет сократить затраты времени на администрирование систем в Cloud-среде. Прочитав статью, вы узнаете, как автоматизировать установку ОС SUSE Linux® на новый логический раздел (LPAR) системы IBM Power™ или System p®. Аналогичный подход вы сможете использовать и для установки Red Hat Linux или AIX.

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

Автоматизированная установка Linux для архитектур на основе Intel™ хорошо отработана. Однако для систем System p или IBM Power System, управляемых при помощи HMC (Hardware Management Console) это сделать сложнее. Преимуществом предлагаемого в данной статье решения является то, что оно целиком основано на средствах Linux и не требует каких-либо знаний AIX.

Краткое описание решения

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

  • Установленная во вновь созданный LPAR-раздел система использует статический IP-адрес. Это относится только к окончательной конфигурации, в процессе же установки может применяться динамическая выдача адресов посредством DHCP (Dynamic Host Configuration Protocol).
  • Конфигурационный XML-файл для программы YaST2, который управляет автоматической установкой Linux (AutoYaST), достаточно универсален и может применяться для развертывания разных серверов – HTTP, MySQL и др.
  • В AutoYaST-файле не задается никакая конкретная информация, такая как IP-адреса, имена машин и т.д.
  • Все автоматизировано таким образом, что для организации нового LPAR требуется запустить единственную команду HMC.

Создание и применение предлагаемого решения включает следующие этапы:

  1. Настройка файла AutoYaST
  2. Настройка серверов DHCP/BOOTP и TFTP
  3. Использование команды lpar_netboot из HMC
  4. Автоматизация команды lpar_netboot при помощи параметра -g
  5. Проведение автоматической установки для нового LPAR


В начало


Этап 1. Настройка файла AutoYaST

Для управления процессом установки операционной системы в SUSE Linux применяется файл AutoYaST.xml. По умолчанию AutoYaST при каждом вызове создает идентичные друг другу установки. Как следствие можно иметь несколько AutoYaST-файлов для различных конфигураций - например, один AutoYaST-файл для Web-серверов и другой – для MySQL-серверов. Однако настраивать и поддерживать отдельные AutoYaST-файлы для каждого сервера, отличающегося только IP-адресом и именем, довольно трудоемко и неудобно.

Для создания специального AutoYaST-файла, который будет получать IP-адрес и имя машины с DHCP-сервера, создайте копию стандартного AutoYaST-файла с установочного диска SUSE и измените его так, как сказано далее:

  1. В стандартном AutoYaST-файле прописано использование DHCP. Измените разделы, отвечающие за сетевые настройки, так, чтобы DHCP применялся только при начальной установке ОС. Проверьте, чтобы ни в одном таком разделе не задавалось имя машины. Если такой раздел имеется, удалите его целиком.
  2. Если где-либо в XML-файле содержится информация о статических IP-адресах, DNS и пр., удалите соответствующие разделы.
  3. Поместите код из листинга 1 сразу перед самым последним XML-тегом в файле AutoYaST. Этот скрипт отвечает за преобразование конфигурации, предварительно полученной при помощи DHCP, в статические сетевые настройки, которые вступят в силу при загрузке вновь установленного LPAR.

    Данный скрипт избавляет от необходимости иметь для каждого LPAR отдельный файл AutoYaST с прописанным в нем IP-адресом. От вас требуется лишь правильно настроить DHCP-сервер.


Листинг 1. AutoYaST-скрипт для преобразования DHCP

<scripts>
  <init-scripts config:type="list">
    <listentry>
      <filename>network_setup</filename>
      <interpreter>shell</interpreter>
      <source><![CDATA[#!/bin/bash
### Отключаем ipv6
echo 'install ipv6 /bin/true' >> /etc/modprobe.conf.local

### Переменные, на основе которых формируются настройки для статической
### сетевой конфигурации
ACTIVE_INTERFACE=`/sbin/ifconfig | grep eth | awk '{print $1}'`
IP_ADDRESS=`/sbin/ifconfig $ACTIVE_INTERFACE | grep 'inet addr' | awk '{print $2}' 
 | sed 's/addr://'`
NETMASK=`/sbin/ifconfig $ACTIVE_INTERFACE | grep 'inet addr' | awk '{print $4}' 
 | sed 's/Mask://'`
BROADCAST=`/sbin/ifconfig $ACTIVE_INTERFACE | grep Bcast: | awk '{ print $3 }' 
 | sed 's/Bcast://'`
NETWORK=`/sbin/ip route list | grep $IP_ADDRESS | awk '{ print $1 }' 
 | sed 's/\/[1-9][1-9]//'`
GATEWAY=`/sbin/route | grep default | awk '{print $2}'`
HOSTNAME=`/usr/bin/host $IP_ADDRESS | awk '{print $5}' | sed '$s/.$//'`

### Записываем HOSTNAME
echo "$HOSTNAME" > /etc/HOSTNAME

### Записываем адрес шлюза
echo "default $GATEWAY - -" > /etc/sysconfig/network/routes

### Записываем нужные данные в файл /etc/hosts
HOST=`/usr/bin/host $IP_ADDRESS | awk '{print $5}' | sed '$s/.$//' | cut -d "." -f 1`
echo "$IP_ADDRESS   $HOSTNAME $HOST" >> /etc/hosts

### Создаем заново файл, содержащий статическую сетевую конфигурацию

INT_CONF_FILE=/etc/sysconfig/network/ifcfg-eth-id-`ifconfig eth0 | grep HWaddr 
 | awk '{ print $5 }' | perl -ne '$var=$_; print lc($var)'`

echo 'DEVICE=eth0' > $INT_CONF_FILE
echo 'BOOTPROTO=static' >> $INT_CONF_FILE
echo "IPADDR=$IP_ADDRESS" >> $INT_CONF_FILE
echo "NETMASK=$NETMASK" >> $INT_CONF_FILE
echo "BROADCAST=$BROADCAST" >> $INT_CONF_FILE
echo "NETWORK=$NETWORK" >> $INT_CONF_FILE
echo 'STARTMODE=onboot' >> $INT_CONF_FILE
echo 'TYPE=Ethernet' >> $INT_CONF_FILE

### Перезапускаем сетевую подсистему
/etc/init.d/network restart
      ]]></source>
    </listentry>
  </init-scripts>
</scripts>



В начало


Этап 2. Настройка служб DHCP/BOOTP и TFTP

В нашем решении используется штатная служба DHCP, входящая в состав всех популярных дистрибутивов Linux. На этом этапе мы настраиваем DHCP-сервер таким образом, чтобы обеспечить загрузку по сети будущих LPAR-разделов.

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

Для каждого загружаемого LPAR в настройках DHCP-сервера должна существовать отдельная запись. Это требуется для работы команды lpar_netboot, которая рассматривается на этапе 3. Вся необходимая информация для автоматически устанавливаемых LPAR будет собрана в единственном файле – dhcpd.conf, что весьма удобно. Таким образом, нет нужды жестко задавать какие-либо сетевые настройки в файле AutoYaST, который мы создали на предыдущем этапе.

В листинге 2 приведен шаблон файла dhcpd.conf, на основе которого вы можете описать свою конфигурацию, добавляя на каждый LPAR по записи типа host. В разделе Загрузка данной статьи имеется zip-архив, содержащий скрипт под названием addsystem, который автоматизирует добавление сведений в файл dhcpd.conf.

После редактирования файла dhcpd.conf для вступления изменений в силу необходимо перезапустить службу DHCP.


Листинг 2. Шаблон файла dhcpd.conf

ddns-update-style ad-hoc;
allow bootp;
subnet 0.0.0.0 netmask 0.0.0.0 {
	host rcc-hny-poc-003 {
		option host-name 	"myserver.cloud9.ibm.com";
		fixed-address 		192.168.0.203;
		hardware ethernet	16:E9:10:94:87:03;
		filename			"inst64";
	}
	next-server 		192.168.0.201;
	option routers 		192.168.0.201;
}
            

Ниже описан смысл опций, используемых в приведенном файле dhcpd.conf:

  • Опция subnet с указанными параметрами определяет, что сервер будет отвечать на запросы независимо от того, из какой сети поступает запрос. Поскольку наш сервер не настроен на обслуживание запросов динамических адресов, его работа по обработке запросов от загружающихся LPAR не нарушит работу существующих DHCP-серверов.
  • Опция host описывает каждый LPAR, который подлежит установке. Задайте столько опций host, сколько требуется. В примере приведен минимальный набор опций внутри host, которые необходимы для установки LPAR и последующей работы LPAR в качестве DHCP-клиента:
    • host-name содержит имя, соответствующее IP-адресу машины на DNS-сервере. Если машина не имеет DNS-имени, укажите здесь то имя, которое вы хотите иметь в локальном файле hosts вновь установленной ОС.
    • fixed-address содержит IP-адрес, назначаемый LPAR-разделу. Если он указан, то DHCP-сервер использует именно его и не задействует пул адресов по умолчанию. Это дает возможность закрепить за каждым LPAR свой IP-адрес, который будет выдаваться каждый раз при загрузке ОС.
    • hardware ethernet содержит MAC-адрес LPAR-раздела, используемый во время работы протокола BOOTP и связывающий LPAR с одной из записей host.
    • filename указывает имя файла, содержащего ядро Linux. Это имя будет выдаваться в ответ на BOOTP-запросы для загрузки клиентом ядра с указанного в опции next-server TFTP-сервера. Если опция next-server не задана, то файл будет запрошен через TFTP с того же DHCP-сервера.
  • next-server содержит адрес машины, с которой по TFTP доступно ядро Linux, определенное в опции filename. Если DHCP-сервер является одновременно и TFTP-сервером, то опция next-server может быть опущена.
  • option routers содержит список шлюзов, через которые TFTP-сервер достижим для клиента, если они находятся в разных подсетях. Если TFTP-сервер и DHCP-сервер находятся на одной машине, эту опцию можно опустить.

В качестве TFTP-сервера можно взять atftpd, имеющийся в дистрибутиве SLES. Для настройки службы необходимо указать каталог, где хранятся файлы, доступные для загрузки. Обычно этот каталог называется /tftpboot. Файл, указанный в опции filename всех секций host в файле dhcpd.conf, должен находиться в этом каталоге.

Например, файл для запуска установки SUSE по сети называется inst64. Его можно найти на установочном CD-диске в каталоге /suseboot. Вам нужно поместить этот файл в каталог /tftpboot. Убедитесь, что право на чтение этого файла имеют все пользователи.



В начало


Этап 3. Использование команды lpar_netboot из HMC

Наряду с возможностью активировать существующий LPAR, HMC позволяет установить операционную систему на "чистый" LPAR. Хотя HMC имеет графический интерфейс, все его функции доступны и из командной строки. Мы отдадим предпочтение командной строке, так как она позволит нам автоматизировать этот этап решения.

Для запуска установки по сети применяется команда lpar_netboot. По ссылкам из раздела Ресурсы в конце статьи вы найдете подробную информацию об этой команде. В нашем решении мы используем форму команды lpar_netboot именно для сетевой загрузки LPAR.

Листинг 3 содержит пример использования lpar_netboot. Подставьте в него значения, соответствующие вашей системе, и запустите команду – включится LPAR и начнется загрузка по сети. В данном примере предполагается, что:

  • В настройках сервера DHCP/BOOTP прописан MAC-адрес нужного LPAR и имя исполняемого файла установщика SUSE, что было рассмотрено на предыдущем этапе.
  • В дальнейшем данный LPAR будет всегда получать с DHCP-сервера фиксированный адрес (указанный в файле dhcpd.conf).

Листинг 3. Пример использования команды lpar_netboot

lpar_netboot -f -t ent -m 16E910948703 -s auto -d auto -S 192.168.0.201 -G \
192.168.0.201 -C 192.168.0.203 lpar1 lpar1 SystemA
            

Примечание: символ '\' в конце строки в листинге 3 означает продолжение команды на другой строке – он не является частью команды. Не вводите этот символ при наборе команды.

Ниже описаны параметры, используемые в примере:

  • -m указывает MAC-адрес загружаемого по сети клиента. Существует другая форма команды lpar_netboot для того, чтобы узнать MAC-адрес.
  • -S содержит IP-адрес сервера DHCP/BOOTP.
  • -G задает IP-адрес шлюза, через который достижим сервер DHCP/BOOTP. Если сервер и клиент находятся в одной сети, здесь указывается адрес самого сервера DHCP/BOOTP.
  • -C – это IP-адрес, который вы хотите назначить клиенту.
  • Три последних имени означают соответственно:
    • Имя LPAR в HMC (lpar1)
    • Имя конфигурации LPAR – по умолчанию совпадает с именем LPAR (lpar1)
    • Имя родительского сервера для LPAR в HMC (SystemA)

В zip-архиве из раздела Загрузка данной статьи имеется скрипт под названием autoinstall, который вы можете использовать в HMC для автоматизации установки нового LPAR с использованием принципов, рассмотренных в статье. Скрипт автоматически получает MAC-адрес LPAR, вызывает скрипт addsystem для настройки и перезапуска службы DHCP, а затем выполняет команду lpar_netboot для запуска установки. В конце autoinstall запускает команду mkvterm, чтобы дать вам возможность наблюдать за процессом установки.



В начало


Этап 4. Автоматизация команды lpar_netboot при помощи параметра -g

Итак, мы выполнили шаги, описанные на предыдущих этапах, и запустили установщик Linux. Теперь, открыв консольное соединение с LPAR в HMC, мы увидим начальный экран программы установки.

Дальнейшие шаги установки также можно автоматизировать. Для этого мы применим параметр -g в команде lpar_netboot. Этот параметр позволяет передать программе установки дополнительные данные. Такие дистрибутивы Linux, как SUSE или Red Hat, допускают полностью автономную установку – необходимо лишь передать установщику правильные сведения, и процесс пойдет.

В параметре -g мы строкой передадим все данные, необходимые программе установки, включая местонахождение файла AutoYaST и инсталляционных RPM-файлов SUSE. Для каждого дистрибутива формат этой информации документирован и одинаков для всех архитектур (i386, Power и т.д.).

В листинге 4 показан пример использования параметра -g при запуске автоматической установки. Подставьте в пример свои значения, и команда lpar_netboot запустит полностью автоматическую установку вашей ОС.

Для выполнения примера в таком виде, как мы только что описали, необходимо следующее:

  • Наличие Web-сервера, работающего на сервере установки. Этот сервер может быть запущен на той же машине, что и DHCP- и TFTP-серверы, однако это не обязательно.
  • Образ установочного диска SUSE должен быть скопирован в корневой каталог документов Web-сервера.
  • Файл AutoYaST.xml, подготовленный на этапе 1, должен быть скопирован в тот же каталог Web-сервера, что и установочный образ SUSE.

Листинг 4. Пример использования параметра -g в команде lpar_netboot
		    
-g "hostip=192.168.0.203 netmask=255.255.255.0 \
gateway=192.168.0.1 nameserver=192.168.0.1 insmod=ibmveth \
install=http://192.168.0.201/suse autoyast=http://192.168.0.201/autoyast.xml" 
            

Примечание: Символ '\' в листинге 4 означает продолжение строки и не является частью команды. При наборе команды не вводите этот символ.

Параметр insmod применен для загрузки модуля виртуального Ethernet-адаптера. Если устанавливаемому LPAR-разделу назначены физические Ethernet-адаптеры, этот параметр не нужен.



В начало


Этап 5. Выполнение автоматической установки для нового LPAR

Итак, мы имеем удобную систему управления LPAR-разделами в Cloud-среде. Для введения в строй нового LPAR необходимо выполнить следующие шаги:

  1. Создать новый LPAR в HMC.
  2. Подключиться к консоли HMC при помощи SSH и запустить команду lpar_netboot для определения MAC-адреса LPAR.
  3. Добавить информацию о новом LPAR в файл dhcpd.conf.
  4. Перезапустить службу DHCP для вступления изменений в силу.
  5. Снова подключиться к консоли HMC и выполнить команду lpar_netboot для запуска автоматической установки ОС на LPAR.

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




В начало


Загрузка

ОписаниеИмяРазмерМетод загрузки
Программный код для этой статьиautoinstall.zip2KBHTTP
Информация о методах загрузки


Ресурсы

Научиться

Получить продукты и технологии
  • Закажите SEK для Linux (EN) — набор из двух DVD-дисков с новейшими ознакомительными версиями ПО от IBM: DB2®, Lotus®, Rational®, Tivoli® и WebSphere®.

  • Разработайте ваш следующий Linux-проект с помощью ознакомительного ПО от IBM (EN), которое можно загрузить прямо с developerWorks.


Обсудить


Об авторах

Дэвид Эшли (David Ashley) имеет более чем 25-летний опыт работы с компьютерными системами, начиная от встраиваемых устройств и заканчивая большими мейнфреймами IBM. Он работал преподавателем информационных технологий, руководителем группы разработки, системным архитектором, консультантом по управлению системами, занимался внедрением баз данных. Н настоящее время Дэвид работает консультантом по проектам на основе System p в подразделении Lab Services IBM, а в свободное время занимается open source-проектом Open Object Rexx.


Дэвид Баучер до недавнего времени являлся старшим техническим специалистом Центра Технологий Linux IBM. С 1986 года он работал в лабораториях разработки IBM с различными операционными системами, занимаясь преимущественно сетевыми средствами и распределенными вычислениями.




Выскажите мнение об этой странице


Пожалуйста, найдите минутку и заполните форму, чтобы повысить уровень сервиса.



 


 


 


Поделиться этой статьей:

забобрить забобрить memori сохранить в memori




В начало


IBM, логотип IBM, ibm.com, DB2, developerWorks, Lotus, Rational, Tivoli и WebSphere являются зарегистрированными торговыми марками International Business Machines Corporation в Соединенных Штатах Америки и/или других странах. Эти и другие термины торговых марок IBM отмечены соответствующим символом (® или ™) при первом упоминании, обозначая, что зарегистрированные в США торговые марки или знаки, охраняемые нормами общего права, принадлежали IBM на момент публикации информации. Эти торговые марки могут также быть зарегистрированы или охраняться нормами общего права в других странах. Для просмотра текущего списка торговых марок IBM, перейдите по ссылке. Linux является торговой маркой Линуса Торвальдса в Соединенных Штатах Америки и/или других странах. Другая компания, продукт или название услуги могут быть торговыми марками или знаками обслуживания, принадлежащими иным физическим или юридическим лицам.

IBM обладает всеми авторскими правами касательно информации, расположенной на developerWorks. Использование информации приведенной на этом ресурсе без явного письменного разрешения от IBM или первоначального автора запрещены. Если Вы желаете использовать информацию с developerWorks, пожалуйста воспользуйтесь регистрационной формой для того, чтобы связаться с нами запрос на использование материалов developerWorks Россия.
    IBM в России Конфиденциальность Контакты