13/02/2010
Une fois que l'on a goûté aux jails, il devient difficile de s'en passer. Un nouveau projet, le test d'une configuration, tout est prétexte à un /etc/rc.d/jail start manouvellejail
Pour les loutres qui pensent que la solution officielle est un peu overkill, que le principe de lien+nullfs de ezjail ne correspond pas à leur besoin, je vous propose une solution à base de zfs, car zfs c'est le bien.
Bien qu'une telle solution me trottait dans la tête depuis un certain temps, je me suis largement inspiré de ce courriel.
On commence par télécharger le tgz-ki-va-bien.
> tar tzf jail.tgz
./jail/
./jail/tiny.jail
./jail/mk_template.sh
./jail/mk_jail.sh
./jail/medium.jail
./jail/large.jail
./jail/jail.common
Un rapide coup d'oeil dans mk_template.sh et jail.common nous apprend qu'il faut commencer par récupérer les sets base et manpages, sans doute la partie la plus difficile :).
Une fois cette délicate opération réalisée, à nous les joies de la création de jail:
> sudo ./mk_template.sh medium
Create 'medium' template
Create 'medium' fs
Populate 'medium'
Configure /etc/rc.conf for jail 'medium'
Configure 'medium'
Configure 'medium' /etc/rc.conf
Configure 'medium' /etc/ssh/sshd_config
Configure 'medium' /etc/resolv.conf
Configure 'medium' /etc/mail/submit.cf
Configure 'medium' /etc/periodic.conf
Configure 'medium' /etc/csh.cshrc
Configure 'medium'
'medium': done
Template medium is ready to snapshot
Next step:
- /etc/rc.d/jail start medium
- jexec medium /bin/csh
configure medium
add users (dsx)
add packages (sudo, rsync, vim, tmux ...)
...
- /etc/rc.d/jail stop medium
mk_jail medium www "lo1|172.16.0.1"
mk_jail medium www2 "lo1|172.16.0.2,em0|2001:a:b:c:d:e:f:80" /=5G
mk_jail medium www3 "vr0|2001:a:b:c:d:e:f:80" /=5G /tmp=1024M
Une jail de base est créée à partir de medium.jail. Une fois cette jail configurée on peut utiliser les fonctionnalités de zfs (snapshot + clone):
> sudo ./mk_jail.sh medium ldap "em0|2001:7a8:820:0:216:3eff:fe11:2231" /=1G /tmp=512M /var=1G
Create 'medium' snapshot
Done
Create 'medium' clone
Done
'ldap' is ready to start: /etc/rc.d/jail start ldap
Le tout est sous licence demerdeuneziziche et les modifications éventuelles sous licence larache. Enjoy :)
Update:
git clone git://repo.bsdsx.fr/mk_jail
Ou alors repo.bsdsx.fr
Pages : 1
Rss