...
Шаг1. Настройка параметров VM
Для запуска тестов нужна виртуальная машина со следующими параметрами:
4 ядра
8Gb памяти
30Gb hdd (и 3x8Gb для тестов zfs)
В SPB Labs виртуальные машины находятся в vSphere по адресу https://photon.spb.dilos.org/ui/#?extensionId=vsphere.core.vm.summary&objectId=urn:vmomi:VirtualMachine:vm-260:8bb8caa4-62ba-4222-ad45-7dfbbbc3502e&navigator=vsphere.core.viTree.hostsAndClustersView
...
2. Ваша машина будет доступна по некоторому IP адресу. Для этого нужно зайти на страничку /wiki/spaces/AL/pages/1936326753 и выбрать свободный IP, например:
...
Как мы видим, на этой страничке свободны 127 и 138 адреса, которые при вводе будут иметь вид 10.20.50.127 и 10.20.50.138 соответственно. Справа от номера нужно вписать имя своей машины и запомнить адрес.
3. Возвращаемся назад и настраиваем параметры машины (Edit Settings…):
...
В настройках нужно выбрать ISO-файл (Datastore ISO file), с которого будет осуществляться установка DilOS:
...
В репозитории находятся несколько версий, выбирайте ту, которая вам нужна для тестирования. Мы для примера выбираем последнюю версию.
...
Не забудьте поставить галочку Connected At Power On, чтобы при включении питания ISO-файл подключался автоматически.
...
При запуске машины ISO-файл представляется как CD-ROM, поэтому нужно чтобы загрузка осуществлялась с CD-ROM. Для этого нужно в BIOS выбрать правильную последовательность загрузки. Для эмуляции запуска BIOS нужно на закладке VM Options в Boot Options поставить галочку During the next boot, force entry into the setup screen
...
Настройка сделана, можем запускать машину.
Шаг2. Запуск VM
1. Для запуска машины выбираем в меню Power | Power On
...
2. В момент запуска открываем Web Console, для чего кликаем мышкой надпись Launch Web Console. И внутри открывшейсяконсоли попадаем в BIOS
...
Шаг 3. Установка DilOS
После сохранения конфигурации BIOS происходит загрузка VM с эмулируемого CD-ROM, т.е из выбранного ISO-файла. В меню GRUB выбираем пункт Install dilos в нашем случае ('2.0.2.48')
...
После загрузки следуем инструкции на экране - регистрируемся под администратором: логин root, пароль 123.
...
title | В некоторых версиях возможно возникновение ошибки tnf |
---|
В некоторых версиях возможно возникновение ошибки tnf:
...
Если она у вас появится, то нужно удалить драйвер tnf. Имя этой компоненты можно узнать командой:
Code Block |
---|
dpkg -l | grep tnf |
...
У нас оно system-tnf, удаляем его командой:
Code Block |
---|
apt remove --purge system-tnf |
Чтобы запустить установщик операционной системы, введите команду
Code Block |
---|
screen |
...
По умолчанию используется network интерфейс vmxnet3s0, но возможно, у Вас будет другой и, возможно, не один. Используйте тот, через который Вы будете подключаться к сети. У нас он один, и мы будем подключаться через него.
...
Для использования статического IP адреса выбираем 2-ой пункт Using static IPv4:
...
и вводим адрес, который мы выбрали из таблицы и запомнили на Шаге 1. п.2:
...
Вводим маску подсети 255.255.255.0
...
Вводим адрес шлюза, в SPB Labs его адрес 10.20.50.199
...
Подтверждаем установки. Если что-то введено неправильно, эти настройки можно поменять.
...
Далее, если нет специальных требований, то лучше оставить значение MTU, как есть:
...
Теперь задаем пароль для root.
Info |
---|
Root - это системный администратор, он может делать всё, что угодно, устанавливать/обновлять/удалять пакеты, редактировать конфигурационные файлы и разные другие действия. Будьте аккуратны при работе под этой учётной записью и не забывайте пароль! |
...
Создаем свою учетную запись. Под ней Вы сможете работать для работать помимо прочего и с удаленного терминала (для примера пусть будет og) и вводим логин и пароль:
...
Можете ввести какое-нибудь имя для ноды, если это принципиально. В противном случае оставьте его, как есть, для чего нажмите Enter:
...
и подтвердите выбор.
...
Если у вас машина будет подключаться к какому-нибудь домену, то можете ввести здесь его имя, в противном случае оставьте как есть, для чего просто нажмите Enter:
...
Дальше нужно ввести адрес nameserver-а, он у нас 8.8.8.8 и дополнительный 8.8.4.4. Эти адреса будут выставляться по умолчанию, поэтому их можно просто подтвердить. Search list можно оставить пустым. Вы сможете изменить его позже, если будет такая надобность.
...
Подтверждаем настройки:
...
Выбираем диск, на который будем устанавливать операционную систему. Здесь он у нас один - и выбор очевиден. А в конфигурации для машины с четырьмя дисками их будет 4 - выбирайте самый большой:
...
и подтверждаем настройки:
...
Дальше происходит установка системы, на экране будут выводиться логи установки. По окончании установки нажимаем Enter для перезагрузки.
...
Info |
---|
После перезагрузки нужно успеть быстро переключиться на загрузку с локального диска, иначе по умолчанию опять будет производиться установка системы - не теряйте времени . |
...
Дальше логинтесь под root с паролем, который Вы установили в начале процедуры установки:
...
Шаг 4. Загрузка установленной системы.
Если вы не хотите все время выбирать между новой установкой системы и загрузкой в уже установленную, то нужно снова поменять порядок загрузки, но теперь в обратную сторону: первым загрузочным устройством поставить локальный диск вместо CD-ROM. Для этого опять идем в настройки VM и убеждаемся что включена загрузка через BIOS:
...
Опять перезапускаем VM через меню Power | Reset и меняем на вкладке Boot загрузку с CD-ROM на загрузку с Hard Drive
...
Теперь по умолчанию VM будет загружать свежеустановленную систему.
После загрузки на виртуальную машину можно зайти не только через Web Console, но и удаленно по протоколу SSH. Для этого можно в терминале зайти по ssh с пользователем, которого Вы создали при установке. У нас это og.
Expand | ||
---|---|---|
| ||
После загрузки на виртуальную машину можно зайти не только через Web Console, но и удаленно по протоколу SSH. Для этого можно в терминале зайти по ssh с пользователем, которого Вы создали при установке. У нас это og. Возможно, Вы не создавали никаких ssh ключей, или они изменялись. Тогда у Вас появится ошибка, типа: Ssh порекомендует, что нужно сделать для исправления ошибки. В нашем случае это
В Вашем случае будет какая-то другая команда, можете просто ее скопировать и выполнить с терминала. Потом снова попытайтесь зайти через ssh. |
Шаг 5. Настройка apt и установка Open VM Tools
Дальнейшие действия требуют административных прав. Залогиньтесь под root:
Code Block |
---|
su - |
Теперь нужно создать BE с образом установленной системы для того, чтобы в дальнейшем можно было использовать эту версию в качестве исходной точки без выполнения всех шагов, которые Вы проделали от начала этой инструкции:
Code Block |
---|
beadm create dilos_ISO_orig |
Expand | ||
---|---|---|
в случае, если Вам нужно вернуться к этой исходной точке, выполните следующие команды:
После перезагрузки Вы попадёте в оригинальную систему, которая была Вами установлена из ISO файла. |
Далее надо выбрать в качестве базовой версии DilOS, на которую будут устанавливаться любые другие (тестовые) версии. Для этого прежде всего нужно настроить пакетный менеджер apt, для чего поменять файл /etc/apt/sources.list
.
В нём должен быть указан адрес репозитория, в котором лежать последнине оттестированные стабильные версии DilOS:
Code Block |
---|
deb http://apt2.dilos.org/dilos dilos2-testing main contrib non-free |
После этого нужно заставить apt обновить информацию о репозиториях:
Code Block |
---|
apt update |
...
Теперь обновляем пакет os-upgrade и запускаем os-upgrade:
Code Block |
---|
apt install os-upgrade
os-upgrade |
После обновления устанавливаем Open VM Tools, для чего вводим команду:
Code Block |
---|
apt install open-vm-tools |
...
После успешной установки, запускаем Open VM Tools:
Code Block |
---|
svcadm enable open-vm-tools |
Теперь перезагрузим машину, либо с помощью меню Power | Reset, либо с помощью команды
Code Block |
---|
reboot |
Если все установилось и запустилось корректно, в vSphere для Вашей машины Вы должны увидеть ее IP адреса.
...
beadm create dilos_BASE
В дальнейшем для загрузки с этого BE выполните команды:
beadm activate dilos_BASE
reboot
Шаг 6. Подготовка машины для запуска тестов
Теперь подготавливаем машину для запуска тестов (все команды также должны запускаться из под root). Для входа в режим root-а можно воспользоваться командой:
Code Block |
---|
og@dilos:~# su - |
Установите версию DilOS, которую Вы будете тестировать. Для этого нужно указать менеджеру apt адреса репозиториев, аналогично тому, как Вы это делали выше. В файле
/etc/apt/sources.list
должны быть указаны следующие адреса для RELEASE версий:
Code Block |
---|
deb http://apt2.dilos.org/dilos dg2-unstable main contrib non-free
deb http://apt2.dilos.org/dilos du2-unstable main contrib non-free |
Вы можете это сделать с помощью редактора или выполнив команду:
Code Block |
---|
cat > /etc/apt/sources.list <<EOT
deb http://apt2.dilos.org/dilos dg2-unstable main contrib non-free
deb http://apt2.dilos.org/dilos du2-unstable main contrib non-free
EOT |
Для DEBUG адреса, соответственно:
Code Block |
---|
deb http://apt2.dilos.org/dilos dgdbg-unstable main contrib non-free
deb http://apt2.dilos.org/dilos du2-unstable main contrib non-free |
или:
Code Block |
---|
cat > /etc/apt/sources.list <<EOT
deb http://apt2.dilos.org/dilos dgdbg-unstable main contrib non-free
deb http://apt2.dilos.org/dilos du2-unstable main contrib non-free
EOT |
Затем снова запустите обновление системы:
Code Block |
---|
apt update
os-upgrade
reboot |
2. Cоздаем юзера ztest:
Code Block |
---|
root@dilos:~# useradd -m -d /var/ztest -g staff -s /bin/bash ztest
root@dilos:~# passwd ztest
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
root@dilos:~# echo "ztest ALL=(ALL:ALL) NOPASSWD: ALL" >> /etc/sudoers.d/ztest |
и юзера admin:
Code Block |
---|
root@dilos:~# useradd -m -g staff admin
root@dilos:~# passwd admin
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
root@dilos:~# echo "admin ALL=(ALL:ALL) NOPASSWD: ALL" >> /etc/sudoers.d/admin |
3. Если Вы тестируете DEBUG версию, устанавливаем сертификаты:
root@dilos:~# apt install ca-certificates
и перезагружаемся:
Code Block |
---|
root@dilos:~# reboot |
После перезагрузки опять логинимся под root. Проверяем, что admin
создался:
Code Block |
---|
root@dilos:~# ls /export/home
admin og |
4. Настраиваем NAT по инструкции Как настроить сеть на Виртуальной Машине для глобальной зоны с коммутатором etherstub до создания зоны, потому что для тестов нужна зона dhcp.
Шаг 7. Создание тестовых зон
Создаем mountpoint, куда будут монтироваться все зоны:
Code Block |
---|
root@dilos:~# zfs create -o mountpoint=/zones rpool/zones
root@dilos:~# mkdir /export/builds |
2. Сначала создаем и запускаем зону dhcp:
...
Шаг1. Настройка параметров VM
Для запуска тестов нужна виртуальная машина со следующими параметрами:
4 ядра
8Gb памяти
30Gb hdd (и 3x8Gb для тестов zfs)
В SPB Labs виртуальные машины находятся в vSphere по адресу по этому адресу.
...
2. Ваша машина будет доступна по некоторому IP адресу. Для этого нужно зайти на страничку /wiki/spaces/AL/pages/1936326753 и выбрать свободный IP, например:
...
Как мы видим, на этой страничке свободны 127 и 138 адреса, которые при вводе будут иметь вид 10.20.50.127 и 10.20.50.138 соответственно. Справа от номера нужно вписать имя своей машины и запомнить адрес.
3. Возвращаемся назад и настраиваем параметры машины (Edit Settings…):
...
В настройках нужно выбрать ISO-файл (Datastore ISO file), с которого будет осуществляться установка DilOS:
...
В репозитории находятся несколько версий, выбирайте ту, которая вам нужна для тестирования. Мы для примера выбираем последнюю версию.
...
Не забудьте поставить галочку Connected At Power On, чтобы при включении питания ISO-файл подключался автоматически.
...
При запуске машины ISO-файл представляется как CD-ROM, поэтому нужно чтобы загрузка осуществлялась с CD-ROM. Для этого нужно в BIOS выбрать правильную последовательность загрузки. Для эмуляции запуска BIOS нужно на закладке VM Options в Boot Options поставить галочку During the next boot, force entry into the setup screen
...
Настройка сделана, можем запускать машину.
Шаг2. Запуск VM
1. Для запуска машины выбираем в меню Power | Power On
...
2. В момент запуска открываем Web Console, для чего кликаем мышкой надпись Launch Web Console. И внутри открывшейсяконсоли попадаем в BIOS
...
3. Дальше на вкладке Boot передвигаем (используя +/- для передвижения вверх/вниз)на первое место CD-ROM Drive и сохраняем по нажатию на клавишу F10 Save and Exit.
...
Шаг 3. Установка DilOS
После сохранения конфигурации BIOS происходит загрузка VM с эмулируемого CD-ROM, т.е из выбранного ISO-файла. В меню GRUB выбираем пункт Install dilos в нашем случае ('2.0.2.48')
...
После загрузки следуем инструкции на экране - регистрируемся под администратором: логин root, пароль 123.
...
Expand | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
В некоторых версиях возможно возникновение ошибки tnf: Если она у вас появится, то нужно удалить драйвер tnf. Имя этой компоненты можно узнать командой:
У нас оно system-tnf, удаляем его командой:
|
Чтобы запустить установщик операционной системы, введите команду
Code Block | ||
---|---|---|
| ||
screen |
...
По умолчанию используется network интерфейс vmxnet3s0, но возможно, у Вас будет другой и, возможно, не один. Используйте тот, через который Вы будете подключаться к сети. У нас он один, и мы будем подключаться через него.
...
Для использования статического IP адреса выбираем 2-ой пункт Using static IPv4:
...
и вводим адрес, который мы выбрали из таблицы и запомнили на Шаге 1. п.2:
...
Вводим маску подсети 255.255.255.0
...
Вводим адрес шлюза, в SPB Labs его адрес 10.20.50.199
...
Подтверждаем установки. Если что-то введено неправильно, эти настройки можно поменять.
...
Далее, если нет специальных требований, то лучше оставить значение MTU, как есть:
...
Теперь задаем пароль для root.
Info |
---|
Root - это системный администратор, он может делать всё, что угодно, устанавливать/обновлять/удалять пакеты, редактировать конфигурационные файлы и разные другие действия. Будьте аккуратны при работе под этой учётной записью и не забывайте пароль! |
...
Создаем свою учетную запись. Под ней Вы сможете работать для работать помимо прочего и с удаленного терминала (для примера пусть будет og) и вводим логин и пароль:
...
Можете ввести какое-нибудь имя для ноды, если это принципиально (если Вы введёте имя, соответствующее имени машины в vSphere, это может облегчить работу с тестами в дальнейшем). В противном случае оставьте его, как есть, для чего нажмите Enter:
...
и подтвердите выбор.
...
Если у вас машина будет подключаться к какому-нибудь домену, то можете ввести здесь его имя, в противном случае оставьте как есть, для чего просто нажмите Enter:
...
Дальше нужно ввести адрес nameserver-а, он у нас 8.8.8.8 и дополнительный 8.8.4.4. Эти адреса будут выставляться по умолчанию, поэтому их можно просто подтвердить. Search list можно оставить пустым. Вы сможете изменить его позже, если будет такая надобность.
...
Подтверждаем настройки:
...
Выбираем диск, на который будем устанавливать операционную систему. Здесь он у нас один - и выбор очевиден. А в конфигурации для машины с четырьмя дисками их будет 4 - выбирайте самый большой:
...
и подтверждаем настройки:
...
Дальше происходит установка системы, на экране будут выводиться логи установки. По окончании установки нажимаем Enter для перезагрузки.
...
Шаг 4. Загрузка установленной системы.
Дальше нужно снова поменять порядок загрузки, но теперь в обратную сторону: первым загрузочным устройством поставить локальный диск вместо CD-ROM. Для этого опять идем в настройки VM и убеждаемся что включена загрузка через BIOS:
...
Опять перезапускаем VM через меню Power | Reset и меняем на вкладке Boot загрузку с CD-ROM на загрузку с Hard Drive
...
Теперь по умолчанию VM будет загружать свежеустановленную систему.
После загрузки на виртуальную машину можно зайти не только через Web Console, но и удаленно по протоколу SSH. Для этого можно в терминале зайти по ssh с пользователем, которого Вы создали при установке. У нас это og.
Expand | |||||
---|---|---|---|---|---|
| |||||
После загрузки на виртуальную машину можно зайти не только через Web Console, но и удаленно по протоколу SSH. Для этого можно в терминале зайти по ssh с пользователем, которого Вы создали при установке. У нас это og. Возможно, Вы не создавали никаких ssh ключей, или они изменялись. Тогда у Вас появится ошибка, типа: Ssh порекомендует, что нужно сделать для исправления ошибки. В нашем случае это
В Вашем случае будет какая-то другая команда, можете просто ее скопировать и выполнить с терминала. Потом снова попытайтесь зайти через ssh. |
Шаг 5. Настройка apt, создание резервных BE и установка Open VM Tools
Дальнейшие действия требуют административных прав. Залогиньтесь под root:
Code Block | ||
---|---|---|
| ||
su - |
Теперь нужно создать BE с образом установленной системы при помощи утилиты beadm для того, чтобы в дальнейшем можно было использовать эту версию в качестве исходной точки, т.е. чтобы можно было пропустить все шаги этой инструкции от начала до этого места:
Code Block | ||
---|---|---|
| ||
beadm create dilos_ISO_orig |
Expand | |||||
---|---|---|---|---|---|
| |||||
к этой исходной точке, выполните следующие команды:
После перезагрузки Вы попадёте в оригинальную систему, которая была Вами установлена из ISO файла. |
Далее надо выбрать последнюю стабильную версию системы в качестве базовой версии DilOS, на которую будут устанавливаться любые другие (тестовые) версии. Для этого прежде всего нужно настроить пакетный менеджер apt, для чего поменять файл /etc/apt/sources.list
.
В нём должен быть указан адрес репозитория, в котором лежат последниеоттестированные стабильные версии DilOS:
Code Block | ||
---|---|---|
| ||
deb http://10.20.50.188/dilos dilos2-testing main contrib non-free |
Вы можете это сделать с помощью редактора или выполнив команду:
Code Block | ||
---|---|---|
| ||
cat > /etc/apt/sources.list <<EOT
deb http://10.20.50.188/dilos dilos2-testing main contrib non-free
EOT |
После этого нужно заставить apt обновить информацию о репозиториях:
Code Block | ||
---|---|---|
| ||
apt update |
...
Теперь обновляем пакет os-upgrade и запускаем os-upgrade:
Code Block | ||
---|---|---|
| ||
apt install os-upgrade
os-upgrade -r |
Expand | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||
Утилита os-upgrade предназначена для создания нового BE, содержащего последнюю версию системы DilOS из репозиториев, адреса которых указаны в файле Формат команды:
При запуске без параметров по умолчанию утилита пытается создать BE с именем той версии, которую она находит в репозитории. Например,
Или оставить уже созданный BE, а новому дать другое имя. Например, если
Если хотите перезагрузиться после установки апгрейда, просто укажите ключик -r:
|
После обновления логинимся под root и устанавливаем Open VM Tools, для чего вводим команду:
Code Block | ||
---|---|---|
| ||
apt install open-vm-tools |
...
После успешной установки, запускаем Open VM Tools:
Code Block | ||
---|---|---|
| ||
svcadm enable open-vm-tools |
Теперь перезагрузим машину, либо с помощью меню Power | Reset, либо с помощью команды
Code Block | ||
---|---|---|
| ||
reboot |
Если все установилось и запустилось корректно, в vSphere для Вашей машины Вы должны увидеть ее IP адреса.
Info |
---|
Note :До выхода новой оттестированнойстабильной версии Вы можете использовать этот BE в качестве базового, т.е. все шаги, которые Вы выполнили от начала инструкции до этого места, можно будет пропустить. Для этого аналогично dilos_ISO_orig выполните команду:
А когда Вам понадобится загрузиться с этого BE, достаточно будет выполнить команды:
|
Expand | |||||
---|---|---|---|---|---|
| |||||
Для этого можно выполнить команду
|
Шаг 6. Подготовка машины для запуска тестов
Теперь подготавливаем машину для запуска тестов (все команды также должны запускаться из под root). Для входа в режим root-а можно воспользоваться командой:
Code Block | ||
---|---|---|
| ||
su - |
Установите версию DilOS, которую Вы будете тестировать. Для этого нужно указать менеджеру apt адреса репозиториев, аналогично тому, как Вы это делали выше. В файле
/etc/apt/sources.list
должны быть указаны следующие адреса для RELEASE версий:
Code Block | ||
---|---|---|
| ||
deb http://10.20.50.188/dilos dilos2 main contrib non-free |
Вы можете это сделать с помощью редактора или выполнив команду:
Code Block | ||
---|---|---|
| ||
cat > /etc/apt/sources.list <<EOT
deb http://10.20.50.188/dilos dilos2 main contrib non-free
EOT |
Для DEBUG версий эти адреса, соответственно:
Code Block | ||
---|---|---|
| ||
deb http://10.20.50.188/dilos dgdbg-unstable main contrib non-free
deb http://10.20.50.188/dilos dilos2 main contrib non-free |
или:
Code Block | ||
---|---|---|
| ||
cat > /etc/apt/sources.list <<EOT
deb http://10.20.50.188/dilos dgdbg-unstable main contrib non-free
deb http://10.20.50.188/dilos dilos2 main contrib non-free
EOT |
Затем снова запустите обновление системы:
Code Block | ||
---|---|---|
| ||
apt update
os-upgrade -r |
После перезагрузки снова логинимся под root.
Note |
---|
Если по каким-то причинам версия для тестирования не грузится, можно посмотреть её файлы, как описано здесь. |
Info |
---|
Note : В этом месте можно также при желании установить пакеты, нужные для выполнения конкретных групп тестов. Какие пакеты нужны, указывается в инструкции к конкретному виду тестов (LIBC, NET, OS и т.д.). Но это можно сделать и позднее. |
Тут Вы можете проверить, что установка прошла без проблем, если введёте следующую команду:
Code Block |
---|
grep -e 'WARNING:' -e 'warning:' -e 'W:' -e 'error:' -e 'E:' -e 'cannot' /var/tmp/os-upgrade.log | sort -u |
2. А здесь Вы можете запустить готовый скрипт или выполнить следующие шаги. Cоздаем юзера ztest:
Code Block | ||
---|---|---|
| ||
root@dilos:~# useradd -m -d /var/ztest -g staff -s /bin/bash ztest
root@dilos:~# passwd ztest
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
root@dilos:~# echo "ztest ALL=(ALL:ALL) NOPASSWD: ALL" >> /etc/sudoers.d/ztest |
Expand | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
при тестировании DEBUG версии, устанавливаем сертификаты:
и перезагружаемся:
После перезагрузки опять логинимся под root. |
3. Настраиваем NAT по инструкции Как настроить сеть на Виртуальной Машине для глобальной зоны с коммутатором etherstub до создания зоны, потому что для тестов нужна зона dhcp.
Шаг 7. Создание тестовых зон
Шаги 1-3 Вы можете заменить запуском готового скрипта или выполнить их с проверками, как они описаны ниже.
Создаем mountpoint, куда будут монтироваться все зоны:
Code Block | ||
---|---|---|
| ||
zfs create -o mountpoint=/zones rpool/zones
mkdir /export/builds |
2. Сначала создаем и запускаем зону dhcp:
Code Block | ||
---|---|---|
| ||
cat > dhcp.cmd <<EOT create -b set zonepath=/zones/dhcp set brand=dpkg set autoboot=true set ip-type=exclusive add fs set dir="/export/builds" set special="/export/builds" set type="lofs" end add net set physical="iz1" set global-nic="vsw0" add property (name=ip,value="192.168.0.1") add property (name=netmask,value="255.255.255.0") add property (name=gateway,value="192.168.0.254") add property (name=primary,value="true") end add attr set name="resolvers" set type="string" set value="8.8.8.8" end verify commit EOT zonecfg -z dhcp -f dhcp.cmd zonecfg -z dhcp info zonename: dhcp zonepath: /zones/dhcp brand: dpkg autoboot: true bootargs: pool: limitpriv: scheduling-class: ip-type: exclusive hostid: fs-allowed: uuid: 46b79185-7320-4ab6-b700-15058bd49c02 fs: dir: /export/builds special: /export/builds raw not specified type: lofs options: [] net: address not specified allowed-address not specified defrouter not specified global-nic: vsw0 mac-addr not specified physical: iz1 vlan-id not specified property: (name=ip,value="192.168.0.1") property: (name=netmask,value="255.255.255.0") property: (name=gateway,value="192.168.0.254") property: (name=primary,value="true") attr: name: resolvers type: string value: 8.8.8.8 root@dilos:~# zoneadm -z dhcp install root@dilos:~# 2>&1 | /usr/bin/tee -a /var/tmp/dhcp-bts.log zoneadm -z dhcp boot 2>&1 | /usr/bin/tee -a /var/tmp/dhcp-bts.log |
Проверяем, что зона dhcp установилась:
Code Block | ||
---|---|---|
| ||
root@dilos:~# zoneadm list -civ ID NAME STATUS PATH BRAND IP 0 global running / dpkg shared 1 dhcp running /zones/dhcp dpkg excl |
Можно проверить, что установка зоны прошла успешно при помощи команды:
Code Block |
---|
grep -e 'WARNING:' dpkg excl-e 'warning:' -e 'W:' -e 'error:' -e 'E:' -e 'cannot' /var/tmp/dhcp-bts.log | sort -u |
3. Заходим в зону, проверяем адреса и устанавливаем и запускаем сервер dhcp:
Code Block | ||
---|---|---|
| ||
root@dilos:~# zlogin dhcp root@dhcp:~# ifconfig lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1 inet 127.0.0.1 netmask ff000000 iz1: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 9000 index 2 inet 192.168.0.1 netmask ffffff00 broadcast 192.168.0.255 ether 2:8:20:92:59:94 lo0: flags=2002000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv6,VIRTUAL> mtu 8252 index 1 inet6 ::1/128 root@dhcp:~# apt install isc-dhcp-server -y 2>&1 | /usr/bin/tee -a /var/tmp/dhcp-bts.log root@dhcp:~# mv /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.bckp root@dhcp:~# cat > /etc/dhcp/dhcpd.conf <<EOT # A slightly different configuration for an internal subnet. subnet 192.168.0.0 netmask 255.255.255.0 { range 192.168.0.100 192.168.0.200; option subnet-mask 255.255.255.0; option domain-name-servers 8.8.8.8; # option domain-name "internal.example.org"; option routers 192.168.0.254; option broadcast-address 192.168.0.255; default-lease-time 600; max-lease-time 7200; } EOT root@dhcp:~# ifconfig lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1 inet 127.0.0.1 netmask ff000000 iz1: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 9000 index 2 inet 192.168.0.1 netmask ffffff00 broadcast 192.168.0.255 ether 2:8:20:92:59:94 lo0: flags=2002000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv6,VIRTUAL> mtu 8252 index 1 inet6 ::1/128 root@dhcp:~# cat > /etc/default/isc-dhcp-server <<EOT # Defaults for isc-dhcp-server (sourced by /etc/init.d/isc-dhcp-server) # Path to dhcpd's config file (default: /etc/dhcp/dhcpd.conf). #DHCPDv4_CONF=/etc/dhcp/dhcpd.conf #DHCPDv6_CONF=/etc/dhcp/dhcpd6.conf # Path to dhcpd's PID file (default: /var/run/dhcpd.pid). #DHCPDv4_PID=/var/run/dhcpd.pid #DHCPDv6_PID=/var/run/dhcpd6.pid # Additional options to start dhcpd with. # Don't use options -cf or -pf here; use DHCPD_CONF/ DHCPD_PID instead #OPTIONS="" # On what interfaces should the DHCP server (dhcpd) serve DHCP requests? # Separate multiple interfaces with spaces, e.g. "eth0 eth1". INTERFACESv4="iz1" INTERFACESv6="" EOT root@dhcp:~# svcadm enable isc-dhcp-server root@dhcp:~# svcs -xv root@dhcp:~# svcs isc-dhcp-server STATE STIME FMRI online 10:46:50 svc:/network/isc-dhcp-server:default root@dhcp:~# dhcp-lease-list To get manufacturer names please download http://standards.ieee.org/regauth/oui/oui.txt to /usr/local/etc/oui.txt Reading leases from /var/lib/dhcp/dhcpd.leases MAC IP hostname valid until manufacturer =============================================================================================== root@dhcp:~# exit logout |
4. Теперь создаем клиентскую зону, если она Вам нужна (здесь приведён пример создания клиентской зоны - скорее всего Вам будет нужна какая-то другая зона или даже несколько клиентских зон):
Code Block | ||
---|---|---|
| ||
root@dilos:~# cat > zone.cmd <<EOT create set zonepath=/zones/zone set autoboot=false set ip-type=exclusive add net set physical=int1 set global-nic="vsw0" add property (name="ip",value="dhcp") add property (name="primary",value="true") end commit exit EOT root@dilos:~# zonecfg -z zone -f zone.cmd root@dilos:~# zoneadm -z zone install root@dilos:~# zoneadm -z zone boot root@dilos:~# zoneadm list -civ ID NAME STATUS PATH BRAND IP 0 global running / dpkg shared 1 dhcp running /zones/dhcp dpkg excl 2 zone running /zones/zone dpkg excl root@dilos:~# zlogin -l root dhcp dhcp-lease-list To get manufacturer names please download http://standards.ieee.org/regauth/oui/oui.txt to /usr/local/etc/oui.txt Reading leases from /var/lib/dhcp/dhcpd.leases MAC IP hostname valid until manufacturer =============================================================================================== 02:08:20:a0:5a:92 192.168.0.100 dhcp 2022-11-24 10:20:34 -NA- root@dilos:~# zlogin -l root zone ifconfig lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1 inet 127.0.0.1 netmask ff000000 int1: flags=1004843<UP,BROADCAST,RUNNING,MULTICAST,DHCP,IPv4> mtu 9000 index 2 inet 192.168.0.100 netmask ffffff00 broadcast 192.168.0.255 ether 2:8:20:a0:5a:92 lo0: flags=2002000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv6,VIRTUAL> mtu 8252 index 1 inet6 ::1/128 root@dilos:~# uname -a SunOS debug221122 5.11 2.0.3.7-20221122-1-0+int2 i86pc i386 i86pc |
5. Если всё получилось, то машина готова для запуска тестов.
...
См. beadm