如何利用CentOS快速构建网站自己的发行版

你的浏览器禁用了JavaScript, 请开启后刷新浏览器获得更好的体验!
前两天,正式通知用户他们将终止一直提供的『飞』服务。由于我一直使用的是曲径,并且他们的访问速度也很不错,所以听到这个消息后,对我来说真是个莫大的打击。曲径停服之后,马上搜索了其他的『飞』服务,看到冯大辉推荐了土行孙,测试之后,感觉还是有点慢。并且公司内部的同事们也都要用,于是就想有没有一劳永逸的解决方案。
一番尝试之后,找到了属于自己的解决方案,并且感觉很cool。接下来如果大家有兴趣就仔细看看我的安装过程,让我来带你装逼带你飞。对了,整个过程中由于有了Docker的帮助,所以安装非常简单,我可以毫不夸张的说,只需要1分钟。来,看我是怎么装逼的。
首先需要有一台可以『飞』的服务器网上有很多人推荐买DigitalOcean的服务器,我也买了测试了下,虽然不贵,但速度上还有有点问题。后来一般尝试后,最终决定使用首都在线提供的免费的可以『飞』的服务器(免费半年,配置很高,还可以搞其他的)。推荐用这个,。
至此,服务器搞定,需要注意的是,由于首都在线提供的是CentOS 6.X系列的服务器,而这个版本的系统无法安装Docker。所以在申请的时候需要和他们说下需要7.X系列的服务器。
安装Shadowsocks服务端是一个使用Python编写的轻量级的socks5代理。与vpn的全局代理不同,Shadowsocks仅针对浏览器代理,不能代理应用软件,比如Youtube、Twitter客户端软件。Shadowsocks不仅安装简单,而且客户端支持多平台,包括Mac、Windows、iOS、Android。更多关于安装Shadowsocks的介绍,读者可以阅读。相信程序员朋友对他并不陌生。接下来,开始安装吧。
1,安装Docker
各位应该对Docker的安装不陌生吧,根据官方相信你10秒钟能搞定。由于我们使用的是CentOS系统,所以我这里就简单列下安装步骤。
1)确保你的操作系统版本是CentOS 7.X,可以使用如下命令:
$ uname -r
3.10.0-229.el7.x86_642)更新下Yum包,如下命令:
sudo yum update3)运行Docker的安装脚本,如下命令:
$ curl -sSL
| sh4)启动Docker,如下命令:
sudo service docker start2,安装Shadowsocks的Docker镜像。
1)拿到镜像,如下命令:
docker pull oddrationale/docker-shadowsocks2)运行镜像,启动Shadowsocks。
docker run -d -p
oddrationale/docker-shadowsocks -s 0.0.0.0 -p 2022 -k dockone.io -m aes-256-cfb为了庆祝申奥成功,我们就把端口设置为2022吧,然后dockone.io是密码,当然你可以把它换为其它你喜欢的。
3)确认启动Shadowsocks是否安装成功。
docker ps我们可以看到输出中Shadowsocks镜像已经在运行中了。太简单了,Docker真好。
安装Shadowsocks客户端我使用的是Mac笔记本,所以这里会下载Mac客户端,dmg文件,一键安装,很简单,客户端。
如上是我的配置,输入之前服务器端启动的时候配置的密码、端口,点击保存,打开你的Chrome、Safari浏览器,开始浏览你想浏览的东西吧。注意,由于Firefox的网络模块自己单独搞的,所以在Firefox中不可『飞』。Shadowsocks客户端可以设置哪些网址不需要『飞』,可以完全满足我们的需求。强烈推荐。如果想在Android和iOS上使用,各位可以自行搜索,也非常简单。我这里把Windows、Mac、Android平台的安装文件上传到了,各位可以自行下载。iOS用户可以去下载安装。
已经『飞』了一周了,感觉非常好。你来试试?成为我们的译者,可以免费使用我们的『飞』服务哦。
总觉得这种文章传播多了,会让有关(bu men)把shadow_socks, d0cker,DO 和翻*墙*画上等号,到时一并都封了,并不是什么好事
已经把翻**墙替换为飞。
怎么申请免费试用?
在这儿https://jinshuju.net/f/vEh2Gg#rd正确填写信息,之后会有人和您联系。
首都在线 申请的服务器,有地点要求吗?需要在美国 或者 香港?还是 北京也可以。
你去按照地址申请就可以了。
我使用Azure美国区的VM,按照该文去做,一切正常,可是就是翻不了墙,开了软件,挂上代理,甚至连本地网络都打不开了
shadowsocks可以代理应用程序啊,安卓上不root只能全局代理
这个可以有。
客服找吃饭是什么鬼,,,,,,,
要回复文章请先或
DockOne官方账号快速构建 标签_51CTO技术博客
搜索推荐文章
搜索原创文章
搜索近期文章
&&&&VPN服务是所有互联网企业中不可或缺的一个服务,它的存在大大方便了我们的办公效率。服务器出故障了,工程师们再也不用火急火燎的打车来公司处理问题了,可以在家拨号连到公司,轻松愉快的就把问题处理好了。当然这里我所说的是非硬件设备故障,真要是物理故障还是得打车去公司的..
&&&&三.打包生成ISO文件发布
#declare-xdiscinfo=`head-1.discinfo`
#createrepo-u&media://$discinfo&-grepodata/comps.xml.
生成ISO文件
#mkisofs-R-J-T-r-l-d-allow-multidot-allow-leading-dots-no-bak-o/tmp/ltos-0.1-i386.iso\
-bisolinux/iso..
&&&&编者按:对于很多个人站长来说,每次业务扩容装Linux系统都是件很麻烦的事情。有的IDC技术不会装Linux系统,或者有的就是装一次系统收取一定的费用。为此制作一个精简的CentOS发行版是很重要的。下面就一起来看下具体制作过程吧。
一、制作LTOS具体过程
光盘结构介绍
*isolinux..
Copyright&
版权所有 未经许可 请勿转载热门关键字:
         
