Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 6 Next »

Step1. VM Settings

  1. The virtual machine with the following parameters is required for testing purposes:

  • 4 CPUs

  • 8Gb memory

  • 30Gb hdd (and 3x8Gb for zfs tests)

In SPB Labs you can access VMs here.

2. You can select a free IP address for your VM on this page - /wiki/spaces/AL/pages/1936326753, for example:

As you see, on this page addresses 127 and 138 are free. They will look like this: 10.20.50.127 and 10.20.50.138 respectively. Store this address and write your machine name on the right of the address.

3. On the vSphere page open the menu of you machine and change it’s settings (Edit Settings… item):

Select please an ISO-file (the Datastore ISO file menu item) to install DilOS:

Select version with UEFI support you would like to set as a base version - for example, the last one:

Set the Connected At Power On checkbox to connect ISO-file automatically on power on:

As you see ISO-file emulates CD-ROM on VM, and you need to boot from CD-ROM. To do this the BIOS screen should be loaded first on power on. In the Firmware select please EFI. To emulate running of EFI you have to select the During the next boot, force entry into the setup screen checkbox on the VM Options page in Boot Options :

Step 2. Run VM

  1. Run your VM by clicking the Power | Power On menu item:

2. On start open Web Console and inside the BIOS screen select please CD-ROM Drive as the first boot device. Then save this setting and exit.

3. Then on the Boot Manager page select (using +/- for moving up/down) EFI Vmware Virtual IDE CDROM Drive item and press ENTER.

Step 3. DilOS Installation

After booting from the selected ISO-file the GRUB menu is opened. Select please the Boot Multi User item and press Enter

Then follow the instruction on the screen - login as root with 123 password.

 On some versions you can get the tnf-error like this:

In this case you have to remove the tnf driver. You can know the package name by issuing the command:

dpkg -l | grep tnf

Then remove it by:

apt remove --purge system-tnf

The DilOS installer is running by the screen command:

screen

Then follow the instructions on the screen. The system detects available network links, choose a number of link that you want to use as the primary interface of the system and hit Enter/Return key

Select the static method Using static IPv4:

and enter the IP-address that has been taken on Step 1 item 2 (for example, 10.20.50.117), a netmask 255.255.255.0 and the gateway address (in SPB Labs it is 10.20.50.199) and confirm your settings. You can change everything later if you’d like.

In some cases (on a big storage platforms, for example) we need to change MTU (Maximum Transmission Unit), in this screen you can do it. But don't change it if you don't know what you are doing! Just skip this step.

Now you should setup a password for the root user.

Root is the system administrator, this user can do everything, install/update/remove packages, edit configuration files and many other actions. Be careful using this account and don't forget the password!

Don't worry if you mistyped, the system will ask you again. Now create your own account (for example, og). You can work with it under ssh as well - enter your login and password please:

Now choose a node (host) name. Enter it if you need something special (it can make a little bit easier you work with tests further if you put the same name as a name of the machine in vSphere), otherwise leave it as is by pressing Enter and confirm your choice:

You can now enter any domain name if you plan to connect your VM to any domain. Otherwise leave it as is just by pressing Enter:

The nameserver address in SPB Labs is 8.8.8.8 and the second one is 8.8.4.4. These addresses will be used by default, so you can just leave them as is. The Search list can be empty as well. You can change it later if needed.

Then the installer detects of connected storage devices (hard drives). The list can be very long or it can have the only device. Just choose a device where you want to to install the system to. For 4-HDDs configuration (for zfs tests) select the biggest device.

Then select please the UEFI boot method:

Confirm you settings finally:

Then installation process goes on. It may take a time. During the process you will see many logs. And on the final screen just Enter for reboot.

Step 4. Booting of Just Installed System.

After reboot the newly installed system will be loaded by default.

After this you will be able to login to your VM not only by Web Console, but via SSH with your account that has been created on installation (in our example it is og).

Step 5. Apt Settings, BEs Creation and Open VM Tools Installation

All other actions require a root access. So, login under the root account:

su -

Now you have to create a backup BE with an image of the already installed system to use as a system source, in other words you will be able to skip all steps of this instruction from the beginning to the current point:

beadm create dilos_ISO_orig
 When you need to boot back to this BE

just execute the following commands:

beadm activate dilos_ISO_orig
reboot

After reboot the original system installed previously from the ISO file will be loaded.

Then update apt settings:

apt update

