Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Шаг1. Настройка параметров VM

  1. Для запуска тестов нужна виртуальная машина со следующими параметрами:

...

В репозитории находятся несколько версий, выбирайте ту, которая вам нужна для тестирования. Мы для примера выбираем последнюю версию.

...

Не забудьте поставить галочку Connected At Power On, чтобы при включении питания ISO-файл подключался автоматически.

...

Настройка сделана, можем запускать машину.

Шаг 2. Запуск VM

1. Для запуска машины выбираем в меню Power | Power On

...


3. Дальше на вкладке Boot Managerпередвигаем (используя +/- для передвижения вверх/вниз)находим EFI Vmware Virtual IDE CDROM Drive и нажимаем ENTER.

...

Шаг 3. Установка DilOS

После происходит загрузка VM с эмулируемого CD-ROM, т.е из выбранного ISO-файла. В меню illumos выбираем пункт Boot Multi User и нажимаем Enter.

...

Дальше происходит установка системы, на экране будут выводиться логи установки. По окончании установки нажимаем Enter для перезагрузки.

...

Шаг 4. Загрузка установленной системы.

...

После загрузки на виртуальную машину можно зайти не только через Web Console, но и удаленно по протоколу SSH. Для этого можно в терминале зайти по ssh с пользователем, которого Вы создали при установке. У нас это og.

Expand
titleНа VM можно зайти не только через Web Console, но и удаленно по SSH

После загрузки на виртуальную машину можно зайти не только через Web Console, но и удаленно по протоколу SSH. Для этого можно в терминале зайти по ssh с пользователем, которого Вы создали при установке. У нас это og.

Возможно, Вы не создавали никаких ssh ключей, или они изменялись. Тогда у Вас появится ошибка, типа:

Ssh порекомендует, что нужно сделать для исправления ошибки. В нашем случае это

Code Block
languagebash
ssh-keygen -f "/home/olga/.ssh/known_hosts" -R "[localhost]:22117"

В Вашем случае будет какая-то другая команда, можете просто ее скопировать и выполнить с терминала. Потом снова попытайтесь зайти через ssh.

Шаг 5. Настройка apt, создание резервных BE и установка Open VM Tools

Дальнейшие действия требуют административных прав. Залогиньтесь под root:

...

Если все установилось и запустилось корректно, в vSphere для Вашей машины Вы должны увидеть ее IP адреса.

Info

Note :До выхода новой оттестированнойстабильной версии Вы можете использовать этот BE в качестве базового, т.е. все шаги, которые Вы выполнили от начала инструкции до этого места, можно будет пропустить. Для этого аналогично dilos_ISO_orig выполните команду:

beadm create dilos_BASE

А когда Вам понадобится загрузиться с этого BE, достаточно будет выполнить команды:

beadm activate dilos_BASE

reboot

Expand
titleВы можете проверить, что эти BE создались.

Для этого можно выполнить команду beadm list:

Code Block
languagebash
root@dilos:~# beadm list
BE                     Active Mountpoint Space   Policy Created
dilos_2.0.3.8          NR     /          811.55M static 2023-01-12 19:05
dilos_BASE             -      -          195.50K static 2023-01-12 19:11
dilos_ISO_orig         -      -          2.19M   static 2023-01-12 18:20
root@dilos:~#

Шаг 6. Подготовка машины для запуска тестов

Теперь подготавливаем машину для запуска тестов (все команды также должны запускаться из под root). Для входа в режим root-а можно воспользоваться командой:

...

Code Block
languagenone
deb http://10.20.50.188/dilos dgdbg-unstable main contrib non-free
deb http://10.20.50.188/dilos dilos2du2-unstable main contrib non-free

или:

Code Block
languagebash
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 dilos2du2-unstable main contrib non-free
EOT

...

После перезагрузки снова логинимся под root.

Note

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

Info

Note : В этом месте можно также при желании установить пакеты, нужные для выполнения конкретных групп тестов. Какие пакеты нужны, указывается в инструкции к конкретному виду тестов (LIBC, NET, OS и т.д.). Но это можно сделать и позднее.

2. А здесь Вы можете запустить готовый скрипт или выполнить следующие шаги. Cоздаем юзера ztestТут Вы можете проверить, что установка прошла без проблем, если введёте следующую команду:

Code Block
languagebash
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

...

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
languagebash
root@dilos:~# useradd -m -d /var/ztest -g staff admin
root@dilos:~#-s /bin/bash ztest
root@dilos:~# passwd adminztest
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully
root@dilos:~# echo "adminztest ALL=(ALL:ALL) NOPASSWD: ALL" >> /etc/sudoers.d/adminztest
Expand
titleЕсли возникли проблемы с сертификатами

при тестировании DEBUG версии, устанавливаем сертификаты:

Code Block
languagebash
root@dilos:~# apt install ca-certificates

и перезагружаемся:

Code Block
languagebash
root@dilos:~# reboot

После перезагрузки опять логинимся под root.

Проверяем, что admin создался:

Code Block
languagebash
root@dilos:~# ls /export/home admin og

3. Настраиваем NAT по инструкции Как настроить сеть на Виртуальной Машине для глобальной зоны с коммутатором etherstub до создания зоны, потому что для тестов нужна зона dhcp.

Шаг 7. Создание тестовых зон

Шаги 1-3 Вы можете заменить запуском готового скрипта или выполнить их с проверками, как они описаны ниже.

...

Code Block
languagebash
root@dilos:~# 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/home/adminbuilds"
set special="/export/home/adminbuilds"
set type="lofs"
end
add fsnet
set dirphysical="/export/buildsiz1"
set specialglobal-nic="/export/builds"
set type="lofs"
end
add net
set physical="iz1"
set global-nic="vsw0"
add property (name=ip,value="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

root@dilos:~# zonecfg -z dhcp -f dhcp.cmd
root@dilos:~# 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/home/admin
        special: /export/home/admin
        raw not specified
        type: lofs
        options: []
add attr
set name="resolvers"
set type="string"
set value="8.8.8.8"
end
verify
commit
EOT

root@dilos:~# zonecfg -z dhcp -f dhcp.cmd
root@dilos:~# 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 2>&1 | /usr/bin/tee -a /var/tmp/dhcp-bts.log
root@dilos:~# zoneadm -z dhcp boot
 zoneadm -z dhcp boot 2>&1 | /usr/bin/tee -a /var/tmp/dhcp-bts.log
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
languagebash
grep -e 'WARNING:' -e 'warning:' -e 'W:' -e 'error:' -e 'E:' -e dpkg     excl'cannot' /var/tmp/dhcp-bts.log | sort -u

3. Заходим в зону, проверяем адреса и устанавливаем и запускаем сервер dhcp:

Code Block
languagebash
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 2>&1 | /usr/bin/tee -a /var/tmp/dhcp-bts.log
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

...