OKatCU 发表于 2012-08-18 00:17

快速建立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:48

本帖最后由 zeissoctopus 于 2012-08-18 00:52 编辑

多謝分享,我也是用 ezjail,若可以增加介紹 ezjail 特性 flavour 的環節,就更圓滿

OKatCU 发表于 2012-08-18 01:06

以后有时间再研究flavour。:lol

beyondfly 发表于 2012-08-18 16:24

不错,还再一些最终的效果图就更好了

ulovko 发表于 2012-08-18 16:44

beyondfly 发表于 2012-08-18 16:24 static/image/common/back.gif
不错,还再一些最终的效果图就更好了

比较赞成这个建议 ^_^ 期待楼主完善一下

beyondfly 发表于 2012-08-18 20:12

回复 5# ulovko

玩过VMware KVM 但是jail的虚拟机还真没有玩过,如果有图的话,就直观多了


   

ulovko 发表于 2012-08-20 10:51

回复 6# beyondfly


    第一本书有讲: http://bbs.chinaunix.net/thread-3751530-1-1.html

OKatCU 发表于 2012-08-20 23:35

回复 7# ulovko


    不知道这位兄台需要什么样的效果图?



   我写出的已经是很详细的操作过程了,相比网络上其它介绍Jail的文章,最关键的一点就是无须make buildworld,节省了大量时间。


   关于Jail的概念性的介绍请看手册,如果你理解了Jail的基本概念,相信你按照我所介绍的方法去操作,定能很快的配置好FreeBSD的Jail虚拟机。


Just do it.


如果在配置操作过程碰到什么问题,我会很乐意来回答你的。

beyondfly 发表于 2012-08-21 20:56

多谢版主            

beyondfly 发表于 2012-08-21 20:57

多谢版主            
页: [1] 2
查看完整版本: 快速建立jail虚拟机(配图)