After this the system is ready to install Open VM Tools. Login as root and enter please the command:

apt install open-vm-tools

Run Open VM Tools after successful installation:

svcadm enable open-vm-tools

Reboot VM:

reboot

You should see your IP addresses in vSphere for your VM if everything is OK.

Note : While there is no any new tested stable version, you can use this BE as a base BE. In other words you can skip all steps from the beginning of this instruction to the current point. To do this execute the following command like you did it for dilos_ISO_orig:

beadm create dilos_BASE

When you later will boot from this BE type the following commands:

beadm activate dilos_BASE

reboot

 To check newly created BEs

execute please the beadm list command:

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:~#

Step 6. Prepare VM for Tests Running

Prepare your VM for tests running (again all commands should be run under the root account). To login as root you can use su command:

og@dilos:~# su -
  1. Install a DilOS version that you plan to test. To do this please put repositories addresses for apt like you did it before. Put the following rules to the /etc/apt/sources.list file for RELEASE versions:

deb http://10.20.50.188/dilos dilos2 main contrib non-free 

You can do it with any text editor or by executing the following command:

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

 For DEBUG versions they are:

deb http://10.20.50.188/dilos dgdbg-unstable main contrib non-free
deb http://10.20.50.188/dilos du2-unstable main contrib non-free

or:

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 du2-unstable main contrib non-free
EOT

Then run system upgrade:

apt update
os-upgrade -r
 os-upgrade tool

os-upgrade tool is intended for the new BE creation, that will contain the latest DilOS version from repositories whose addresses are placed to the/etc/apt/sources.list file.

Command format:

os-upgrade [-f|--force-remove] [-r|--reboot] [-s|--skip-activate] [-y|--yes] [<newBE name>]
where:
-f | --force-remove     force remove BE if it exists
-r | --reboot           reboot the system to the new BE
-s | --skip-activate    skip BE activation
-y | --yes              assume YES on all questions
newBE name              create a specified BE name and upgrade it

When running without any option this tool tries to create the new BE with a version name from a repository. For example, dilos_2.0.2.96 or dilos_2.0.3.8-20221221-1-0+int2. So, if you try to upgrade to a version that has been previously installed to this VM, you can force to remove this version and to install the new one over it:

os-upgrade -f

Or you can leave existing BE as is, but name the new one with another name. For example, if dilos_2.0.2.96 already exists:

os-upgrade dilos_2.0.2.96_NEW

To reboot after upgrade just use the -r option:

os-upgrade -r

After reboot login again under the root account.

If the test version is not loaded by any reason you can see its file like it is described here.

Note : Here you can install packages required for specified test categories if you’d like. Package names are specified inside an instruction for those test category (LIBC, NET, OS etc.). But however you can do it later.

Check that upgrade was successful by entering the following command:

grep -e 'WARNING:' -e 'warning:' -e 'W:' -e 'error:' -e 'E:' -e 'cannot' /var/tmp/os-upgrade.log | sort -u

2. Now you can use a script or do the following steps. Create user ztest:

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

and user admin:

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
 If you have certificates problems

with the DEBUG version install certificates please:

root@dilos:~# apt install ca-certificates

and reboot to the new BE:

root@dilos:~# reboot

After reboot login again to the root account.

Check creation of admin account:

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

3. Configure NAT according the How to configure NET on Virtual Machine for global zone with etherstub instruction until zone creation.

Step 7. Test Zones Creation

For steps 1-3 you can run the script or do steps 1-3 with checks.

  1. Create the mountpoint to mount all zones:

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

2. First create and run dhcp zone:

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
root@dilos:~# zoneadm list -civ
  ID NAME             STATUS     PATH                           BRAND    IP    
   0 global           running    /                              dpkg     shared
   1 dhcp             running    /zones/dhcp                    dpkg     excl

You can check that zone was installed successfully by entering the following command:

grep -e 'WARNING:' -e 'warning:' -e 'W:' -e 'error:' -e 'E:' -e 'cannot' /var/tmp/dhcp-bts.log | sort -u

3. Login to the zone, check addresses and install and run dhcp-server:

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
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. Now create the client zone if you need it (here is just an example of the client zone - most likely you need any other zone or even multiple zones):

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
// install pkg for os-test
root@dilos:~# uname -a
SunOS debug221122 5.11 2.0.3.7-20221122-1-0+int2 i86pc i386 i86pc

If everything is OK, your VM is ready to run tests. Enjoy!

  • No labels