如何构建自己的Linux发行版

如何构建自己的Linux发行版,第1张

 一、制作LTOS具体过程

光盘结构介绍

* isolinux 目录存放光盘启动时的安装界面信息

* images 目录包括了必要的启动映像文件

* CentOS 目录存放安装软件包及信息

* .discinfo 文件是安装价质的识别信息

* lemp.tar.gz 文件存放系统初始化及其相关程序安装脚本.

》》环境说明:CentOS 5.3-i386 Vmware Workstation上完成制作工作.

1.安装制作发行版所需的基本软件包

# yum -y install anaconda-runtime createrepo yum-utils anaconda anaconda-help busybox-anaconda mkisofs

2.制作ltos源文件夹

# mkdir /ltos

# 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

# tar -cf -. | ( cd /ltos ; tar -xvpf -) //将/mnt/cdrom里的文件利用tar全部拷贝到/ltsos这个目录下.

#cd /ltos //进入此目录删除一些无关的文件,仍后进入后面的工作.

[root@server ltos]# ls -al

total 88

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

-rw-r--r-- 1 root root 14371 Apr 11 23:16 lemp.tar.gz //这个软件包是我们后面要建立的,读者可以分析一下后面的ks.cfg脚本就可以明白他的用途.

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软件包清单

如安装一个CentOS5.3的系统,根据自己的需求选择软件包;如果想你的系统很小,建议选择最少的包。安装完成以后,在系统里会产生日志。日文文件存放在/root/install.log。

# cat install.log | grep Installing | sed 's/Installing //g'|sed 's/^[0-9]\+://g' >packages.list

#mkdir /ltos/CentOS 建立存放rpm包的目录.

创建自动提取相关rpm脚本:

#vi cprpms.sh

#!/bin/bash

DEBUG=0

LT_CD=/mnt/cdrom

ALL_RPMS_DIR=/mnt/cdrom/CentOS #挂载光盘存放的目录

LT_RPMS_DIR=/ltos/CentOS #存放RPM包的目录

packages_list=/root/packages.list

number_of_packages=`cat $packages_list | wc -l`

i=1

while [ $i -le $number_of_packages ] ; do

line=`head -n $i $packages_list | tail -n -1`

name=`echo $line | awk '{print $1}'`

version=`echo $line | awk '{print $3}' | cut -f 2 -d :`

if [ $DEBUG -eq "1" ] ; then

echo $i: $line

echo $name

echo $version

fi

if [ $DEBUG -eq "1" ] ; then

ls $ALL_RPMS_DIR/$name-$version*

if [ $? -ne 0 ] ; then

echo "cp $ALL_RPMS_DIR/$name-$version* "

fi

else

echo "cp $ALL_RPMS_DIR/$name-$version* $LT_RPMS_DIR/"

cp $ALL_RPMS_DIR/$name-$version* $LT_RPMS_DIR/

# in case the copy failed

if [ $? -ne 0 ] ; then

echo "cp $ALL_RPMS_DIR/$name-$version* "

cp $ALL_RPMS_DIR/$name* $LT_RPMS_DIR/

fi

fi

i=`expr $i + 1`

done

执行以上脚本将定制ltos必要的rpm复制到/ltos/CentOS目录

返回到/ltos目录下,执行createrepo程序生成repodata下的comps.xml文件

#cd /ltos

#createrepo -g repodata/comps.xml .

服务端环境准备

Zabbix Server 需要运行在CentOS、RedHat Linux、Debain等Linux *** 作系统上,这里以CentOS5.5 x86_64作为部署环境

下载使用LEMP(Linux+Nginx+MySQL+PHP)软件自动化安装包,解压后运行其中的lemp.sh,然后按照步骤进行 *** 作即可完成LEMP环境的搭建。之后执行/etc/init.d/lemp start即可启动。

LEMP自动化安装包下载地址:http://docs.linuxtone.org/autoinstall/lemp_auto_v1.0.3.tar.gz

2.2 zabbix服务端软件安装

(1)下载最新稳定的zabbix软件。软件下载页面:http://www.zabbix.com/download.php

我这里使用的是zabbix 1.8.3

(2)YUM安装系统必备的软件

yum -y install net-snmp-devel curl-devel

下载并解压服务端软件

tar xvf zabbix-1.8.3.tar.gz

cd zabbix-1.8.3

(3)添加zabbix用户

groupadd zabbix

useradd zabbix -g zabbix

(4)为zabbix创建数据库并添加用户

mysql -uroot -pcy2009 -e "create database zabbix character set utf8"

mysql -uroot -pcy2009 -e "grant all on zabbix.* to zabbix@localhost identified by 'cy2009'"

(5)将软件中的zabbix数据导入到数据库中

mysql -uzabbix -p'cy2009' zabbix <create/schema/mysql.sql

mysql -uzabbix -p'cy2009' zabbix <create/data/data.sql

mysql -uzabbix -p'cy2009' zabbix <create/data/images_mysql.sql

(6)编译安装软件

根据不同的需求选择合适的配置选项

./configure --prefix=/usr/local/zabbix --enable-server --enable-proxy --enable-agent --with-mysql=/usr/local/mysql-5.1.48/bin/mysql_config --with-net-snmp --with-libcurl

make &&make install

(7)为zabbix server 添加端口

cat>>/etc/service<<EOF

zabbix-agent 10050/tcp Zabbix Agent

zabbix-agent 10050/udp Zabbix Agent

zabbix-trapper 10051/tcp Zabbix Trapper

zabbix-trapper 10051/udp Zabbix Trapper

EOF

(8)拷贝相应的配置文件到相应目录下,并修改添加数据库用户名和密码

mkdir /etc/zabbix

cp misc/conf/zabbix_server.conf /etc/zabbix/

