(Polski) Przygotowanie kontenera dla OpenDJ
Przygotowanie kontenera (Solaris zone) dla serwera usług katalogowych OpenDJ
Uruchamiam format aby system wykrył dyski i pokazał ich WWN:
# format
Searching for disks...done
c4t600A0B80002ACF5A000015954E16BDE3d0: configured with capacity of 15.00GB
c4t600A0B80002ACF5A000015974E16BE5Fd0: configured with capacity of 15.00GB
c4t600A0B80002ACF5A000015994E16BEDBd0: configured with capacity of 15.00GB
Tworzę zpoolę raidz o nazwie zldapdj1, na której umieszczę filesystemy kontenera, ustawiam od razu punkt montowania:
# zpool create -m /zones/ldapdj1 zldapdj1 raidz c4t600A0B80002ACF5A000015954E16BDE3d0 \
> c4t600A0B80002ACF5A000015974E16BE5Fd0 c4t600A0B80002ACF5A000015994E16BEDBd0
Tworzę filesystemy ZFS dla ustawień i danych (etc i var):
# zfs create -o mountpoint=/data/etc/ldapdj1 zldapdj1/etc
# zfs create -o mountpoint=/data/var/ldapdj1 zldapdj1/var
Na filesystemie z danymi zmiennymi wyłączam atime
dla poprawy wydajności:
# zfs set atime=off zldapdj1/var
Tworzę plik z konfiguracją kontenera i zapisuję go jako ldapdj1.cfg
, jego zawartość:
create -b
set zonepath=/zones/ldapdj1
set autoboot=true
set ip-type=shared
add inherit-pkg-dir
set dir=/lib
end
add inherit-pkg-dir
set dir=/platform
end
add inherit-pkg-dir
set dir=/sbin
end
add inherit-pkg-dir
set dir=/usr
end
add inherit-pkg-dir
set dir=/usr/local
end
add fs
set dir=/data/etc
set special=/data/etc/ldapdj1
set type=lofs
end
add fs
set dir=/data/var
set special=/data/var/ldapdj1
set type=lofs
set options=[noatime]
end
add net
set address=192.168.10.45
set physical=qfe2
end
Utworzenie konfiguracji kontenera na podstawie pliku ldapdj1.cfg
:
# zonecfg -z ldapdj1 -f ldapdj1.cfg
Instalacja kontenera:
# zoneadm -z ldapdj1 install
/zones/ldapdj1 must not be group readable.
/zones/ldapdj1 must not be group executable.
/zones/ldapdj1 must not be world readable.
/zones/ldapdj1 must not be world executable.
could not verify zonepath /zones/ldapdj1 because of the above errors.
zoneadm: zone ldapdj1 failed to verify
Katalog /zones/ldapdj1
ma zbyt szerokie uprawnienia, trzeba je ograniczyć i spróbować raz jeszcze:
# chmod 700 /zones/ldapdj1
# zoneadm -z ldapdj1 install
Preparing to install zone .
Creating list of files to copy from the global zone.
Copying files to the zone.
Determining zone package initialization order.
Preparing to initialize packages on the zone.
Initialized packages on zone.
Zone is initialized.
Installation of packages was skipped.
The file contains a log of the zone installation.
Instalacja kontenera zakończona, trzeba dokończyć konfigurację. Ja często korzystam z pliku sysidcfg
umieszczonego w katalogu /etc danego kontenera. Najpierw jednak trzeba ustawić kontener w tryb ready:
# zoneadm -z ldapdj1 ready
# vi /zones/ldapdj1/root/etc/sysidcfg
Zawartość pliku sysidcfg
:
system_locale=C
timezone=Poland
timeserver=localhost
terminal=vt100
nfs4_domain=priv.domain.tld
name_service=none
network_interface=qfe2 { primary
hostname=ldapdj1
ip_address=192.168.X.X
netmask=255.255.255.0
default_route=NONE
protocol_ipv6=no }
security_policy=NONE
root_password=XXXXXXXXXXX
service_profile=limited_net
Uruchamiam zone i loguję się na jej konsolę (opcja -C
). Celowo przedefiniowuję klawisz ESC (opcja -e +
), gdyż standardowa sekwencja ~.
rozłączyła by mi nie tylko konsolę ale też terminal, który mam podłączony do serwera.
# zoneadm -z ldapdj1 boot
# zlogin -C -e + ldapdj1
[Connected to zone 'ldapdj1' console]
...
rebooting system due to change(s) in /etc/default/init
[NOTICE: Zone rebooting]
SunOS Release 5.10 Version Generic_142909-17 64-bit
Copyright (c) 1983, 2010, Oracle and/or its affiliates. All rights reserved.
Hostname: ldapdj1
Reading ZFS config: done.
ldapdj1 console login:
Można zakończyć sesję z konsolą wydając sekwencję kontrolną:
+.
[Connection to zone 'ldapdj1' console closed]
A następnie zalogować się normalnie do kontenera w celu dalszych działań:
# zlogin ldapdj1
[Connected to zone 'ldapdj1' pts/2]
Oracle Corporation SunOS 5.10 Generic Patch January 2005
W tym miejscu warto ustawić sobie środowisko, ścieżki itp.