niedziela, 15 maja 2011

Automatyzacja Solaris Zones w Illumos/OpenIndiana

Prosty przykład na automatyzacje tworzenia Zon w Illumos/Solaris 11/OpenIndiana.


Nazwa zony i fizycznego interfejsu sieciowego:

ZNAME="il1"
NIC="nge0"


Tworzymy wirtualną kartę sieciową oraz kontener, do którego będziemy instalować zonę:


dladm create-vnic -l ${NIC} ${ZNAME}
zfs create -o canmount=off -o mountpoint=/zones rpool/zones


Konfiguracja strefy. W podanym przykładzie mamy:
- montowany katalog /code z globalnej strefy
- ograniczenie CPU do 0.5 rdzenia
- ograniczenie pamięci do 512MB i swap do 768MB


cat >${ZNAME}.cfg << EOF
create
set autoboot=true
set zonepath=/zones/${ZNAME}
set ip-type=exclusive
add fs
set dir=/code
set special=/code
set type=lofs
end
add net
set physical=${ZNAME}
end
add capped-cpu
set ncpus=0.5
end
add capped-memory
set physical=512m
set swap=768m
end
EOF


Podstawowa konfiguracja systemu zony.
Uwaga, wszystkie parametry muszą się zgadzać z istniejącą infrastrukturą.
Jeśli przykładowo nie będzie wpisu w DNS dla zony, to konfigurator będzie prosił o manualne podanie poprawnego hostname/dns itp:


cat > ${ZNAME}.sysidcfg << EOF
system_locale=C
terminal=xterms
network_interface=primary {
hostname=${ZNAME}
default_route=10.10.10.1
ip_address=10.10.10.12
netmask=255.255.255.0
protocol_ipv6=no
}
security_policy=NONE
name_service=DNS {
domain_name=example.com
name_server=10.20.20.20,10.20.20.21
}
nfs4_domain=dynamic
timezone=Poland
root_password=passwPassWorD
EOF


Konfiguracja zony:


zonecfg -z ${ZNAME} -f ${ZNAME}.cfg


Utworzenie ZFSu i instalacja:


zfs create -o quota=50g rpool/zones/${ZNAME}
chmod 700 /zones/${ZNAME}
ptime zoneadm -z ${ZNAME} install


Po instalacji wrzucamy konfigurację i odpalamy zainstalowaną strefę:

zoneadm -z ${ZNAME} ready
cp ${ZNAME}.sysidcfg /zones/${ZNAME}/root/etc/sysidcfg
zoneadm -z ${ZNAME} boot
zlogin -C ${ZNAME}


Jeśli wszystkie przekazane parametry były poprawne, to powinniśmy dostać ekran logowania, w innym wypadku konfigurator poprosi o korektę.

Przykład przetestowany na OpenIndiana b148.

Otwarte pliki w Solaris/Illumos

Jak szybko sprawdzić jakie mamy otwarte pliki w Solarisie/Illumosie?
Najprościej za pomocą pfiles:


pfiles /proc/*


lub


ps -ef -o pid | sort | xargs pfiles

środa, 11 maja 2011

Lokalne repozytorium OpenIndiana - mini howto

Cel: utworzenie lokalnego repozytorium IPS OpenIndiana dla buildu oi_148 działające na porcie 8080.

1. Najlepiej utworzyć repozytorium na systemie z tą samą wersją IPS (tutaj b148).
2. Pobieramy repozytorium dla buildu b148:

wget -c http://dlc.openindiana.org/repos/oi_148.tar.bz2

3. Weryfikujemy sumy kontrolne archiwum z sumami zawartymi w pliku http://dlc.openindiana.org/repos/oi_148.tar.bz2.md5:

digest -a md5 oi_148.tar.bz2

4. Rozpakowujemy archiwum do docelowego katalogu np /repo/:

cd /repo/ && gtar xjf ~/oi_148.tar.bz2

5.Dodajemy dedykowaną instancję serwisu pkg/server:

svccfg -s svc:/application/pkg/server add oi_148 
svccfg -s svc:/application/pkg/server:oi_148 addpg pkg application
svccfg -s svc:/application/pkg/server:oi_148 setprop pkg/inst_root=/repo/oi_148
svccfg -s svc:/application/pkg/server:oi_148 setprop pkg/port=8080
svccfg -s svc:/application/pkg/server:oi_148 setprop pkg/pkg_root=/
svccfg -s svc:/application/pkg/server:oi_148 setprop pkg/readonly=true
svccfg -s svc:/application/pkg/server:oi_148 setprop pkg/threads=50

6. Upewniamy się, że publisher repozytorium jest openindiana.org:

/usr/lib/pkg.depotd -p 8080 -d /repo/oi_148 --set-property publisher.prefix=openindiana.org
(tutaj po wystartowaniu serwera zabijamy go za pomocą CTRL-C)

7. Startujemy serwis repozytorium:

svcadm refresh svc:/application/pkg/server:oi_148
svcadm enable svc:/application/pkg/server:oi_148

8. IPS powinien już działać, można ustawić publishera dla openindiana.org na lokalnym hoście:

pkg set-publisher -O http://localhost:8080 openindiana.org

Oczywiście repozytorium nie ogranicza się tylko do localhostu.

wtorek, 10 maja 2011

Konfiguracja sieci w OpenIndiana

Prosty przykład w jaki sposób ustawić statyczny adres IP dla interfejsu rtls0:


ipadm create-addr -T static -a local=10.10.10.10/24 rtls0/v4


Od tego momentu interfejs rtls0 posiada statyczny adres 10.10.10.10 na masce 24 bitowej.
Ustawienie jest stałe - tzn po restarcie serwera rtls0 nadal posiada ustawiony adres.
Zapominamy tym samym o /etc/hostname.rtls0 /etc/netmasks itd.

Do pełni szczęścia ustawmy jeszcze domyślną bramkę na 10.10.10.1:

route -p add default 10.10.10.1


Parametr '-p' (persistent) sprawia, że system pamięta domyślna droga routowania po restarcie.
Zapominamy tym samym o edycji /etc/defaultrouter.

Przedstawiony przykład jest zalecanym sposobem na konfigurację sieci i dotyczy OpenIndiany, Illumosa oraz Solaris 11.

Oczywiście należy pamiętać również o systemie nazewniczym i usłudze NWAM, więcej w starszym poście dotyczącym sieci w OpenSolaris.