歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> RHEL6 無人值守搭建腳本

RHEL6 無人值守搭建腳本

日期:2017/2/28 15:43:41   编辑:Linux教程

RHEL6 無人值守搭建腳本:

  1. #!/bin/bash
  2. # by kumu 2012-07-28
  3. # RHEL6 unattended deployment,用於RHEL6無人值守搭建.v0.1
  4. # 有不足的地方還請見諒
  5. #搭建yum
  6. Yum_build()
  7. {
  8. yum clean all &>/dev/null
  9. num_list=$(yum list | wc -l)
  10. yum clean all &>/dev/null
  11. if [[ $num_list < 2000 ]];then
  12. mount /dev/cdrom /mnt
  13. if [ -d /etc/yum.repos.d/bak ];then
  14. mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak
  15. else
  16. mkdir /etc/yum.repos.d/bak
  17. mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak
  18. fi
  19. cat << EOF > /etc/yum.repos.d/base.repo
  20. [base]
  21. name=base
  22. baseurl=file:///mnt
  23. enabled=1
  24. gpgcheck=0
  25. EOF
  26. else
  27. echo "yum is ok!"
  28. fi
  29. }
  30. Check_rpm()
  31. {
  32. Packages=(dhcp tftp-server vsftpd syslinux)
  33. for i in ${Packages[@]}
  34. do
  35. if ! rpm -q $i &> /dev/null;then
  36. yum install $i -y &>/dev/null
  37. fi
  38. done
  39. }
  40. #dhcp服務搭建以及網絡安裝引導文件
  41. dhcp_build()
  42. {
  43. read -p "輸入所在subnet、netmask、broadcast、gateway: " subnet netmask broadcast gateway
  44. read -p "輸入next-server地址: " next_server
  45. read -p "提供IP的范圍start_ip end_ip: " start_ip end_ip
  46. cat << EOF >/etc/dhcp/dhcpd.conf
  47. subnet $subnet netmask $netmask {
  48. range $start_ip $end_ip;
  49. option routers $gateway;
  50. option broadcast-address $broadcast;
  51. default-lease-time 600;
  52. max-lease-time 7200;
  53. filename "pxelinux.0";
  54. next-server $next_server;
  55. }
  56. EOF
  57. cat << EOF >/var/lib/tftpboot/pxelinux.cfg/default
  58. default vesamenu.c32
  59. #prompt 1
  60. timeout 600
  61. display boot.msg
  62. menu background splash.jpg
  63. menu title Welcome to Red Hat Enterprise Linux 6.2!
  64. menu color border 0 #ffffffff #00000000
  65. menu color sel 7 #ffffffff #ff000000
  66. menu color title 0 #ffffffff #00000000
  67. menu color tabmsg 0 #ffffffff #00000000
  68. menu color unsel 0 #ffffffff #00000000
  69. menu color hotsel 0 #ff000000 #ffffffff
  70. menu color hotkey 7 #ffffffff #ff000000
  71. menu color scrollbar 0 #ffffffff #00000000
  72. label linux
  73. menu label ^Install or upgrade an existing system
  74. menu default
  75. kernel vmlinuz
  76. append ks=ftp://$next_server/ks.cfg initrd=initrd.img
  77. EOF
  78. }
  79. #無人值守配置文件
  80. ks_cfg()
  81. {
  82. read -p "請輸入無人值守ftp地址: " ftp
  83. cat <<EOF >/var/ftp/ks.cfg
  84. firewall --disabled
  85. install
  86. url --url="ftp://$ftp/iso"
  87. rootpw --iscrypted $1$A9aGh0yl$ahDdo0eAvQFAplXTeBkX//
  88. auth --useshadow --passalgo=sha512
  89. text
  90. firstboot --disable
  91. keyboard us
  92. lang zh_CN
  93. selinux --disabled
  94. logging --level=info
  95. reboot
  96. timezone Asia/Shanghai
  97. network --bootproto=dhcp --device=eth0 --onboot=on
  98. bootloader --location=mbr
  99. zerombr
  100. clearpart --all --initlabel
  101. part /boot --asprimary --fstype="ext4" --size=200
  102. part swap --asprimary --fstype="swap" --size=2048
  103. part / --asprimary --fstype="ext4" --size=100000
  104. %packages
  105. @additional-devel
  106. @backup-client
  107. @base
  108. @basic-desktop
  109. @chinese-support
  110. @client-mgmt-tools
  111. @compat-libraries
  112. @console-internet
  113. @debugging
  114. @desktop-debugging
  115. @desktop-platform
  116. @desktop-platform-devel
  117. @development
  118. @dial-up
  119. @directory-client
  120. @eclipse
  121. @emacs
  122. @fonts
  123. @general-desktop
  124. @graphical-admin-tools
  125. @graphics
  126. @hardware-monitoring
  127. @infiniband
  128. @input-methods
  129. @internet-browser
  130. @java-platform
  131. @kde-desktop
  132. @large-systems
  133. @legacy-unix
  134. @legacy-x
  135. @mainframe-access
  136. @network-file-system-client
  137. @network-tools
  138. @performance
  139. @perl-runtime
  140. @remote-desktop-clients
  141. @scientific
  142. @security-tools
  143. @server-platform-devel
  144. @smart-card
  145. @storage-client-fcoe
  146. @storage-client-iscsi
  147. @storage-client-multipath
  148. @system-management
  149. @system-management-messaging-client
  150. @system-management-messaging-server
  151. @system-management-snmp
  152. @system-management-wbem
  153. @technical-writing
  154. @tex
  155. @x11
  156. hmaccalc
  157. %end
  158. EOF
  159. }
  160. #調用函數
  161. Yum_build
  162. Check_rpm
  163. #拷貝系統引導文件
  164. cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
  165. cp -r /mnt/isolinux/* /var/lib/tftpboot/
  166. mkdir /var/lib/tftpboot/pxelinux.cfg &>/dev/null
  167. mv /var/lib/tftpboot/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
  168. #調用函數
  169. dhcp_build
  170. ks_cfg
  171. mkdir /var/ftp/iso &>/dev/null
  172. mount /dev/cdrom /var/ftp/iso &>/dev/null
  173. #設置開機啟動
  174. chkconfig tftp on
  175. chkconfig dhcpd on
  176. chkconfig vsftpd on
  177. #刷新服務
  178. service xinetd restart &>/dev/null
  179. service dhcpd restart &>/dev/null
  180. service vsftpd restart &>/dev/null
Copyright © Linux教程網 All Rights Reserved