对于一线开发人员来讲,一提到虚拟机平台,每每会让人联想到在价格昂贵的服务器上部署VMware vSphere之类软件来实现。php
笔者做为一个资深码农,也是一直梦寐着在本身家中打造一个真正的家庭私有云,秒杀那些硬盘厂商所吹嘘的“Jia私有云”。html
功夫不负有心人,通过反复的实验,浏览了不少国外的社区之后,笔者真的实现了这个目标,并且,真的很便宜哦~!mysql
整理出一份教程放在这里,但愿能扩展一下你们的思路。web
材料sql
HP DL380 G7 2U 服务器apache
- Core 24, Mem 40G, SAS 146G * 2, Raid 0ubuntu
Ubuntu Server 16.04 LTS浏览器
Oracle Virtualbox 5.1服务器
Oracle_VM_VirtualBox_Extension_Pack 5.1oracle
选择服务器
市场上有不少IDC机房淘汰的服务器在二手市场上销售,真的是白菜价格。
想入手服务器的筒子们,能够认真考察考察。
笔者在这里不给任何人作广告,只是说一点:在家用,必定要注意噪音问题,不然,被家里的大领导给禁止了就没的完了。
参考文章:
操做系统
因为服务器是一种有别于通常家用机设备,所以,对于家用机(或者笔记本)来讲天经地义的一些经验和安装方法,每每不能直接搬到服务器上。
笔者实际测试的系统包括:
其中,只有一下三种操做系统可以顺利启动:
考虑到维护和稳定性的要求,最终选择了Ubuntu Server 16.04做为服务器主机的操做系统。
虚拟机平台
网上有众多的文章都主张选用VMware vSphere,可是License是个大问题,反正笔者是买不起的。
使用了多年的VirtualBox天然成了个人首选,但是VirtualBox是否能在Server版本的Linux上成功虚拟带有图形界面的OS仍是个问题?
幸亏最终找到了一个叫作phpvirtualbox的软件,可以经过网页的形式将VirtualBox的操做界面展示出来,
再加上Extension Pack扩展包,一个Headless服务器的蓝图便浮出水面。
国外的一个网站提供了本教程后面一半的内容,感谢那个名叫SK的做者的分享。
好了,铺垫的介绍就到这里,让咱们赶快开始吧。
安装步骤
第一步 安装Ubuntu Server 16.04 LTS
(安装步骤省略,请自行用Bing搜索)
第二步 配置Ubuntu Server 16.04 LTS
使用固定IP地址。
1 vi /etc/network/interfaces
如下是笔者机器上的例子:
1 # The primary network interface 2 auto enp3s0f0 3 # iface enp3s0f0 inet dhcp 4 iface enp3s0f0 inet static 5 address 192.168.11.16 6 netmask 255.255.255.0 7 gateway 192.168.11.1
手工指定DNS服务器
- DNS服务器众多,国外的不少DNS资源没法访问,因此笔者选择了一个最保险的DNS:要要死(114)
vi /etc/resolvconf/resolv.conf.d/base
向其中添加一行:
nameserver 114.114.114.114
(若是你有多个DNS服务器的话,请采用上面的格式,每行添加一个DNS的IP地址)
让刚才的变动生效,你须要手工重启networking服务
/etc/init.d/networking restart
第三步 更新Ubuntu操做系统
这多是你们最熟悉的一个指令了apt-get。他看起来太经典了,不是吗?
1 apt-get update 2 apt-get -y dist-upgrade
升级完成后,顺便安装如下组件:
apt-get install build-essential dkms unzip wget
apt-get install apache2 php php-mysql libapache2-mod-php php-soap php-xml
到这里,请必定重启一下服务器。
因为服务器启动速度很慢,一般5 ~ 10分钟的样子,各位同窗尽能够利用这段时间来放松一下。
第四步 安装VirtualBox
VirtualBox提供了灵活的安装方式,好比,能够选择经过deb包或者repository的来安装。
笔者这里使用repository的方式来进行说明,其它方式,请参考Oracle VirtualBox的官方网站。
首先,要作的就是注册这个官方的repository:
vi /etc/apt/sources.list
笔者将URL地址添加进去。注:这里"xenial"是Ubuntu的发型代号,各位须要根据本身所使用的Ubuntu版本添加特定的仓库地址,不能混用。
deb http://download.virtualbox.org/virtualbox/debian xenial contrib
注册官方的Key
wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add -
获取官方repository信息,并开始安装
1 apt-get update 2 apt-get install virtualbox-5.1
安装完成后,请确认vboxdrv的状态
systemctl status vboxdrv
接着,要作的就是安装VirtualBox的扩展包。能够说本方案之因此可以成功,主要依靠的就是这个扩展包的功能。
1 wget http://download.virtualbox.org/virtualbox/5.1.26/Oracle_VM_VirtualBox_Extension_Pack-5.1.26-117224.vbox-extpack 2 VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-5.1.26-117224.vbox-extpack
当你看到形以下面的提示,那么恭喜你,到目前为止安装很顺利。
第五步 安装Web客户端phpvirtualbox
也许你们对phpVirtualBox会比较陌生,引用官方网站上的一句话:A web-based front-end to VirtualBox written in PHP
能够在这里下载到最新版本。
wget https://sourceforge.net/projects/phpvirtualbox/files/phpvirtualbox-5.0-5.zip
unzip phpvirtualbox-5.0-5.zip
将解压缩后的文件夹复制到apache的默认发布路径,并赋予权限
mv phpvirtualbox-5.0-5 /var/www/html/phpvirtualbox
chmod 777 /var/www/html/phpvirtualbox/
经过Example文件建立配置文件
cp /var/www/html/phpvirtualbox/config.php-example /var/www/html/phpvirtualbox/config.php
打开刚刚复制产生的配置文件,指定以哪个Linux用户的权限运行
vi /var/www/html/phpvirtualbox/config.php
1 /* Username / Password for system user that runs VirtualBox */ 2 var $username = 'Linux用户名'; 3 var $password = '密码';
注:这个配置用的php里有不少的设置选项,推荐准备用于生产环境的筒子们详细的看一下。
建立/etc/default/virtualbox文件
vi /etc/default/virtualbox
仍然添加上面所指定的Linux用户
VBOXWEB_USER=Linux用户名
依次尝试重启如下三个服务
1 systemctl restart vboxweb-service 2 systemctl restart vboxdrv 3 systemctl restart apache2
第六步 激动人心的时刻到了
打开浏览器,输入网址:http://服务器地址/phpvirtualbox/
在输入了默认的用户明(admin)和密码(admin)之后,一个与原版VirtualBox一模一样的界面就会展示出来
剩下的使用方式就和VirtualBox彻底相同了。篇幅所限,笔者这里省略。
如何链接你的虚拟机桌面
你固然不但愿仅仅在VM中运行命令行界面的OS,那么如何才能远程链接到VM的桌面环境呢?
两个步骤轻松搞定:
第一,在虚拟机的设置里面指定远程桌面的端口,例如笔者设置的9061
第二,是使用Windows自带的远程桌面(或者任何支持RDP协议的客户端)来链接服务器上面的这个端口。
注:这里的IP(192.168.1.123)是服务器自己的IP,不是VM的IP。
而后....就没有而后啦。
大功告成,累死了。但愿能开阔你们的思路。