Zones è configurabile in due modi diversi: nel primo caso la zona creata in realta condivide col sistema base alcune directory, in particolare /usr /lib /sbin /platform . Questo fa si che lo spazio disco occupato dalla zona sia di poco più di 100 mega. La zona infatti ha riservate /etc e /var.
I comandi da imparare sono zonecfg, zoneadm, zlogin.
Creiamo la nostra zona:
# zonecfg -z zonaditest
zonaditest: No such zone configured
Use 'create' to begin configuring a new zone.
zonecfg:small-zone> create
zonecfg:small-zone> set autoboot=true
zonecfg:small-zone> set zonepath=/export/zonaditest
zonecfg:small-zone> add net
zonecfg:small-zone:net> set address=192.168.1.101
zonecfg:small-zone:net> set physical=hme0
zonecfg:small-zone:net> end
zonecfg:small-zone> info
zonepath: /export/zonaditest
autoboot: true
pool:
inherit-pkg-dir:
dir: /lib
inherit-pkg-dir:
dir: /platform
inherit-pkg-dir:
dir: /sbin
inherit-pkg-dir:
dir: /usr
net:
address: 192.168.1.101
physical: hme0
zonecfg:small-zone> verify
zonecfg:small-zone> commit
zonecfg:small-zone> exit
Analizziamo. Abbiamo lanciato il comando zonecfg per configurare la zona. Il sistema ci ha detto che la zona non esiste e inizia la configurazione ex-novo. In realtà è tutto abbastanza chiaro. Il parametro create verrà ripreso successivamente perchè merita il disco sull'argv -b che permette di create una zona senza inherit-pkg con la global zone.
Se volessimo creare una zona a se stante, senza inhinerit packages, dovremmo agire così:
# zonecfg -z zonaditest2
zonaditest2: No such zone configured
Use 'create' to begin configuring a new zone.
zonecfg:small-zone> create -b
zonecfg:small-zone> set autoboot=true
zonecfg:small-zone> set zonepath=/export/zonaditest2
zonecfg:small-zone> add net
zonecfg:small-zone:net> set address=192.168.1.102
zonecfg:small-zone:net> set physical=hme0
zonecfg:small-zone:net> end
zonecfg:small-zone> info
zonepath: /export/zonaditest2
autoboot: true
pool:
net:
address: 192.168.1.102
physical: hme0
zonecfg:small-zone> verify
zonecfg:small-zone> commit
zonecfg:small-zone> exit
Come prima, l'unica differenza è l'argv -b nel comando create. Una zona senza inhinerit packages occupa però molto di più, nel mio caso 3giga, diciamo 2/3 dello spazio occupato dal vostro sistema solaris base.
Solaris crea in /etc/zones dei profili xml per ogni zona. Prendiamo la zonaditest2:
# cat /etc/zones/zonaditest2.xml
< ?xml version="1.0" encoding="UTF-8"?>
< !DOCTYPE zone PUBLIC "-//Sun Microsystems Inc//DTD Zones//EN" "file:///usr/share/lib/xml/dtd/zonecfg.dtd.1">
< zone name="zonaditest2" zonepath="/export/zonaditest2" autoboot="true">
< network address="192.168.1.102" physical="hme0"/>
< /zone>
Abbastanza semplice. Il resto nella prossima parte.