用CentOS构建自己的发行版(修改)
作者:admin 来源:未知
-----thanks NetSeek 环境说明:CentOS 5.5-i386 + Vmware Workstation. 装好的虚拟机母系统的磁盘为一个IDE 10G,能连接互联网. DIY CD的装机图片,GRUB图片会去掉,不要华丽,用原始。 从页面上复制脚本粘贴进LINUX后,注意DOS UNIX格式的问题,否则脚本执行会报错。可用vi -b filename查看修改。 制作好的光盘结构介绍 * isolinux 目录存放光盘启动时的安装界面信息 * images 目录包括了必要的启动映像文件 * CentOS 目录存放安装软件包及信息 * .discinfo 文件是安装价质的识别信息 * TRANS.TBL 一.制作TANK-OS具体过程 0. 在虚拟机里安装一个centos母系统。 如果做服务器版本CD的话,尽量把常用的文本界面下的工具安装上。 注意:容量问题。本次实验母系统装好后1.3G,DIY好的光盘容量560M。使制作好的容量尽量保持在一张CD容量内(&700M),方便携带安装. 1.安装制作发行版所需的基本软件包 # yum -y install anaconda-runtime createrepo yum-utils anaconda anaconda-help busybox-anaconda mkisofs 2. 制作tank-os源文件夹 # mkdir /tank-os # mkdir /mnt/cdrom # mount -t iso9660 -o loop /dev/cdrom /mnt/cdrom/ 挂载光盘镜像 或者挂载ISO文件到/mnt/cdrom # mount -t iso9660 -o loop centos.xxx.iso /mnt/cdrom 将CentOS的ISO文件挂载到/mnt/cdrom目录 # cd /mnt/cdrom 将/mnt/cdrom里的 images isolinux repodata三个目录 .discinfo TRANS.TBL两个文件拷贝到/tank-os这个目录下. 并#mkdir /tank-os/CentOS 建立存放rpm包的目录. /tank-os/下的目录结构应如下: [root@server tank-os]# ls -al total 100 drwxr-xr-x 6 root root 4096 Apr 11 21:00 . drwxr-xr-x 27 root root 4096 Apr 12 05:26 .. drwxr-xr-x 2 root root 36864 Apr 8 16:06 CentOS //空目录 -rw-r--r-- 1 root root 97 Apr 8 16:43 .discinfo drwxr-xr-x 4 root root 4096 Mar 21 23:04 images drwxr-xr-x 2 root root 4096 Apr 12 00:00 isolinux drwxr-xr-x 2 root root 4096 Apr 11 21:00 repodata -r--r--r-- 1 root root 7048 Mar 21 23:05 TRANS.TBL 3.定制package.list软件包清单 在母系统~root目录下有安装母系统产生的日志,/root/install.log。用脚本从中提取软件包. #cd /root #cat install.log | grep Installing | sed 's/Installing //g'|sed 's/^[0-9]\+://g' & packages.list #wc -l packages.list 466 packages.list 将定制 tank-os所要的rpm复制到/tank-os/CentOS目录 #cat packages.list |do cp -a /mnt/cdrom/CentOS/$name.rpm /tank-os/CentOS/ ;done #cd /tank-os #createrepo -g repodata/comps.xml . //注意最后的&.&不可漏了. 4. 配置kickstart脚本 安装母系统以后,会在系统里产生一个kickstart安装脚本,/root/anaconda-ks.cfg (就是以后自动安装DIY系统的系统配置文件,其参数自己视情况修改,如磁盘分区容量,hostname...;当然安装时不选auto自动安装也可以选择 centos原来提供的其他安装方式自己根据提示设置.) # cp anaconda-ks.cfg /tank-os/isolinux/ks.cfg # vi /tank-os/isolinux/ks.cfg 自己动手修改脚本如下,不要随意复制粘贴后就执行。 # Kickstart file automatically generated by anaconda. # Install CentOS instead of Upgrade install text #install from cd-rom cdrom lang en_US.UTF-8 keyboard us # Skip the X Configuration skipx network --device eth0 --bootproto dhcp --hostname tank-os.test.org rootpw tank-os #如果去掉该行,安装时提示输入ROOT密码。 # Setup the firewall with SSH, HTTP/S, Syslog, Webmin, and Netflow enabled firewall --enabled --port=22:tcp --port=80:tcp --port=443:tcp authconfig --enableshadow --enablemd5 # Disable SELinux selinux --disabled timezone --utc Asia/Shanghai # Clear the Bootloader and load it to the Master Boot Record bootloader --location=mbr zerombr yes # Set the Mouse mouse generic3ps/2 # The following is the partition information you requested # Note that any partitions you deleted are not expressed # here so unless you clear all partitions first, this is # not guaranteed to work clearpart --all --initlabel #如果没有下面的分区设置,安装时会有默认分区,当然也可以自行设置。 part /boot --fstype ext3 --size=100 --asprimary part / --fstype ext3 --size=6000 part swap --size=512 part /data --fstype ext3 --size=1 --grow #--- Reboot the host after installation is done reboot #如果没有该行,安装结束时需要点击&reboot&方可重启。 %packages @base @core @dns-server @dialup @editors @ftp-server @legacy-network-server @mail-server @network-server @news-server @server-cfg @text-internet @web-server @smb-server keyutils trousers fipscheck device-mapper-multipath #some changers after install packegs. %post if [ -f /boot/grub/splash.xpm.gz ];then rm -f /boot/grub/splash.xpm. fi &/dev/null 2&&1 if [ -f /etc/redhat-release ];then sed -i 's/CentOS/TANK-OS/' /etc/redhat- fi &/dev/null 2&&1 if [ -f /etc/issue ];then sed -i 's/CentOS/TANK-OS/' /etc/ fi &/dev/null 2&&1 if [ -f /boot/grub/grub.conf ];then sed -i 's/CentOS/TANK-OS/' /boot/grub/grub. fi &/dev/null 2&&1 chkconfig sendmail off &/dev/null 2&&1 chkconfig portmap off &/dev/null 2&&1 chkconfig cups off &/dev/null 2&&1 chkconfig rpcidmapd off &/dev/null 2&&1 5.添加auto项,让系统从kickstart配置启动 # vi /tank-os/isolinux/isolinux.cfg default auto prompt 1 timeout 600 display boot.msg F1 boot.msg F2 options.msg F3 general.msg F4 param.msg F5 rescue.msg label linux kernel vmlinuz append initrd=initrd.img label text kernel vmlinuz append initrd=initrd.img text label auto kernel vmlinuz append ks=cdrom:/isolinux/ks.cfg initrd=initrd.img label ks kernel vmlinuz append ks initrd=initrd.img label local localboot 1 label memtest86 kernel memtest append - 二.个性化定制你的系统 去掉装机图片:修改/tank-os/isolinux/boot.msg文件,删除&splash.lss&。 删除/tank-os/isolinux/splash.lss这个图片。 去掉安装过程中的CentOS字样: 在安装光盘里面有两个.buildstamp文件,一个位于stage2.img中,一个位于initrd.img中, 安装光盘运行时读取的是initrd.img中的那个.buildstamp文件,所以只要把initrd.img文件改了就可以了。 2.6内核中的initrd.img采用cpio压缩,不再是2.4内核使用的ext2格式,无法使用mount -o loop 挂载。需 要使用gunzip解压缩,然后再使用利用cpio给img解包 # cd /tank-os/isolinux/ # cp initrd.img /tmp/initrd.img.gz # cd /tmp # gunzip initrd.img.gz # mkdir initrd # mv initrd.img initrd # cd initrd # cpio -ivmd & initrd.img 然后修改.buildstamp文件,将CentOS改为tank-os即可.当然,里面的网址也可以改。 生成新的initrd.img文件: #cd /tmp/initrd # find . | cpio -c -o & ../initrd.img # gzip ../initrd.img #cd .. # mv initrd.img.gz initrd.img # cp initrd.img /tank-os/isolinux/ 然后将 initrd.img复制到/tank-os/isolinux/,覆盖旧的。 三.打包发布 # cd /tank-os # declare -x discinfo=`head -1 .discinfo` //指定环境变量discinfo # createrepo -u &media://$discinfo& -g repodata/comps.xml . //生成repodata数据库。 说明:repodata 数据库精确描述一个rpm包的详细信息,如依赖关系,包含文件,校验码信息。它的文件主要是XML格式。 生成ISO文件 #cd /tank-os #mkisofs -R -J -T -r -l -d -allow-multidot -allow-leading-dots -no-bak -o /tmp/tank-os-0.1-i386.iso \ -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table . 生成Md5,供下载后校验ISO #md5sum /tmp/tank-os-0.1-i386.iso & tank-os-0.1-i386.iso.md5 四.另建立个虚拟机测试安装该ISO博客访问: 1026306
博文数量: 206
博客积分: 10192
博客等级: 上将
技术积分: 2185
注册时间:
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
分类: LINUX
-----thanks& NetSeek 环境说明:CentOS 5.5-i386 + Vmware
Workstation.&&&&&&&&&
装好的虚拟机母系统的磁盘为一个IDE 10G,能连接互联网. &&&&&&&&& DIY
CD的装机图片,GRUB图片会去掉,不要华丽,用原始。&&&&&&&&& 从页面上复制脚本粘贴进LINUX后,注意DOS
UNIX格式的问题,否则脚本执行会报错。可用vi -b filename查看修改。制作好的光盘结构介绍 &* isolinux
目录存放光盘启动时的安装界面信息 &* images 目录包括了必要的启动映像文件 &* CentOS 目录存放安装软件包及信息
&* .discinfo 文件是安装价质的识别信息 &* TRANS.TBL一.制作TANK-OS具体过程 0.
在虚拟机里安装一个centos母系统。& 如果做服务器版本CD的话,尽量把常用的文本界面下的工具安装上。&
注意:容量问题。本次实验母系统装好后1.3G,DIY好的光盘容量560M。使制作好的容量尽量保持在一张CD容量内(<700M),方便携带安
装.1.安装制作发行版所需的基本软件包 # yum -y install anaconda-runtime
createrepo yum-utils anaconda anaconda-help busybox-anaconda mkisofs2.
制作tank-os源文件夹 # mkdir /tank-os # mkdir /mnt/cdrom # mount -t
iso9660 -o loop /dev/cdrom /mnt/cdrom/ 挂载光盘镜像 &或者挂载ISO文件到/mnt/cdrom
# mount -t iso9660 -o loop centos.xxx.iso /mnt/cdrom
将CentOS的ISO文件挂载到/mnt/cdrom目录 # cd /mnt/cdrom 将/mnt/cdrom里的
images& isolinux repodata三个目录 .discinfo TRANS.TBL两个文件拷贝到/tank-os这个目录下. 并#mkdir
/tank-os/CentOS 建立存放rpm包的目录. /tank-os/下的目录结构应如下: [root@server
tank-os]# ls -al total 100drwxr-xr-x 6 root root 4096 Apr 11
21:00 . drwxr-xr-x 27 root root 4096 Apr 12 05:26 .. drwxr-xr-x 2
root root 36864 Apr 8 16:06 CentOS //空目录 -rw-r--r-- 1 root root 97
Apr 8 16:43 .discinfo drwxr-xr-x 4 root root 4096 Mar 21 23:04
images drwxr-xr-x 2 root root 4096 Apr 12 00:00 isolinux drwxr-xr-x
2 root root 4096 Apr 11 21:00 repodata -r--r--r-- 1 root root 7048
Mar 21 23:05 TRANS.TBL 3.定制package.list软件包清单 在母系统~root目录下有安装
母系统产生的日志,/root/install.log。用脚本从中提取软件包.#cd /root#cat install.log |
grep Installing | sed 's/Installing //g'|sed 's/^[0-9]\+://g' >
packages.list #wc -l packages.list466 packages.list将定制
tank-os所要的rpm复制到/tank-os/CentOS目录 #cat packages.list |while read
do cp -a /mnt/cdrom/CentOS/$name.rpm /tank-os/CentOS/ ;done#cd
/tank-os #createrepo -g repodata/comps.xml .&&&&&& //注意最后的"."不可漏了.4.
配置kickstart脚本安装母系统以后,会在系统里产生一个kickstart安装脚本,/root/anaconda-ks.cfg(就
是以后自动安装DIY系统的系统配置文件,其参数自己视情况修改,如磁盘分区容量,hostname...;当然安装时不选auto自动安装也可以选择
centos原来提供的其他安装方式自己根据提示设置.) # cp anaconda-ks.cfg
/tank-os/isolinux/ks.cfg # vi /tank-os/isolinux/ks.cfg&
自己动手修改脚本如下,不要随意复制粘贴后就执行。 # Kickstart file automatically
generated by anaconda. # Install CentOS instead of Upgrade install
text #install from cd-rom cdrom lang en_US.UTF-8 keyboard
us # Skip the X Configuration skipx network --device eth0
--bootproto dhcp --hostname tank-os.test.org rootpw tank-os&&
#如果去掉该行,安装时提示输入ROOT密码。# Setup the firewall with SSH, HTTP/S,
Syslog, Webmin, and Netflow enabled firewall --enabled
--port=22:tcp& --port=80:tcp --port=443:tcp authconfig
--enableshadow --enablemd5 # Disable SELinux selinux --disabled timezone
--utc Asia/Shanghai # Clear the Bootloader and load it to the
Master Boot Record bootloader --location=mbr zerombr yes #
Set the Mouse mouse generic3ps/2 # The following is the
partition information you requested # Note that any partitions you
deleted are not expressed # here so unless you clear all partitions
first, this is # not guaranteed to work clearpart --all
--initlabel #如果没有下面的分区设置,安装时会有默认分区,当然也可以自行设置。part /boot --fstype
ext3 --size=100 --asprimary part / --fstype ext3 --size=6000 part
swap --size=512part /data --fstype ext3 --size=1 --grow #---
Reboot the host after installation is done reboot&
#如果没有该行,安装结束时需要点击“reboot”方可重启。%packages @base@core@dns-server@dialup@editors@ftp-server@legacy-network-server@mail-server@network-server@news-server@server-cfg@text-internet@web-server@smb-serverkeyutilstrousersfipscheckdevice-mapper-multipath#some
changers after install packegs.%postif [ -f
/boot/grub/splash.xpm.gz ];then rm -f /boot/grub/splash.xpm. fi
>/dev/null 2>&1if [ -f /etc/redhat-release ];then sed -i
's/CentOS/TANK-OS/' /etc/redhat- fi >/dev/null 2>&1if
[ -f /etc/issue ];then sed -i 's/CentOS/TANK-OS/' /etc/ fi
>/dev/null 2>&1if [ -f /boot/grub/grub.conf ];then sed -i
's/CentOS/TANK-OS/' /boot/grub/grub. fi >/dev/null 2>&1chkconfig
sendmail off >/dev/null 2>&1chkconfig portmap off
>/dev/null 2>&1chkconfig cups off >/dev/null
2>&1chkconfig rpcidmapd off >/dev/null 2>&15.
添加auto项,让系统从kickstart配置启动 # vi /tank-os/isolinux/isolinux.cfg default
auto prompt 1 timeout 600 display boot.msg F1 boot.msg F2
options.msg F3 general.msg F4 param.msg F5 rescue.msg label
linux &&& kernel vmlinuz &&& append initrd=initrd.img label
text &&& kernel vmlinuz &&& append initrd=initrd.img text label
auto &&& kernel vmlinuz &&& append ks=cdrom:/isolinux/ks.cfg
initrd=initrd.img label ks &&& kernel vmlinuz &&& append ks
initrd=initrd.img label local &&& localboot 1 label
memtest86 &&& kernel memtest &&& append - 二.个性化定制你的系统去
掉装机图片:修改/tank-os/isolinux/boot.msg文件,删除“splash.lss”。&&&&&&&&&&&&&
删除/tank-os/isolinux/splash.lss这个图片。去掉安装过程中的CentOS字样: &&&&&&&&&&&&&
在安装光盘里面有两个.buildstamp文件,一个位于stage2.img中,一个位于initrd.img中, &&&&&&&&&&&&&
安装光盘运行时读取的是initrd.img中的那个.buildstamp文件,所以只要把initrd.img文件改了就可以了。 &&&&&&&&&&&&&
2.6内核中的initrd.img采用cpio压缩,不再是2.4内核使用的ext2格式,无法使用mount -o loop 挂载。需&&&&&&&&&&&&&
要使用gunzip解压缩,然后再使用利用cpio给img解包 # cd /tank-os/isolinux/ # cp
initrd.img /tmp/initrd.img.gz # cd /tmp # gunzip initrd.img.gz #
mkdir initrd # mv initrd.img initrd # cd initrd # cpio
-ivmd < initrd.img 然后修改.buildstamp文件,将CentOS改为tank-os即可.当然,里面的网址也
可以改。生成新的initrd.img文件: #cd /tmp/initrd# find . | cpio -c
-o > ../initrd.img # gzip ../initrd.img #cd ..# mv
initrd.img.gz initrd.img # cp initrd.img /tank-os/isolinux/ 然后将
initrd.img复制到/tank-os/isolinux/,覆盖旧的。 三.打包发布 # cd /tank-os #
declare -x discinfo=`head -1 .discinfo`& //指定环境变量discinfo #
createrepo -u "media://$discinfo" -g repodata/comps.xml .&
//生成repodata数据库。 && 说明:repodata
数据库精确描述一个rpm包的详细信息,如依赖关系,包含文件,校验码信息。它的文件主要是XML格式。生成ISO文件 #cd
/tank-os#mkisofs -R -J -T -r -l -d -allow-multidot
-allow-leading-dots -no-bak -o /tmp/tank-os-0.1-i386.iso \ -b
isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size
4 -boot-info-table . 生成Md5,供下载后校验ISO#md5sum
/tmp/tank-os-0.1-i386.iso > tank-os-0.1-i386.iso.md5四.另建立个虚拟机
测试安装该ISO
阅读(389) | 评论(0) | 转发(0) |
相关热门文章
给主人留下些什么吧!~~
请登录后评论。

我要回帖

更多关于 制作centos发行版 的文章

 

随机推荐