Informações
Virtualizador Oracle Virtual Box 6.1
Sistema Operacional Oracle Solaris 11.4 x86
Documentação utilizada para o laboratório Solaris Zones
Alerta: Não será mostrado o processo de instalação nem de criação de repositório local do Solaris 11.4 na máquina virtual para o laboratório de Oracle Solaris Zones.
Para maiores detalhes e sobre a versão, compatibilidade, estrutura consulta a documentação oficial no site da Oracle.
Confirme a versão do sistema operacional instalado e se suporte a virtualização.
root@scorpion:~# cat /etc/release
Oracle Solaris 11.4 X86
Copyright (c) 1983, 2021, Oracle and/or its affiliates.
Assembled 22 April 2021
root@scorpion:~# virtinfo
NAME CLASS
virtualbox current
non-global-zone supported
kernel-zone unsupported
root@scorpion:~#
Adicione um disco para ficar dedicado ao Solaris Zones, não é obrigatório, porém prefiro deixar as cargas separadas, fica a seu gosto!!!
root@scorpion:~# echo | format
Searching for disks...done
AVAILABLE DISK SELECTIONS:
0. c1d0 <VBOX HAR-2c963950-811ba19-0001-31.25GB>
/pci@0,0/pci-ide@1,1/ide@0/cmdk@0,0
/dev/chassis/SYS/MB/hba0
1. c1d1 <VBOX HAR-bcc3d0c9-cb1343b-0001-20.00GB> zones
/pci@0,0/pci-ide@1,1/ide@0/cmdk@1,0
/dev/chassis/SYS/MB/hba0
2. c2d0 <VBOX HAR-6eb41ced-af1a259-0001 cyl 2608 alt 2 hd 255 sec 63>
/pci@0,0/pci-ide@1,1/ide@1/cmdk@0,0
/dev/chassis/SYS/MB/hba0
Specify disk (enter its number): Specify disk (enter its number):
root@scorpion:~#
Crie um ZFS Pool para utilizar o disco dedicado para Solaris Zones.
root@scorpion:~# zpool create zones c1d1
root@scorpion:~# zpool status zones
pool: zones
id: 18272446593546317300
state: ONLINE
scan: none requested
config:
NAME STATE READ WRITE CKSUM
zones ONLINE 0 0 0
c1d1 ONLINE 0 0 0
errors: No known data errors
root@scorpion:~#
root@scorpion:~# df -h /zones
Filesystem Size Used Available Capacity Mounted on
zones 19.6G 31K 19.6G 1% /zones
root@scorpion:~#
Essa é topologia que vamos utilizar como base, usaremos uma interface dedicada para criar a rede para o Solaris Zone.
|--------------------------------------|
| |
| --------------- |
| | WEB | |
| | | |
| | --------- | |
| --| VNET1 |-- |
| --------- |
| ------------------------------ |
| | | |
| | Virtual Switch | |
| | --------- | |
| -----------------| VNET1 |-- |
| --------- |
| | |
|--------------------------------------|
|
NETWORK
Verifique se a NET1 esta ativa, em seguida partimos para criação da VNET1.
root@scorpion:~# ipadm
NAME CLASS/TYPE STATE UNDER ADDR
lo0 loopback ok -- --
lo0/v4 static ok -- 127.0.0.1/8
lo0/v6 static ok -- ::1/128
net0 ip ok -- --
net0/v4 dhcp ok -- 192.168.0.79/24
net0/v6 addrconf ok -- fe80::a00:27ff:fed1:9a6e/10
net0/v6 addrconf ok -- 2804:14d:7e23:80f6:a00:27ff:fed1:9a6e/64
net1 ip ok -- --
net1/v4 dhcp ok -- 192.168.0.80/24
root@scorpion:~#
root@scorpion:~# dladm create-vnic -l net1 vnet1
root@scorpion:~# dladm show-vnic
LINK OVER SPEED MACADDRESS MACADDRTYPE IDS
vnet1 net1 1000 2:8:20:3b:d8:cf random VID:0
root@scorpion:~#
root@scorpion:~# dladm show-link
LINK CLASS MTU STATE OVER
net0 phys 1500 up --
net1 phys 1500 up --
vnet1 vnic 1500 up net1
root@scorpion:~#
Com a utilização da VNIC, é possível customizar interface a capacidade máxima de banda para uma determinada Zone.
root@scorpion:~# dladm show-linkprop -p max-bw vnet1
LINK PROPERTY PERM VALUE EFFECTIVE DEFAULT POSSIBLE
vnet1 max-bw rw -- -- -- --
root@scorpion:~#
Vamos começar a configurar o nosso primeiro Zone!!!
root@scorpion:~# zonecfg -z web
Use 'create' to begin configuring a new zone.
zonecfg:web> create
create: Using system default template 'SYSdefault'
zonecfg:web> set zonepath=/zones/web
zonecfg:web> set autoboot=true
zonecfg:web> verify
zonecfg:web> commit
zonecfg:web> exit
root@scorpion:~#
root@scorpion:~# zonecfg -z web info
zonename: web
zonepath: /zones/web
brand: solaris
autoboot: true
anet:
linkname: net0
configure-allowed-address: true
root@scorpion:~#
Remova a interface que vem como padrão no Solaris Zones e adicione a VNET1 que criamos anteriormente.
root@scorpion:~# zoneadm list -cv
ID NAME STATUS PATH BRAND IP
0 global running / solaris shared
root@scorpion:~# zonecfg -z web
zonecfg:web> info
zonename: web
zonepath: /zones/web
brand: solaris
autoboot: true
anet 0:
linkname: net0
configure-allowed-address: true
zonecfg:web>
zonecfg:web> remove anet 0
zonecfg:web> info
zonename: web
zonepath: /zones/web
brand: solaris
autoboot: true
zonecfg:web>
zonecfg:web> set ip-type=exclusive
zonecfg:web> add net
zonecfg:web:net> set physical=vnet1
zonecfg:web:net> end
zonecfg:web> verify
zonecfg:web> commit
zonecfg:web> exit
root@scorpion:~#
root@scorpion:~# zonecfg -z web export
create -b
set brand=solaris
set zonepath=/zones/web
set autoboot=true
add net
set physical=vnet1
end
root@scorpion:~#
Crie o Filesystem para o Solaris Zones.
root@scorpion:~# zfs create zones/web
root@scorpion:~# df -h /zones/web
Filesystem Size Used Available Capacity Mounted on
zones/web 19.6G 31K 19.6G 1% /zones/web
root@scorpion:~#
Antes de realizar a instalação do Solaris Zone vale lembrar que será preciso um repositório (local ou remoto) configurado no servidor. Para continuarmos esse exemplo criei um repositório local. Se seguir os passos de criação do repositório local com calma, sai de primeira!!!
Para visualizar o repositório configurado na máquina, utilizei o comando pkg.
root@scorpion:~# pkg publisher
PUBLISHER TYPE STATUS P LOCATION
solaris origin online F file:///repo/solaris/
root@scorpion:~#
Vamos Instalar o nosso primeiro Solaris Zonesssssss!!! Let’s Go!!!
root@scorpion:~# zoneadm list -cv
ID NAME STATUS PATH BRAND IP
0 global running / solaris shared
- web configured /zones/web solaris excl
root@scorpion:~# zoneadm -z web install
Enquanto a instalação estiver em andamento, o Solaris Zone ficará com o seguinte status incomplete
root@scorpion:~# zoneadm list -cv
ID NAME STATUS PATH BRAND IP
0 global running / solaris shared
- web incomplete /zones/web solaris excl
root@scorpion:~#
Após o término da instalação!!!
root@scorpion:~# zoneadm list -cv
ID NAME STATUS PATH BRAND IP
0 global running / solaris shared
- web installed /zones/web solaris excl
root@scorpion:~#
Veja um mapa com todos os possíveis status de um Solaris Zone.
Vamos realizar o boot/start do nosso Solaris Zones pela primeira vez!!! Ops, não esqueça de pegar a console da nossa máquina virtual para dar sequência na instalação do Solaris.
root@scorpion:~# zoneadm -z web boot ; zlogin -C web
[Connected to zone 'web' console]
Loading smf(7) service descriptions: 151/151
Booting to milestone "svc:/milestone/config:default".
Dependendo do teclado o F2 não funciona, não se preocupe utilize a sequência ESC + 2.
Agora dê um nome para seu Solaris Zone, estava sem criatividade, deixei web mesmo!!! Fica a seu gosto.
Escolha a interface de rede, nesse caso bem simples, só tem ela mesmo!!!
Vou usar o modo DHCP, mas se você quiser usa configurar IP, Mask, DNS, Gateway coloque em modo Static.
Particularmente prefiro deixar em inglês, caso precise abrir um chamado fica mais simples para os técnicos do suporte. Se o sistema estiver em português, pode ser um problema para buscar o erro na base de conhecimento. Fica a dica!!! ;-)
Para escolha de Territory eu utilizo en_US.ISO8859-1, há título de curiosidade a opção en_US.ISO8859-15 é padrão europeu!!!
Ficar atento nesse ponto, houveram algumas mudanças nesse tópico, sugiro ler a documentação de segurança. Vou tentar resumir ao máximo… Se só adicionar a senha de root, será criado o usuário root. Mas se colocar a senha de root e criar um usuário, ele receberá a role de root e não existirá mais um usuário root no sistema.
Espero que tenha entendido, caso contrário leia a documentação para não ter que reconfigurar o sistema novamente, mas se precisar reconfigurar o ambiente, veja este artigo How to Configure Oracle Solaris 11 Using the sysconfig Command
SC profile successfully generated as:
/etc/svc/profile/incoming/config/sc_profile.xml
Exiting System Configuration Tool. Log is available at:
/system/volatile/sysconfig.20210430-162341.log.3935
Booting to milestone "all".
Hostname: web
web console login:
Para sair do Console do zlogin, utilize a sequencia digite ~.
root@web:~# ~.
[Connection to zone 'web' console closed]
root@scorpion:~#
Caso não funcione, utilize a sequência de escape do telnet, Ctrl+]
root@scorpion:~# zlogin -C -e ".." web
[Connected to zone 'web' console]
web console login: root
Password:
Last login: Fri Apr 30 19:53:51 2021 on pts/2
NOTE: system has 1 active defect; run 'fmadm list' for details.
Apr 30 20:10:16 web login: ROOT LOGIN /dev/console
Oracle Corporation SunOS 5.11 st_095.server April 2021
root@web:~#
root@web:~#
root@web:~#
root@web:~# ..
[Connection to zone 'web' console closed]
root@scorpion:~#
Referências
Guidelines for Oracle Solaris Zones in the Oracle Solaris 11.4
Oracle Virtual Box 6.1
Oracle Solaris 11.4 x86
Introduction to Oracle® Solaris 11.4 Virtual Environments
Managing ZFS File Systems in Solaris 11.4
Solaris 11 Downloads Create a Local Repository
New Oracle Solaris Keyboard Software Support
Securing Users and Processes Solaris 11.4 How to Configure Oracle Solaris 11 Using the sysconfig Command