资源描述
Cacti-Nagios ISO 定制指南
定制步骤
l 安装一个干净的操作系统.包括基本的系统和所需要的工具等. 比如:我们一般需要centos里面的administart-tool, system-tool,editor,ssh等, 而对于http,mysql,php或其他软件,建议使用编译的方式安装, 然后打包放进去就可以了. 省却许多依赖包的麻烦.
l 安装系统后,收集系统已安装的软件包,使用脚本统一转存到一个目录中.
l 在安装光盘复制images镜像,从光盘启动centos安装所需的文件等.
l 定义自己的kickstart安装脚本.
l 按照之前转存的软件(rpm)包, 重新生成光盘的report信息.
l 打包成ISO.
-----以下内容来自网络,可通用-----
下载一份DVD版CentOS 5.4 Linux系统(即.ISO文件)
1、在VM安装linux系统
2、安装anaconda repodata createrepo mkisofs
[root@localhost ~]# yum -y install anaconda repodata createrepo mkisofs
2、生成packages.list 所安装的RPM包文件清单(由于install.log文件在root目录,所以该操作在root目录进行)
[root@localhost ~]# cat install.log | grep Installing | sed 's/Installing //g' > /root/packages.list
//生成后,需要仔细看该文件,一般会在某些文件开始部分如“1:”这样的字符,需要删除这些字符,否在后面执行copy动作会报错
3、建立定制Centos的源目录
[root@localhost ~]#mkdir /disk //定制时要复制RPM包的目录;
[root@localhost ~]#mkdir /mnt/cdrom //加载光驱目录
[root@localhost ~]#mount -o loop /dev/cdrom /mnt/cdrom //将光盘内容加载到/mnt/cdrom中;
4、进入光盘挂载的地方。逐个执行以下命令,分别复制光盘里的images、isolinux目录. 而对于CentOS里面的内容暂时略过.
创建定制的ISO源文件夹.如 /data
mkdir -p /data/CentOS ##创建data和CentOS 目录.
进入光盘目录
cd /mnt/cdrom
cp -afr images /data/ ##复制images文件夹
cp -afr isolinux /data/
cp .discinfo /data/ ##复制.discinfo 文件,别忘前面的 ‘.’
使用一个脚本从前面处理好的packages.list 获取软件列表,并从光盘复制到 /data/CentOS 中.
脚本内容:
# vi cprpms.sh
#!/bin/bash
DEBUG=0
LT_CD=/mnt/cdrom
ALL_RPMS_DIR=/mnt/cdrom/CentOS
#挂载光盘存放的目录
LT_RPMS_DIR=/data/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
执行以上脚本,将定制ISO所需的软件复制到 /data/CentOS 中.
返回到/data 目录下,执行createrepo程序生成repodata下的comps.xml文件
#cd /data
#createrepo -g repodata/comps.xml . ##别忘后面的 “.”
开始定制kickstart安装脚本(ks.cfg) , 在cacti-nagios ISO 中, 这个脚本的名字为wdlinux.cfg , 这个可以更改, 更改方法稍后说明. 暂以ks.cfg为名介绍kickstart的定制.
cact-nagios中的kickstart内容, 带#号的为解释
#cat wdlinux.cfg
# Kickstart file automatically generated by anaconda.
install
text ##使用文本安装模式
cdrom
lang en_US.UTF-8 #语言
keyboard us #键盘类型
network --bootproto=query --noipv6 --onboot=yes #网络设置
firewall --enabled --port=22:tcp,21:tcp,80:tcp #防火墙设置
authconfig --enableshadow --enablemd5 #认证设置
selinux --disabled #关闭selinux
skipx #跳过xwindows配置
timezone --utc Asia/Chongqing #时区
bootloader --location=mbr #启动引导安装位置 . ps: 以上选项可以通用.
# 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
#clearpart --drives sda --initlabel ##清除磁盘
##########这里可以加入一些预定义的分区设置等.
%pre --interpreter=/bin/sh ##到这一步,已经分配并格式化分区了. 现在开始安装前的预处理, 注意: pre 是指安装前的. 而 post 是指安装后的.两者差别见 s.sh 脚本解释.
sh /mnt/source/wdlinux_srv/s.sh & ##执行/mnt/source/wdlinux_srv/s.sh 这个脚本. 脚本内容见最后.
%packages ###定义需要安装的软件包
@core ##系统核心
perl-5.8.8-27.el5.i386 ##以下为具体的软件包 .注意包名要给全,但无需后面的rpm字样, 基本上与使用 rpm -aq 的输出结果类似. 这些包是wdlinux团队整理出来的,一帮狠人, 再次感谢他们的努力.
imake-1.0.2-3.i386
m4-1.4.5-3.el5.1.i386
libgomp-4.4.0-6.el5.i386
cpp-4.1.2-48.el5.i386
libtool-ltdl-1.5.22-7.el5_4.i386
libstdc++-devel-4.1.2-48.el5.i386
kernel-headers-2.6.18-194.3.1.el5.i386
make-3.81-3.el5.i386
glibc-headers-2.5-49.i386
glibc-devel-2.5-49.i386
libtool-ltdl-devel-1.5.22-7.el5_4.i386
autoconf-2.59-12.noarch
gcc-4.1.2-48.el5.i386
gcc-c++-4.1.2-48.el5.i386
mailx-8.1.1-44.2.2.i386
bzip2-1.0.3-4.el5_2.i386
groff-1.18.1.1-11.1.i386
vim-common-7.0.109-6.el5.i386
elfutils-libs-0.137-3.el5.i386
elfutils-0.137-3.el5.i386
gpm-1.20.1-74.1.i386
patch-2.5.4-29.2.3.el5.i386
tcsh-6.14-17.el5.i386
unzip-5.52-3.el5.i386
rpm-build-4.4.2.3-18.el5.i386
mtools-3.9.10-2.fc6.i386
vim-enhanced-7.0.109-6.el5.i386
man-1.6d-1.1.i386
smartmontools-5.38-2.el5.i386
parted-1.8.1-27.el5.i386
setuptool-1.19.2-1.el5.centos.i386
which-2.16-7.i386
libutempter-1.1.4-4.el5.i386
bison-2.3-2.1.i386
crash-4.1.2-4.el5.centos.i386
acpid-1.0.4-9.el5_4.2.i386
ntsysv-1.3.30.2-2.el5.i386
cyrus-sasl-plain-2.1.22-5.el5_4.3.i386
cpuspeed-1.2.1-9.el5.i386
symlinks-1.2-24.2.2.i386
rsync-2.6.8-3.1.i386
lsof-4.78-3.i386
gettext-0.14.6-4.el5.i386
usbutils-0.71-2.1.i386
psacct-6.3.2-44.el5.i386
tree-1.5.0-4.i386
quota-3.13-1.2.5.el5.i386
irqbalance-0.55-15.el5.i386
attr-2.4.32-1.1.i386
at-3.1.8-84.el5.i386
tmpwatch-2.9.7-1.1.el5.2.i386
bind-libs-9.3.6-4.P1.el5_4.2.i386
setarch-2.0-1.1.i386
bc-1.06-21.i386
pkgconfig-0.21-2.el5.i386
nc-1.84-10.fc6.i386
flex-2.5.4a-41.fc6.i386
zip-2.31-2.el5.i386
acl-2.2.39-6.el5.i386
gdb-7.0.1-23.el5.i386
rmt-0.4b41-4.el5.i386
automake-1.9.6-2.3.el5.noarch
logwatch-7.3-8.el5.noarch
libtool-1.5.22-7.el5_4.i386
mailcap-2.1.23-1.fc6.noarch
dump-0.4b41-4.el5.i386
libidn-0.6.5-1.1.i386
vixie-cron-4.1-77.el5_4.1.i386
wget-1.11.4-2.el5_4.1.i386
sysstat-7.0.2-3.el5.i386
strace-4.5.18-5.el5_4.4.i386
curl-7.15.5-9.el5.i386
iptraf-3.0.0-5.el5.i386
nmap-4.11-1.1.i386
tcpdump-3.9.4-15.el5.i386
zlib-devel-1.2.3-3.i386
freetype-devel-2.2.1-21.el5_3.i386
fontconfig-devel-2.4.1-7.el5.i386
libpng-devel-1.2.10-7.1.el5_3.2.i386
e2fsprogs-devel-1.39-23.el5.i386
libidn-devel-0.6.5-1.1.i386
libXau-devel-1.0.1-3.1.i386
keyutils-libs-devel-1.2-1.el5.i386
libsepol-devel-1.15.2-3.el5.i386
libselinux-devel-1.33.4-5.5.el5.i386
libjpeg-devel-6b-37.i386
libICE-1.0.1-2.1.i386
libXpm-3.5.5-3.i386
gd-2.0.33-9.4.el5_4.2.i386
libSM-1.0.1-3.1.i386
libXt-1.0.2-3.2.el5.i386
krb5-devel-1.6.1-36.el5_4.1.i386
libmcrypt-2.5.8-4.el5.centos.i386
libdrm-2.0.2-1.1.i386
mhash-0.9.9-1.el5.centos.i386
libXxf86vm-1.0.1-3.1.i386
openssl-devel-0.9.8e-12.el5_4.6.i386
curl-devel-7.15.5-9.el5.i386
mhash-devel-0.9.9-1.el5.centos.i386
libmcrypt-devel-2.5.8-4.el5.centos.i386
libxml2-devel-2.6.26-2.1.2.8.i386
mesa-libGL-6.5.1-7.8.el5.i386
xorg-x11-proto-devel-7.1-13.el5.i386
libX11-devel-1.0.3-11.el5.i386
libXdmcp-devel-1.0.1-2.1.i386
mesa-libGL-devel-6.5.1-7.8.el5.i386
libXpm-devel-3.5.5-3.i386
gd-devel-2.0.33-9.4.el5_4.2.i386
%post ####开始进行安装后的处理.
/bin/echo "fs.file-max = 65535 ###优化系统内核参数.
net.ipv4.ip_forward = 1
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_max_syn_backlog = 10240
net.ipv4.tcp_keepalive_time = 180
net.ipv4.tcp_synack_retries = 3
net.ipv4.tcp_syn_retries = 3
net.ipv4.tcp_max_orphans = 8192
net.ipv4.tcp_max_tw_buckets = 8192
net.ipv4.tcp_window_scaling = 0
net.ipv4.tcp_sack = 0
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.icmp_echo_ignore_all = 0" >> /etc/sysctl.conf
/bin/echo "* - nofile 65535" >> /etc/security/limits.conf ##优化内核参数.
sed -i '/^[3-6]\:/s/^/#/g' /etc/inittab
sed -i 's/#UseDNS yes/UseDNS no/g' /etc/ssh/sshd_config ##优化ssh参数
cd /root ##进入 /root 目录
sh install.sh ##执行/root 下的install.sh ,内容在下一页.
reboot ##重启系统.
###基本上, centos的自动安装,完全依靠ks.cfg (在这里是wdlinux.cfg) 里面的定义.
##########################s.sh 内容##################
###脚本用途: 从光盘拷贝文件到硬盘.
##在系统安装前,访问硬盘必须加入如下前缀: /mnt/sysimage/ , 访问光盘也类似.
##而在系统安装后, 不需要加这个前缀.
#!/bin/sh
while [ 1 ];do
sleep 10
if [[ -d "/mnt/sysimage/root" && -d "/mnt/source/wdlinux_srv" ]];then
cp /mnt/source/wdlinux_srv/*.gz /mnt/sysimage/root
cp /mnt/source/wdlinux_srv/*.sh /mnt/sysimage/root
cp /mnt/source/*.txt /mnt/sysimage/root
exit
fi
done
###########install.sh 内容#############################
###该脚本执行前,已进入 /root 目录 .
#!/bin/bash
mkdir -p /www/wdlinux ##创建相应的目录, 这些目录在下一个修正版中会取消. 所有的环境会放在/usr/local 中 .
mkdir -p /www/web
mkdir -p /var/www/html ;
useradd -d /www/web/wdlinux wdlinux ##创建一个wdlinux用户,并赋予aaaaaa 这个密码. 修正版会取消这个操作.
chmod 755 /www/web/wdlinux
echo "aaaaaa" | passwd wdlinux --stdin ##
tar -zxvf httpd-2216.tar.gz -C /www/wdlinux
##开始解压/root下的httpd,php.pnp4nagios, server.tar.gz, mysql 等软件.
tar -zxvf php-5214_apache.tar.gz -C /www/wdlinux
tar -zxvf pnp4nagios.0.6.4.tar.gz -C /usr/local/
chown nagios:nagios -R /usr/local/pnp4nagios;
ln -s /www/wdlinux/httpd-2.2.16 /www/wdlinux/apache
ln -s /www/wdlinux/httpd-2.2.16 /etc/httpd
cp /www/wdlinux/init.d/httpd /etc/rc.d/init.d/httpd
#########
tar -zxvf server.tar.gz -C /tmp
############
ln -s /www/wdlinux/php-5.2.14 /www/wdlinux/php
ln /www/wdlinux/php/bin/php /usr/bin/php
useradd -d /dev/null mysql
useradd nagios;
tar -zxvf mysql-5.1.56.tar.gz -C /www/wdlinux ;
ln -s /www/wdlinux/mysql-5.1.56 /www/wdlinux/mysql ;
cp /tmp/conf/f /etc/f
/www/wdlinux/mysql-5.1.56/bin/mysql_install_db --user=mysql ;
#初始化数据库.
##开始处理 nagios,cacti等, 这些软件已经经过编译安装的.
##############
mv /tmp/soft.tar.gz /opt
###start install nagios ,cacti
cd /tmp
tar -xzvf cacti-0.8.7e.tar.gz -C /var/www/html > /dev/null ;
tar -zxvf cacti-spine-0.8.7e.tar.gz -C /usr/local/ > /dev/null ;
tar xzf rrdtool-1.2.13.tar.gz -C /usr/local/ 2>/dev/null
ln -s /usr/local/rrdtool/bin/rrdtool /usr/bin/rrdtool ;
cp simhei.ttf /usr/share/fonts/ ;
cp conf/*.conf /etc/httpd/conf.d/
cp init/* /etc/init.d/
/bin/chmod +x /etc/init.d/*
cat rc.local > /etc/rc.local
cd /opt
tar xzf soft.tar.gz > /dev/null
/bin/chown nagios:nagios * -R
#######导入数据库.
cd /tmp;
/www/wdlinux/mysql/share/mysql/mysql.server start
/www/wdlinux/mysql/bin/mysqladmin --user=root create cacti
/www/wdlinux/mysql/bin/mysqladmin --user=root create nagios
/www/wdlinux/mysql/bin/mysqladmin --user=root create centreon
/www/wdlinux/mysql/bin/mysqladmin --user=root create centstatus
/www/wdlinux/mysql/bin/mysqladmin --user=root create centstorage
/www/wdlinux/mysql/bin/mysql -u root --default-character-set=latin1 mysql < mysql.sql
/www/wdlinux/mysql/share/mysql/mysql.server restart ;
/www/wdlinux/mysql/bin/mysql -u root -paaaaaa --default-character-set=latin1 cacti < cacti.sql
/www/wdlinux/mysql/bin/mysql -u root -paaaaaa --default-character-set=latin1 nagios < nagios.sql
/www/wdlinux/mysql/bin/mysql -u root -paaaaaa --default-character-set=latin1 centreon < centreon.sql
/www/wdlinux/mysql/bin/mysql -u root -paaaaaa --default-character-set=latin1 centstatus < centstatus.sql
/www/wdlinux/mysql/bin/mysql -u root -paaaaaa --default-character-set=latin1 centstorage < centstorage.sql
cd /opt;
/bin/chown nagios:nagios * -R
##加入自动更新时间的cron
echo '*/10 * * * * ntpdate 0.rhel.pool.ntp.org ; clock -w' > /tmp/crontab2.tmp
echo '*/1 * * * * php /var/www/html/cacti/poller.php > /dev/null 2>&1' >> /tmp/crontab2.tmp
crontab /tmp/crontab2.tmp
rm /tmp/crontab2.tmp
echo "alias ipv6 off" >> /etc/modprobe.conf
echo "alias net-pf-10 off" >> /etc/modprobe.conf
##取消非必要的开机启动服务.
for service in NetworkManager NetworkManagerDispatcher acpid anacron apmd atd auditd autofs bluetooth conman cpuspeed cups dc_client dc_server dhcdbd dund firstboot gpm haldaemon hidd ip6tables ipmi irda irqbalance lm_sensors lvm2-monitor mcstrans mdmonitor mdmpd messagebus microcode_ctl multipathd netconsole netfs netplugd nfs nfslock nscd ntpd pand pcscd portmap psacct rdisc readahead_early readahead_later restorecond rhnsd rpcgssd rpcidmapd rpcsvcgssd saslauthd smartd snmptrapd wpa_supplicant ypbind yum-updatesd
do
chkconfig --del $service
done
#yum install lrzsz net-snmp-utils net-snmp net-snmp-devel -y
for service in sshd network
do
chkconfig --level 235 $service on
done
echo '
/www/wdlinux/mysql/lib/mysql
/www/wdlinux/httpd-2.2.16/lib
' >> /etc/ld.so.conf ;
/sbin/ldconfig ;
###把msyql,php,apache 加入PATH
sed -i '44 a\ PATH=$PATH:/www/wdlinux/php-5.2.14/bin:/www/wdlinux/mysql-5.1.50/bin:/www/wdlinux/httpd-2.2.16/bin' /etc/profile ;
###启动系统后的提示消息. 下一个版本会改正.
echo '
-------------------
please install these software on your system, this message on /etc/issue .
code:
yum install lrzsz net-snmp-utils net-snmp net-snmp-devel ntp.i386 freetype.i386 freetype-devel.i386 libart_lgpl.i386 libart_lgpl-devel.i386 -y
-----------------
For more information, follow this url: http://your-server-ip OR read /root/README.txt .
Thank you for using Cacti-Nagios project ,we homepage is : .
----------------
' > /etc/issue ;
cp /root/index.txt /var/www/html/index.html ;
cp /root/splash.xpm.gz /boot/grub/ ;
##收尾.
cd /root ;
rm -f *.gz
rm -f *.sh
cd /tmp;
rm *.gz;
rm *.sh ;
定义光盘启动后的默认动作, 需要更改 isolinux.cfg . 位置: isolinux/isolinux.cfg
##在cacti-nagios 中,只有如下内容:
default auto ##默认动作: auto 标签定义的内容.
label auto ##定义一个名字为auto的标签
kernel vmlinuz
append ks=cdrom:/isolinux/wdlinux.cfg initrd=initrd.img ##定义加载的kickstart文件名, 在这里为 wdlinux.cfg , 当然也可以改成其他名字, 但文件名字和路径得一致.
生成ISO
#cd /data
#mkisofs -R -J -T -r -l -d -allow-multidot-allow-leading-dots -no-bak -o /tmp/myiso -0.1-i386.iso -b isolinux/isolinux.bin -c isolinux/boot.cat-no-emul-boot -boot-load-size 4 -boot-info-table .
##别忘了后面的 “.” .
其他, 请参考:
http://bbs.linuxtone.org/thread-2448-1-1.html
对于制作开机画面, 可以下载 gimp 来制作, 有win的版本 .
在win下 gimp 要多开启几次才能正常使用 .
展开阅读全文