快速建立jail虚拟机(配图)
本帖最后由 OKatCU 于 2012-08-21 12:33 编辑快速建立jail虚拟机
###参照FreeBSD手册来建立jail是非常麻烦的,并要求make buildworld,实在是令人痛苦;
###另:网络上的多数的介绍用ezjail来建立jail也要求make buildworld。呼呼...
###本文介绍用ezjail来建立jail的方法及操作过程,免除make buildwold这个漫长又痛苦的编译过程。
###一些约定:
### 本文的内容,以#开头为说明性文字;
### 以美元符号$开头的是命令;
### 无#、$打头的为相关配置文件的内容。
0、
###首先安装ezjail
$cd/usr/ports/sysutils/ezjail
$make install clean
### 修改配置文件,使ezjail可用
$ee /etc/rc.conf
ezjail_enable="YES"
1、
### 安装world & kernel
$ezjail-admin install -h ftp.tw.freebsd.org
### 不到4分钟下载完成,See this: 54107736 bytes received in 03:54 (225.48 KiB/s)。
### 国内ftp.cn.freebsd.org下载速度约50KB。
### ftp.cs.nctu.edu.tw 台湾交通大学资讯工程学系。
### 宿主机kernel已经更新至9.0-RELEASE-p4(uname -r可查看系统版本),但FTP服务器上没有9.0-RELEASE-p4。
### 按提示输入9.0-RELEASE,先安装9.0-RELEASE。
### 然后使用ezjail-admin update -u命令将系统更新至最新版:9.0-RELEASE-p4。
### 下图中的黄色部分需手动输入
2、
### 更新
$ezjail-admin update -u
### 更新过程中会有以下提示,表示将会更新至最新版:9.0-RELEASE-p4。
### See this: The following files will be updated as part of updating to 9.0-RELEASE-p4:
3、
### 配置IP,在/etc/rc.conf加入以下内容:
### 参考手册的《虚拟主机》部分:
### http://www.freebsd.org/doc/zh_CN ... -virtual-hosts.html
$ee /etc/rc.conf
###IP Address for Jails
ifconfig_em0_alias0="inet 192.168.1.25 netmask 255.255.255.255"
ifconfig_em0_alias1="inet 192.168.1.26 netmask 255.255.255.255"
ifconfig_em0_alias2="inet 192.168.1.27 netmask 255.255.255.255"
ifconfig_em0_alias3="inet 192.168.1.28 netmask 255.255.255.255"
4、
### 创建虚jail拟机实例:mysql
$ezjail-admin create myslq.jail.com 192.168.1.25
### 将会在/usr/jails目录下用虚拟机名字创建虚拟机实例的根目录mysql.jail.com
### /usr/jails/mysql.jail.com
### 或:指定虚拟机根目录名
$ezjail-admin create -r mysql myslq.jail.com 192.168.1.25
### /usr/jails/mysql
5、
### 允许在jail虚拟机里访问网络
$sysctlsecurity.jail.allow_raw_sockets=1
$ee /etc/sysctl.conf
security.jail.allow_raw_sockets=1
6、
### 从freebsd.org网站下载最新的ports树,注意是大写字母P。
$ezjail-admin update -P
7、
### 启动jail虚拟机实例
/usr/local/etc/rc.d/ezjail start mysql.jail.com
8、
### 停止jail虚拟机实例
$/usr/local/etc/rc.d/ezjail stop mysql.jail.com
9、
### 列出jail虚拟实例
$ezjail-admin list
### 显示如下:
### 说明:list出的JID为数字的表示该jail虚拟机实例已经启动;
### JID为N/A的表示该jail虚拟机实例没有启动。
10、
### 从宿主机登入jail虚拟机
$jexec 1 sh
### jexec为FreeBSD自带的jail命令,不属于ezjail;
### 数字1为jail虚拟机实例JID;
### sh表示进入jail虚拟机后的shell是sh,亦可改用其它shell,如:tcsh。
### www.jail.com是宿主机,nginx.jail.com mysql.jail.com php-fpm.jail.com是jail虚拟机。
###以上均是在宿主机上操作。
#########################################################################################
###以下均是在jail虚拟机里操作。
11、
### 退出jail虚拟机,在宿主执行jexec 1 sh命令登入jail虚拟机后若要退出,执行以下命令即可。
$exit
12、
### 修改虚拟机root口令
$passwd root
13、
### 在虚拟机中添加用户scct
$mkdir /home
$pw group add admins
$pw user add scct -m -g admins -G admins,wheel
$passwd scct
###关于用pw添加用户的说明
###首先建立在根目录下添加/home目录
###添加管理组admins
###添加用户scct
###
###添加用户命令各参数的解释
###-m 表示在/home目录下建立用户个人目录,如:/home/scct
###-g admins表示用户scct主要隶属于管理组admins
### -G admins,wheel表示将用户scct加入到wheel系统组,以使其可su到root用户;
### 此处重复一次admins的意义是:当你用pw group show admins命令查看admins成员时可以看到scct,否则的话看不到admins组下面有scct成员的。
14、
### 启动虚拟机的sshd
$ee /etc/rc.conf
sshd_enable="YES"
$/etc/rc.d/sshd start
### 若不启动虚拟的sshd,用ssh客户端软件登入以上IP:192.168.1.25的话,连接的将是宿主机
### 用hostname命令可查看当前登入的机器是宿主机或者jail虚拟机。
15、
### 在虚拟机里添加DNS
$ee /etc/resolv.conf
nameserver 192.168.1.1
16、
### 在虚拟机里添加网关地址
$ee /etc/rc.conf
defaultroute="192.168.1.1"
17、
### 安装多线程ftp下载工具axel
$cd /usr/ports/ftp/axel
$make install clean
### 修改配置以使安装ports软件包时用axel代替系统自带的fetch
$ee /etc/make.conf
#############################################################
##AXEL for ports to download pkg with multi-thread.
FETCH_CMD=/usr/local/bin/axel
FETCH_BEFORE_ARGS= -n 10 -a
FETCH_AFTER_ARGS=
DISABLE_SIZE=yes
MASTER_SITE_OVERRIDE?=\
ftp://ftp.tw.freebsd.org/${DIST_SUBDIR}/
18、
### 安装软件包,如:MySQL
$cd /usr/ports/databases/mysql55-server
$make install clean
写于2012.08.17
By C.Y. Jiang
本帖最后由 zeissoctopus 于 2012-08-18 00:52 编辑
多謝分享,我也是用 ezjail,若可以增加介紹 ezjail 特性 flavour 的環節,就更圓滿 以后有时间再研究flavour。:lol 不错,还再一些最终的效果图就更好了 beyondfly 发表于 2012-08-18 16:24 static/image/common/back.gif
不错,还再一些最终的效果图就更好了
比较赞成这个建议 ^_^ 期待楼主完善一下 回复 5# ulovko
玩过VMware KVM 但是jail的虚拟机还真没有玩过,如果有图的话,就直观多了
回复 6# beyondfly
第一本书有讲: http://bbs.chinaunix.net/thread-3751530-1-1.html 回复 7# ulovko
不知道这位兄台需要什么样的效果图?
我写出的已经是很详细的操作过程了,相比网络上其它介绍Jail的文章,最关键的一点就是无须make buildworld,节省了大量时间。
关于Jail的概念性的介绍请看手册,如果你理解了Jail的基本概念,相信你按照我所介绍的方法去操作,定能很快的配置好FreeBSD的Jail虚拟机。
Just do it.
如果在配置操作过程碰到什么问题,我会很乐意来回答你的。 多谢版主 多谢版主
页:
[1]
2