cp misc/conf/zabbix_proxy.conf /etc/zabbix/

cp misc/conf/zabbix_agent.conf /etc/zabbix/

cp misc/conf/zabbix_agentd.conf /etc/zabbix/

sed -i 's/^\(DBUser=\).*$/\1zabbix/g' /etc/zabbix/zabbix_server.conf

sed -i 's/^\(.*\)\(DBPassword=\).*$/\2cy2009/g' /etc/zabbix/zabbix_server.conf

(9)给Zabbix服务端软件应用程序做软连接

cd /usr/local/zabbix/bin/

for i in *do ln -s /usr/local/zabbix/bin/${i} /usr/bin/${i}done

cd /usr/local/zabbix/sbin/

for i in *do ln -s /usr/local/zabbix/sbin/${i} /usr/sbin/${i}done

(10)添加数据库Lib文件位置到/etc/ld.so.conf中,并使其生效

echo /usr/local/mysql-5.1.48/lib/mysql/ >>/etc/ld.so.conf

ldconfig

(11)拷贝相应的web程序到相关WEB服务目录下

cp -r frontends/php /data/www/wwwroot/zabbix

(12)拷贝必要的zabbix服务端和客户端启动脚本到启动目录/etc/init.d目录下,并进行相应修改

cp misc/init.d/redhat/8.0/zabbix_server /etc/init.d/

chmod a+x /etc/init.d/zabbix_server

cp misc/init.d/redhat/8.0/zabbix_agentd /etc/init.d/

chmod a+x /etc/init.d/zabbix_agentd

sed -i 's/^progdir=.*$/progdir="\/usr\/local\/zabbix\/sbin\/"/g' /etc/init.d/zabbix_server

sed -i 's/^progdir=.*$/progdir="\/usr\/local\/zabbix\/sbin\/"/g' /etc/init.d/zabbix_agentd

(13)启动zabbix服务端程序

service zabbix-server start

(14)添加开机启动服务程序

chkconfig --add zabbix_server

chkconfig --add zabbix_agentd

chkconfig --level 345 zabbix_server on

chkconfig --level 345 zabbix_agentd on

(15)在Nginx服务中添加zabbix虚拟主机

cat /usr/local/nginx/conf/vhosts/monitor.conf

server {

listen 80

server_name zabbixA.cyhd.com.cn

#access_log logs/zabbix_access.log main

location / {

root /data/www/wwwroot/zabbix

index index.html index.htm index.php

}

location ~ \.php$ {

root /data/www/wwwroot/zabbix

fastcgi_pass 127.0.0.1:9000

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name

fastcgi_index index.php

includefastcgi_params

}

}

修改nginx主配置文件,添加:

include vhosts/ monitor.conf

重新启动nginx服务使其生效

/etc/init.d/nginx restart

(16)修改PHP配置文件php.ini内容使其满足zabbix安装配置需求

sed -i 's/^\(.*\)date.timezone =.*$/date.timezone = Asia\/Shanghai/g' /usr/local/php5.2.14/etc/php.ini

sed -i 's/^\(.*\)post_max_size =.*$/post_max_size = 16M/g' /usr/local/php5.2.14/etc/php.ini

sed -i 's/^\(.*\)max_execution_time =.*$/max_execution_time = 300/g' /usr/local/php5.2.14/etc/php.ini

sed -i 's/^\(.*\)max_input_time =.*$/max_input_time = 300/g' /usr/local/php5.2.14/etc/php.ini

2.3 zabbix服务端WEB配置

(1)在浏览器中打开刚刚配置好的zabbix,系统会直接进入zabbix安装界面

(2)Next下一步后选择I agree进如下一步

(3)修改PHP配置文件php.ini中以下参数的配置,使其满足zabbix的软件安装要求后重新启动LEMP

(4)配置数据库相关参数,并test connection使其OK

(5)修改zabbix服务端主机名IP和服务端口

(6)将zabbix生成的配置文件zabbix.conf.php另存为到本地,然后上传至zabbix网站目录下配置文件目录/data/www/wwwroot/zabbix/conf下,之后Retry刷新下。出现OK后,点击Next完成配置

出路比较常见的有:

Linux 运维架构高级主管

1、五年以上大规模Linux服务器运维经验,熟悉大型互联网企业开源架构部署

2、精通Linux shell脚本编写,能够独立编写监控脚本。

3、精通配置智能DNS Server、NFS Server、Mail Server、FTP Server、Proxy Server (Squid、Vanish)、LAMP(Linux+Apache+MySQL+PHP)、LEMP(Linux+Nginx+MySQL+PHP) 、LATMJ(Linux+Apache+Tomcat+MySQL+JSP)、LNTMJ(Linux+Nginx+Tomcat+MySQL+JSP)架设与调优。

4、熟悉Linux HA集群、Lighttpd与Nginx负载均衡、LVS负载均衡集群、Linux灾难恢复体系 的设计与部署。

5、对Linux存储、iSCSI存储、SAN、NAS存储有深入了解。

6、掌握Linux内核参数调优、路由、Linux系统安全与防火墙维护、Linux VPN组网技术等。

7、熟悉动态运维监控(Nagios\Cacti\MRTG )、MOOSEFS分布式存储、CDN(内容分发网络) 的架构设计。

8、具有技术文档编写能力,优秀的语言驾驭能力,灵活应变能力。

9、有企业培训经验者或Mysql数据库管理经验者优先。

2.linux系统管理员

1. 负责linux服务器的安装,配置以及日常维护;

2. 参与相关服务器架构和设计,设备选型等;

3. 负责系统及应用的安全,优化,故障解决等工作;

4、数据备份、数据监控、应急响应、故障排除等。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7152982.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-02
下一篇2023-04-02

发表评论

登录后才能评论

评论列表(0条)

    保存