- 论坛徽章:
- 0
|
本帖最后由 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虚拟机里访问网络
$sysctl security.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
|
评分
-
查看全部评分
|