Versions Compared

Key

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

...

В нём должен быть указан адрес репозитория, в котором лежат последниеоттестированные стабильные версии DilOS:

Code Block
languagenone
deb http://10.20.50.188/dilos dilos2-testing main contrib non-free

...

После этого нужно заставить apt обновить информацию о репозиториях:

Code Block
languagebash
apt update

...

Теперь обновляем пакет os-upgrade и запускаем os-upgrade:

Code Block
languagebash
apt install os-upgrade
os-upgrade -recho "============ sources.list =============" > /var/tmp/update.log
cat /etc/apt/sources.list >> /var/tmp/update.log
echo "============ updating... ==============" >> /var/tmp/update.log
apt update 2>&1 | /usr/bin/tee -a /var/tmp/update.log

...

Теперь обновляем пакет os-upgrade и запускаем os-upgrade:

Code Block
languagebash
apt install os-upgrade
echo "============ upgrading... ==============" >> /var/tmp/update.log
os-upgrade -r 2>&1 | /usr/bin/tee -a /var/tmp/update.log
Expand
titleУтилита os-upgrade

Утилита os-upgrade предназначена для создания нового BE, содержащего последнюю версию системы DilOS из репозиториев, адреса которых указаны в файле /etc/apt/sources.list.

Формат команды:

Code Block
languagebash
os-upgrade [-f|--force-remove] [-r|--reboot] [-s|--skip-activate] [-y|--yes] [<newBE name>]
где:
-f | --force-remove     принудительно удаляет BE, если он уже существует
-r | --reboot           перезагружает систему на новый BE
-s | --skip-activate    не активирует BE
-y | --yes              предполагает, что на все вопросы ответ YES
newBE name              создаёт BE с указанным именем и новую версию устанавливает туда

При запуске без параметров по умолчанию утилита пытается создать BE с именем той версии, которую она находит в репозитории. Например, dilos_2.0.2.96 или dilos_2.0.3.8-20221221-1-0+int2. Поэтому если Вы пытаетесь установить установить версию, которая уже была установлена на эту VM, Вы можете принудительно удалить её и поставить апгрейд поверх неё командой:

Code Block
languagebash
os-upgrade -f

Или оставить уже созданный BE, а новому дать другое имя. Например, если dilos_2.0.2.96 уже есть:

Code Block
languagebash
os-upgrade dilos_2.0.2.96_NEW

Если хотите перезагрузиться после установки апгрейда, просто укажите ключик -r:

Code Block
languagebash
os-upgrade -r

...

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

Info

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

beadm create dilos_BASE

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

beadm activate dilos_BASE

reboot

...

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

Code Block
languagebash
og@dilos:~# su -
  1. Установите версию DilOS, которую Вы будете тестировать. Для этого нужно указать менеджеру apt адреса репозиториев, аналогично тому, как Вы это делали выше. В файле /etc/apt/sources.list должны быть указаны следующие адреса для RELEASE версий:

...

Code Block
languagebash
cat > /etc/apt/sources.list <<EOT /etc/apt/sources.list <<EOT
deb http://10.20.50.188/dilos dilos2 main contrib non-free 
EOT

 Для DEBUG версий эти адреса, соответственно:

Code Block
languagenone
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
languagenonebash
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

Затем снова запустите обновление системы:

cat >
Code Block
languagebash
bash
echo "============ sources.list =============" > /var/tmp/update.log
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
languagebash
apt update>> /var/tmp/update.log
echo "============ updating... ==============" >> /var/tmp/update.log
apt update 2>&1 | /usr/bin/tee -a /var/tmp/update.log
echo "============ upgrading... ==============" >> /var/tmp/update.log
os-upgrade -r 2>&1 | /usr/bin/tee -a /var/tmp/update.log

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

...

Expand
titleЕсли возникли проблемы с сертификатами

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

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

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

Code Block
languagebash
root@dilos:~# reboot

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

...

  1. Создаем mountpoint, куда будут монтироваться все зоны:

Code Block
languagebash
root@dilos:~# zfs create -o mountpoint=/zones rpool/zones
root@dilos:~# mkdir /export/builds

2. Сначала создаем и запускаем зону dhcp:

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/admin"
set special="/export/home/admin"
set type="lofs"
end
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

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: []
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 2>&1 | /usr/bin/tee -a /var/tmp/dhcp-bts.log

Проверяем, что зона dhcp установилась:

Code Block
languagebash
root@dilos:~# zoneadm list -civ
  ID NAME             STATUS     PATH                           BRAND    IP    
   0 global           running    /                              dpkg     shared
   1 dhcp             running    /zones/dhcp                    dpkg     excl

...