Chinaunix首页 | 论坛 | 博客
  • 博客访问: 423753
  • 博文数量: 72
  • 博客积分: 1599
  • 博客等级: 上尉
  • 技术积分: 1125
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-16 13:22
文章分类

全部博文(72)

文章存档

2014年(3)

2013年(8)

2012年(23)

2011年(23)

2010年(15)

分类: LINUX

2011-01-27 17:28:11

说明:本文做的系统镜像是redhat enterprise 5.5。镜像是在windows下面做的(用UltraEdit处理文本,UltraISO处理ISO镜像文件)。linux下面也一样的,有相应的镜像制作工具,以后再试试。

一、准备系统镜像文件,kickstart文件(ks.cfg),装完系统后所用到的安装文件或资源。

二、文件放置位置:建议在根目录,好找。

三、修改默认启动安装。
    提取光盘中isolinux文件夹下的isolinux.cfg文件,在最后加上kickstart安装参数:
  1. label kickstart
  2. kernel vmlinuz
  3. append initrd=initrd.img ks=cdrom:/ks.cfg ksdevice=eth0
    然后将第一排的default后面的“linux”改成“kickstart”。现在可以“封盘”了。

四、关于kickstart脚本:

    1.指定光盘安装:
  1. cdrom
    2.网络设置可以写死一个一般没人用的ip,我是这样写的(一行):

  1. network --bootproto=static --device=eth0 --onboot=on --ip=169.169.169.169 --netmask=255.255.255.0 --gateway=169.169.169.1 --hostname=169_169_169_169
    3.在包都装完后执行后续的自定义脚本“%post --nochroot”和“%post”所在的工作不一样。前者是类似于rescue模式的/目录,后者是系统的/root目录

    4.mount光盘资源:
     在没完成安装前,光盘的资源是挂在/mnt/source下的,完成安装后系统自动将/mnt/source umount并删掉了/mnt/source,所以我们自己用要先mkdir /mnt/source。在系统A的/dev和/mnt/sysimage/dev下都没找到cdrom,到是在/tmp下找到cdrom,实践证明,可以用。
  1. %post --nochroot
  2. mkdir /mnt/source
  3. mount -o loop /tmp/cdrom /mnt/source
  4. cp /mnt/source/setip.sh /mnt/sysimage/root/

    5.用光盘装网卡是没有启动的,如果后续脚本有用到ifconfig之类的命令,就先要将网卡起来,具体命令是:
  1. /mnt/sysimage/sbin/ifup eth0
五、调试
    1.和shell脚本一样,在要跟踪的代码前加"set -x",截止的代码后加"set +x"
    2.在要停止的地方加"read"。画面会停住等待输入,然后按"Alt + F2",在这个终端下可以查看你当前的一些系统状态是否是你预期的状态。这终端和在rescue模式中一样,系统的/root是在此模式下的/mnt/sysimage/root下。
