labunix's blog

labunixのラボUnix

FreeBSD10.1-RC4でqjail3.6をインストールしてみた。

■FreeBSD10.1-RC4でqjail3.6をインストールしてみた。

$ uname -r
10.1-RC4-p1

$ pkg search qjail
qjail-3.6
qjail2-2.2

$ su root -c 'pkg install -y qjail-3.6'

■10.1-RELEASEは今のところ無いので、ftpホストを指定する方法は使えない。

$ w3m -dump "ftp://ftp2.jp.freebsd.org/pub/FreeBSD/releases/amd64/amd64/"
FTP Directory: ftp://ftp2.jp.freebsd.org/pub/FreeBSD/releases/amd64/amd64/

[DIRUP] Parent Directory
[DIR]  10.0-RELEASE . . . . . . . . . . Jan 17  2014
[LINK] 8.3-RELEASE. . . . . . . . . . . Mar 22  2013         [VIEW] [DOWNLOAD] -> ../8.3-RELEASE
[LINK] 8.4-RELEASE. . . . . . . . . . . Oct 03  2013         [VIEW] [DOWNLOAD] -> ../8.4-RELEASE
[DIR]  9.1-RELEASE. . . . . . . . . . . Jul 06 13:21
[DIR]  9.2-RELEASE. . . . . . . . . . . Sep 27  2013
[DIR]  9.3-BETA3. . . . . . . . . . . . Jun 13 17:19
[DIR]  9.3-RC3. . . . . . . . . . . . . Jul 09 01:48
[DIR]  ISO-IMAGES . . . . . . . . . . . Jul 02 16:25

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

$ w3m -dump "ftp://ftp.jp.freebsd.org/pub/FreeBSD/releases/amd64/amd64/" 
FTP Directory: ftp://ftp.jp.freebsd.org/pub/FreeBSD/releases/amd64/amd64/

[DIRUP] Parent Directory
[DIR]  10.0-RELEASE . . . . . . . . . . Jan 17  2014
[DIR]  10.1-RC3 . . . . . . . . . . . . Oct 23 00:40
[DIR]  10.1-RC4 . . . . . . . . . . . . Nov  1 07:10
[LINK] 8.4-RELEASE. . . . . . . . . . . Oct  3  2013         [VIEW] [DOWNLOAD] -> ../8.4-RELEASE
[DIR]  9.1-RELEASE. . . . . . . . . . . Jul  6 22:21
[DIR]  9.2-RELEASE. . . . . . . . . . . Sep 28  2013
[DIR]  9.3-RELEASE. . . . . . . . . . . Jul 12 05:36
[DIR]  ISO-IMAGES . . . . . . . . . . . Sep 13 22:50

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

■インストールに使用したメディアからscpで持ってくる。
 ※w3mでそのままダウンロードしてもよい。

$ ls vmware/SharedVMs/iso_system/FreeBSD-10.1-RC4-amd64-dvd1.iso 
vmware/SharedVMs/iso_system/FreeBSD-10.1-RC4-amd64-dvd1.iso

$ scp vmware/SharedVMs/iso_system/FreeBSD-10.1-RC4-amd64-dvd1.iso bsd10:~/

■ISOイメージのマウント
 デバイスに変換することと、mountタイプを指定することが必要。

$ sudo mdconfig -a -t vnode -f FreeBSD-10.1-RC4-amd64-dvd1.iso 
md0
$ sudo mdconfig -l
md0 
$ ls -l /dev/md0 
crw-r-----  1 root  operator  0x5f Nov 22 18:09 /dev/md0

$ sudo mount -o ro /dev/md0 /media
mount: /dev/md0: Invalid argument
$ sudo mount -t cd9660 -o ro /dev/md0 /media/

■ファイル指定でqjailのベース環境を指定する。

$ sudo find /media/ -type f -name "base.txz"
/media/usr/freebsd-dist/base.txz
$ sudo qjail install -f /media/usr/freebsd-dist/
 
The RELEASE distribution files are populating template.
Est LT 1 minute elapse time for this to complete.
 
sharedfs is being populated.
Est LT 1 minute elapse time for this to complete.
 
Successfully installed qjail system.
 
■ISOイメージのアンマウント

$ sudo umount /media
$ sudo mdconfig -d -u 0
$ sudo mdconfig -l

■ディレクトリ構成
 「archive」は「qmail archive」コマンドの保存先。
 「flavors」はコンソールとsshのログインのための設定。
 「sharedfs」はjailの共有ディレクトリ。
 「template」が雛形。

$ ls /usr/jails/*                          
/usr/jails/archive:

/usr/jails/flavors:
default		ssh-default

/usr/jails/sharedfs:
bin	lib	libexec	sbin	sys	usr

/usr/jails/template:
COPYRIGHT	home		mnt		sharedfs	var
bin		lib		proc		sys
dev		libexec		root		tmp
etc		media		sbin		usr

■jail環境を作る前の確認。
 空の状態のリスト。
 NIC、IP、Jailnameを指定すればとりあえず動きそう。

$ sudo qjail list 

STA JID  NIC IP              Jailname
--- ---- --- --------------- --------------------------------------------------

■Jail環境を作ってみる。

$ sudo qjail create -n em0 -4 192.168.100.1 qjail001
Successfully created  qjail001

■確認

$ sudo qjail list
 

STA JID  NIC IP              Jailname
--- ---- --- --------------- --------------------------------------------------
DS  N/A  em0 192.168.100.1   qjail001
 

$ ls /usr/local/etc/qjail.*
/usr/local/etc/qjail.portsnap.conf

/usr/local/etc/qjail.fstab:
qjail001

/usr/local/etc/qjail.global:
qjail001

/usr/local/etc/qjail.local:
qjail001

/usr/local/etc/qjail.vnet:

■qjail001の起動と停止

$ sudo qjail start qjail001
Jail successfully started  qjail001

$ sudo qjail stop qjail001
Jail successfully stopped  qjail001

■起動してコンソールログイン、「exit」でjail環境から抜ける。

$ sudo qjail start qjail001;sudo qjail console qjail001
Jail successfully started  qjail001
FreeBSD 10.1-RC4-p1 (GENERIC) #0: Tue Nov  4 16:14:17 UTC 2014

Welcome to your FreeBSD jail.
qjail001 /root >exit
logout

■qjail環境の停止とアーカイブ

$ sudo qjail stop qjail001 && sudo qjail archive qjail001
Jail successfully stopped  qjail001
Successfully archived qjail001

$ ls /usr/jails/archive/
qjail001@201411221834.28.tar

$ sudo qjail list
 

STA JID  NIC IP              Jailname
--- ---- --- --------------- --------------------------------------------------
DS  N/A  em0 192.168.100.1   qjail001
 
■qjail環境の削除とリストア
 稼働中のqjail環境が壊れた想定で、アーカイブからリストア

$ sudo qjail delete qjail001
Successfully deleted  qjail001
$ sudo qjail list           
 

STA JID  NIC IP              Jailname
--- ---- --- --------------- --------------------------------------------------
 
 
$ sudo qjail restore qjail001
Successfully restored qjail001
$ sudo qjail list
 

STA JID  NIC IP              Jailname
--- ---- --- --------------- --------------------------------------------------
DS  N/A  em0 192.168.100.1   qjail001