Инсталлирующий сервер Solaris за 10 минут
Данная статья относится к серверам SUN с процессором Sparc и операционной системой Solaris 10.
Иногда нужно просто загрузить сервер по сети в init s. Или пере установить операционную систему после сбоя или смены выполняемой задачи. Иногда просто нужно поменять release или версию операционной системы или сбросить пароль пользователя root.
Если сервер стоит далеко, или физический доступ к нему ограничен, возникают трудности, хорошо если есть удалённый доступ к системному контроллеру, можно произвести установку по сети, а в случае отказа или отсутствия привода DVD это может стать последним вариантом.
В больших и сложных сетях это может стать проблемой, копирование системных файлов происходит по протоколу TFTP и для раздачи IP адреса используется ARP/RARP, что полностью исключает возможность маршрутизации. Таким образом сервер и инсталлирующий сервер должны находиться в одном сетевом сегменте. Выделять на своих серверах в каждом сегменте по 5-6 Гб дискового пространства, да ещё оставлять с открытыми портами продуктивные серверы не очень разумно, а закупать отдельные серверы в каждый сегмент накладно. В старых версиях соляриса можно было установить в каждом сегменте по boot серверу и какой то один install сервер, недостатки опять те же.
В solaris 10 можно временно сделать любой свободный сервер инсталлирующим, причём до первой перезагрузки. Данное свойство было обнаружено случайно и в заводской документации о нём написано не было, мало того даже сервисные инженеры были удивлены находкой автора.
И так приступим
1. Загружаем дистрибутив с сайта производителя (на момент написания) www.oracle.com/technetwork/server-storage/solaris/downloads/index.html регистрация и загрузка бесплатно. И записываем на любой (повторяю любой) доступный по сети сервер, главное чтобы он мог отдавать файлы по UFS протоколу. И отшариваем директорию с дистрибутивом по сети так, чтобы можно было увидеть *.iso файл, иногда исо файл запакован в zip архив, тогда нужно сначала распаковать. Например в качестве места для исо файла мы выбрали сервер storage1 и директорию /distrib где положили файл sol-10-u9-ga-sparc-dvd.iso
2. Переводим обслуживаемый сервер в init 0 и даем команду boot для выбранного сетевого интерфейса, например
{0} ok boot net -s
будет что то вроде этого, в данном случае МАС адрес сервера совпадает с МАС адресом сетевого порта.
SC Alert: Host System has Reset
Probing system devices
Probing memory
Probing I/O buses
Sun Fire V240, No Keyboard
Copyright 2007 Sun Microsystems, Inc. All rights reserved.
OpenBoot 4.22.33, 2048 MB memory installed, Serial #54525955.
Ethernet address 0:3:ba:40:0:3, Host ID: 83400003.
Rebooting with command: boot net -s
Boot device: /pci@1f,700000/network@2 File and args: -s
1000 Mbps FDX Link up
Requesting Internet Address for 0:3:ba:40:0:3
Requesting Internet Address for 0:3:ba:40:0:3
Requesting Internet Address for 0:3:ba:40:0:3
3. Выбираем инсталлирующий сервер по своему усмотрению и регистрируемся на нем как суперпользователь или аналогичной ролью. Находим или создаем новый файл /etc/ethers и добавляем туда запись о нашем сервере
vi /etc/ethers
0:3:ba:40:0:3 test1
Затем добавляем запись для этого же сервера в файл /etc/hosts
vi /etc/hosts
192.168.0.15 test1
Если настроен DNS проверяем /etc/nsswitch.conf чтобы сначала опрашивались файлы
vi /etc/nsswitch.conf
hosts: files dns
ipnodes: files dns
4. Теперь смонтируем образ в виртуальный дисковод, для этого создаем во временной директории новую точку монтирования, создаём устройство и монтируем его
# mkdir /tmp/sol10
# lofiadm /net/storage1/distrib/sol-10-u9-ga-sparc-dvd.iso
/dev/lofi/1
# mount -F hsfs /dev/lofi/1 /tmp/sol10
Теперь мы имеем доступ к дистрибутиву, который не занимает места на дисках и не потратили на установку install сервера ни минуты.
5. Приступаем к настройке инсталлирующего сервера
Заходим в директорию с дистрибутивом и запускаем скрипт с параметрами
# cd /tmp/sol10/Solaris_10/Tools/
# ./add_install_client test1 sun4u
saving original /etc/dfs/dfstab in /etc/dfs/dfstab.orig
Adding «share -F nfs -o ro,anon=0 /tmp/sol10» to /etc/dfs/dfstab
updating /etc/bootparams
copying boot file to /tftpboot/inetboot.SUN4U.Solaris_10-2
Всё создано и настроено, если что то не работает смотри документацию, по опыту знаю что нужно проверить следующее
# share должно получиться
— /sol10 anon=0,sec=sys,ro ""
можно проверить файл /etc/dfs/dfstab в котором эту запись можно сразу удалить или закоментировать.
кроме того нужно проверить файл /etc/inetd.conf эта запись должна быть раскоментированна
tftp dgram udp6 wait root /usr/sbin/in.tftpd in.tftpd -s /tftpboot
6. Теперь на обслуживаемом сервере повторяем команду
{0} ok boot net -s
SC Alert: Host System has Reset
Probing system devices
Probing memory
Probing I/O buses
Sun Fire V240, No Keyboard
Copyright 2007 Sun Microsystems, Inc. All rights reserved.
OpenBoot 4.22.33, 2048 MB memory installed, Serial #54525955.
Ethernet address 0:3:ba:40:0:3, Host ID: 83400003.
Rebooting with command: boot net -s
Boot device: /pci@1f,700000/network@2 File and args: -s
1000 Mbps FDX Link up
Requesting Internet Address for 0:3:ba:40:0:3
Requesting Internet Address for 0:3:ba:40:0:3
Requesting Internet Address for 0:3:ba:40:0:3
1000 Mbps FDX Link up
Requesting Internet address for 0:3:ba:40:0:3
SunOS Release 5.10 Version Generic_141444-09 64-bit
Copyright 1983-2009 Sun Microsystems, Inc. All rights reserved.
Use is subject to license terms.
Hardware watchdog enabled
Booting to milestone «milestone/single-user:default».
Configuring devices.
Using RPC Bootparams for network configuration information.
Attempting to configure interface ce0…
Skipped interface ce0
Attempting to configure interface bge3…
Skipped interface bge3
Attempting to configure interface bge2…
Skipped interface bge2
Attempting to configure interface bge1…
Skipped interface bge1
Attempting to configure interface bge0…
Configured interface bge0
Requesting System Maintenance Mode
SINGLE USER MODE
#
Всё мы одно пользовательском режиме загруженны по сети и можем например удалить пароль рута, но это уже другая история.
Иногда нужно просто загрузить сервер по сети в init s. Или пере установить операционную систему после сбоя или смены выполняемой задачи. Иногда просто нужно поменять release или версию операционной системы или сбросить пароль пользователя root.
Если сервер стоит далеко, или физический доступ к нему ограничен, возникают трудности, хорошо если есть удалённый доступ к системному контроллеру, можно произвести установку по сети, а в случае отказа или отсутствия привода DVD это может стать последним вариантом.
В больших и сложных сетях это может стать проблемой, копирование системных файлов происходит по протоколу TFTP и для раздачи IP адреса используется ARP/RARP, что полностью исключает возможность маршрутизации. Таким образом сервер и инсталлирующий сервер должны находиться в одном сетевом сегменте. Выделять на своих серверах в каждом сегменте по 5-6 Гб дискового пространства, да ещё оставлять с открытыми портами продуктивные серверы не очень разумно, а закупать отдельные серверы в каждый сегмент накладно. В старых версиях соляриса можно было установить в каждом сегменте по boot серверу и какой то один install сервер, недостатки опять те же.
В solaris 10 можно временно сделать любой свободный сервер инсталлирующим, причём до первой перезагрузки. Данное свойство было обнаружено случайно и в заводской документации о нём написано не было, мало того даже сервисные инженеры были удивлены находкой автора.
И так приступим
1. Загружаем дистрибутив с сайта производителя (на момент написания) www.oracle.com/technetwork/server-storage/solaris/downloads/index.html регистрация и загрузка бесплатно. И записываем на любой (повторяю любой) доступный по сети сервер, главное чтобы он мог отдавать файлы по UFS протоколу. И отшариваем директорию с дистрибутивом по сети так, чтобы можно было увидеть *.iso файл, иногда исо файл запакован в zip архив, тогда нужно сначала распаковать. Например в качестве места для исо файла мы выбрали сервер storage1 и директорию /distrib где положили файл sol-10-u9-ga-sparc-dvd.iso
2. Переводим обслуживаемый сервер в init 0 и даем команду boot для выбранного сетевого интерфейса, например
{0} ok boot net -s
будет что то вроде этого, в данном случае МАС адрес сервера совпадает с МАС адресом сетевого порта.
SC Alert: Host System has Reset
Probing system devices
Probing memory
Probing I/O buses
Sun Fire V240, No Keyboard
Copyright 2007 Sun Microsystems, Inc. All rights reserved.
OpenBoot 4.22.33, 2048 MB memory installed, Serial #54525955.
Ethernet address 0:3:ba:40:0:3, Host ID: 83400003.
Rebooting with command: boot net -s
Boot device: /pci@1f,700000/network@2 File and args: -s
1000 Mbps FDX Link up
Requesting Internet Address for 0:3:ba:40:0:3
Requesting Internet Address for 0:3:ba:40:0:3
Requesting Internet Address for 0:3:ba:40:0:3
3. Выбираем инсталлирующий сервер по своему усмотрению и регистрируемся на нем как суперпользователь или аналогичной ролью. Находим или создаем новый файл /etc/ethers и добавляем туда запись о нашем сервере
vi /etc/ethers
0:3:ba:40:0:3 test1
Затем добавляем запись для этого же сервера в файл /etc/hosts
vi /etc/hosts
192.168.0.15 test1
Если настроен DNS проверяем /etc/nsswitch.conf чтобы сначала опрашивались файлы
vi /etc/nsswitch.conf
hosts: files dns
ipnodes: files dns
4. Теперь смонтируем образ в виртуальный дисковод, для этого создаем во временной директории новую точку монтирования, создаём устройство и монтируем его
# mkdir /tmp/sol10
# lofiadm /net/storage1/distrib/sol-10-u9-ga-sparc-dvd.iso
/dev/lofi/1
# mount -F hsfs /dev/lofi/1 /tmp/sol10
Теперь мы имеем доступ к дистрибутиву, который не занимает места на дисках и не потратили на установку install сервера ни минуты.
5. Приступаем к настройке инсталлирующего сервера
Заходим в директорию с дистрибутивом и запускаем скрипт с параметрами
# cd /tmp/sol10/Solaris_10/Tools/
# ./add_install_client test1 sun4u
saving original /etc/dfs/dfstab in /etc/dfs/dfstab.orig
Adding «share -F nfs -o ro,anon=0 /tmp/sol10» to /etc/dfs/dfstab
updating /etc/bootparams
copying boot file to /tftpboot/inetboot.SUN4U.Solaris_10-2
Всё создано и настроено, если что то не работает смотри документацию, по опыту знаю что нужно проверить следующее
# share должно получиться
— /sol10 anon=0,sec=sys,ro ""
можно проверить файл /etc/dfs/dfstab в котором эту запись можно сразу удалить или закоментировать.
кроме того нужно проверить файл /etc/inetd.conf эта запись должна быть раскоментированна
tftp dgram udp6 wait root /usr/sbin/in.tftpd in.tftpd -s /tftpboot
6. Теперь на обслуживаемом сервере повторяем команду
{0} ok boot net -s
SC Alert: Host System has Reset
Probing system devices
Probing memory
Probing I/O buses
Sun Fire V240, No Keyboard
Copyright 2007 Sun Microsystems, Inc. All rights reserved.
OpenBoot 4.22.33, 2048 MB memory installed, Serial #54525955.
Ethernet address 0:3:ba:40:0:3, Host ID: 83400003.
Rebooting with command: boot net -s
Boot device: /pci@1f,700000/network@2 File and args: -s
1000 Mbps FDX Link up
Requesting Internet Address for 0:3:ba:40:0:3
Requesting Internet Address for 0:3:ba:40:0:3
Requesting Internet Address for 0:3:ba:40:0:3
1000 Mbps FDX Link up
Requesting Internet address for 0:3:ba:40:0:3
SunOS Release 5.10 Version Generic_141444-09 64-bit
Copyright 1983-2009 Sun Microsystems, Inc. All rights reserved.
Use is subject to license terms.
Hardware watchdog enabled
Booting to milestone «milestone/single-user:default».
Configuring devices.
Using RPC Bootparams for network configuration information.
Attempting to configure interface ce0…
Skipped interface ce0
Attempting to configure interface bge3…
Skipped interface bge3
Attempting to configure interface bge2…
Skipped interface bge2
Attempting to configure interface bge1…
Skipped interface bge1
Attempting to configure interface bge0…
Configured interface bge0
Requesting System Maintenance Mode
SINGLE USER MODE
#
Всё мы одно пользовательском режиме загруженны по сети и можем например удалить пароль рута, но это уже другая история.
0 комментариев