六、kickstart附录:
  1. #platform=x86, AMD64, or Intel EM64T
  2. # System authorization information
  3. #auth --useshadow --enablemd5
  4. authconfig --enableshadow --enablemd5
  5. # System bootloader configuration
  6. bootloader --location=mbr
  7. # Clear the Master Boot Record
  8. zerombr
  9. # Partition clearing information
  10. clearpart --all --initlabel
  11. # Use graphical install
  12. #graphical
  13. # Use text mode install
  14. text
  15. # Firewall configuration
  16. firewall --enabled --ssh --port=161:udp --port=162:udp
  17. # Run the Setup Agent on first boot
  18. firstboot --disable
  19. key a6b403f5a51ffa03
  20. # System keyboard
  21. keyboard us
  22. # System language
  23. lang en_US.UTF-8
  24. # Installation logging level
  25. logging --level=info
  26. # Use network installation
  27. #url --url=http://192.168.160.200/iso/redhat64_5.5
  28. cdrom
  29. # Network information
  30. #network --bootproto=dhcp --device=eth0 --onboot=on
  31. network --bootproto=static --device=eth0 --onboot=on --ip=169.169.169.169 --netmask=255.255.255.0 --gateway=169.169.169.1 --hostname=169_169_169_169
  32. # Reboot after installation
  33. reboot
  34. #Root password
  35. rootpw --iscrypted $1$qPCJxBpm$.1rT7JaQWykNtNxFmXtNz0
  36. # SELinux configuration
  37. selinux --disabled
  38. # System timezone
  39. timezone Asia/Shanghai
  40. # Install OS instead of upgrade
  41. install
  42. # X Window System configuration information
  43. xconfig --defaultdesktop=GNOME --depth=8 --resolution=640x480
  44. # Disk partitioning information
  45. part / --asprimary --ondisk=sda --bytes-per-inode=4096 --fstype="ext3" --size=32768
  46. #part / --ondisk=cciss/c0d0 --bytes-per-inode=4096 --fstype="ext3" --size=32768
  47. part swap --ondisk=sda --bytes-per-inode=4096 --fstype="swap" --size=16384
  48. #part swap --ondisk=cciss/c0d0 --bytes-per-inode=4096 --fstype="swap" --size=16384
  49. part /opt --ondisk=sda --bytes-per-inode=4096 --fstype="ext3" --grow --size=1
  50. #part /opt --ondisk=cciss/c0d0 --bytes-per-inode=4096 --fstype="ext3" --grow --size=1
  51. %packages
  52. @admin-tools
  53. @base
  54. @chinese-support
  55. @cluster-storage
  56. @clustering
  57. @core
  58. @development-libs
  59. @development-tools
  60. @dialup
  61. @editors
  62. @gnome-desktop
  63. @graphical-internet
  64. @legacy-software-development
  65. @legacy-software-support
  66. @system-tools
  67. @text-internet
  68. @base-x
  69. kexec-tools
  70. fipscheck
  71. device-mapper-multipath
  72. sgpio
  73. perl-XML-SAX
  74. libstdc++44-devel
  75. perl-XML-NamespaceSupport
  76. perl-Crypt-SSLeay
  77. python-imaging
  78. python-dmidecode
  79. gcc44-c++
  80. pexpect
  81. imake
  82. gcc44
  83. emacs
  84. gtk+
  85. compat-db
  86. openssl097a
  87. compat-readline43
  88. compat-openldap
  89. compat-slang
  90. openmotif22
  91. tog-pegasus
  92. audit
  93. sysstat
  94. xorg-x11-utils
  95. xorg-x11-server-Xnest
  96. xorg-x11-server-Xvfb
  97. net-snmp
  98. perl-XML-Parser
  99. perl-XML-Simple
  100. perl-Net-IP
  101. perl-Net-SSLeay
  102. -yum-updatesd
  103. -bluez-utils
  104. -wvdial
  105. -minicom
  106. -isdn4k-utils
  107. -bluez-hcidump
  108. -bluez-gnome
  109. %post --nochroot
  110. mkdir /mnt/source
  111. #mount -t nfs -o tcp 192.168.160.200:/tftpboot/ /mnt/source
  112. mount -o loop /tmp/cdrom /mnt/source
  113. cp /mnt/source/setip.sh /mnt/sysimage/root/
  114. cp -f /mnt/source/snmpd.conf.64 /mnt/sysimage/etc/snmp/snmpd.conf
  115. cp -rf /mnt/source/rpm_64 /mnt/sysimage/root/
  116. cp -rf /mnt/source/monitor /mnt/sysimage/opt/
  117. cp -rf /mnt/source/first_db.sh /mnt/sysimage/root/

  118. #copy ocs files to server
  119. if [ -d /mnt/sysimage/usr/lib/perl5/site_perl/5.8.8/ ]; then
  120. cp -rf /mnt/source/ocs/64/Ocsinventory /mnt/sysimage/usr/lib/perl5/site_perl/5.8.8/
  121. else
  122. mkdir /mnt/sysimage/usr/lib/perl5/site_perl/5.8.8/
  123. cp -rf /mnt/source/ocs/64/Ocsinventory /mnt/sysimage/usr/lib/perl5/site_perl/5.8.8/
  124. fi

  125. if [ -d /mnt/sysimage/usr/lib64/perl5/site_perl/5.8.8/ ]; then
  126. cp -rf /mnt/source/ocs/64/x86_64-linux-thread-multi /mnt/sysimage/usr/lib64/perl5/site_perl/5.8.8/
  127. else
  128. mkdir /mnt/sysimage/usr/lib64/perl5/site_perl/5.8.8/
  129. cp -rf /mnt/source/ocs/64/x86_64-linux-thread-multi /mnt/sysimage/usr/lib64/perl5/site_perl/5.8.8/
  130. fi

  131. cp -rf /mnt/source/ocs/64/bin/ocsinventory-agent /mnt/sysimage/usr/bin
  132. cp -rf /mnt/source/ocs/64/man/ocsinventory-agent.1 /mnt/sysimage/usr/share/man/man1/
  133. ###end copy ocs files



  134. %post
  135. #cd /root
  136. #./setip.sh > setip 2>&1
  137. #rm -rf setip.sh

  138. #install ocs modules
  139. cd /root/rpm_64
  140. rpm -i monitor-edid-2.5-1.el5.1.x86_64.rpm
  141. rpm -i perl-Digest-MD4-1.5-1.2.el5.rf.x86_64.rpm
  142. rpm -i perl-Proc-PID-File-1.24-1.el5.rf.noarch.rpm
  143. rpm -i perl-Proc-Daemon-0.03-1.el5.noarch.rpm
  144. rpm -i perl-LWP-UserAgent-Determined-1.03-1.2.el5.rf.noarch.rpm
  145. cd /root
  146. rm -rf rpm_64

  147. #start ocs
  148. minit=$(($RANDOM%59))
  149. weekday=$(($RANDOM%7))
  150. echo "$minit 5 * * $weekday export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin;/usr/bin/ocsinventory-agent -s ocs.skymobiapp.com:60008 > /dev/null 2>&1 " >> /var/spool/cron/root
  151. echo "$second 2 * * * cd /opt/monitor && ./runapp.sh " >> /var/spool/cron/root
  152. chmod 600 /var/spool/cron/root
  153. echo "/usr/bin/ocsinventory-agent -s ocs.skymobiapp.com:60008 > /dev/null 2>&1 " >> /etc/rc.local
  154. echo "cd /root && ./first_db.sh " >> /etc/rc.local
  155. chkconfig snmpd on

阅读(5131) | 评论(0) | 转发(0) |
0

上一篇:初试远程ssh免密码

下一篇:端口汇聚

给主人留下些什么吧!~~