Chinaunix首页 | 论坛 | 博客
  • 博客访问: 270845
  • 博文数量: 36
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 411
  • 用 户 组: 普通用户
  • 注册时间: 2015-05-04 22:05
个人简介

追求永无止境

文章分类
文章存档

2016年(3)

2015年(33)

分类: LINUX

2015-06-22 20:30:50

由于最近计划做分布式服务器集群,现有条件是实验室机房大多的windows系统和少有的linux系统。由于机器数量比较多所以自动化无人安装成了我的首选。我用了PXE+DHCP+NFS+Kickstar安装了实验室的centos6.5实验环境。该方法主要用于公司、学校、网吧等需要批量安装操作系统的环境,极大地简化了单个安装的重复过程,实现了自动化运维,避免了重复性劳动,极大地解放了劳动力,提高了工作效率。访问图示:

首先,我们先来介绍一下相关的原理和概念。
1、PXE
PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成终端(客户端)基本软件设置,从而引导预先安装在服务器中的终端操作系统。
2、Kickstart
Kickstart是一种无人值守安装方式。它工作的目的是自动填充安装过程中需要人为干预去填写的各种参数。使用Kickstart预先配置好安装过程中可能会出现的参数,并生成配置文件ks.cfg。在安装过程中,如果配置文件中有该参数就自动填充,如果没有就需要手动干预。正常情况下程序会自动完成安装并重新启动系统。
3、实验准备条件:
NFS服务器
DHCP服务器
Kickstart软件
带有支持PXE网卡的主机
交换机
4、实验步骤:
    (1)我的系统是用最小化安装的,由于后边要用到system-config-kickstart工具,该工具需要依赖于图形化界面的支持,所以我们先安装图形界面:

点击(此处)折叠或打开

  1. yum groupinstall -y 'X Window System'
  2. yum groupinstall -y 'GNOME Desktop'

    (2)安装配置DHCP服务器
注意需要先设定服务器地址为静态IP
小编的配置文件:

点击(此处)折叠或打开

  1. DEVICE="eth0"
  2. BOOTPROTO="static"
  3. HWADDR="00:0D:87:05:B4:ED"
  4. NM_CONTROLLED="yes"
  5. ONBOOT="yes"
  6. TYPE="Ethernet"
  7. DNS1=192.168.10.1
  8. IPADDR=192.168.10.2
  9. NETMASK=255.255.255.0
  10. GATEWAY=192.168.10.1
  11. UUID="68ced0f8-3307-4aaa-a3d0-5b488a2c74e3"

安装DHCP服务器:

点击(此处)折叠或打开

  1. yum install -y dhcp
编辑配置文件:/etc/dhcp/dhcp.conf (注意:由于版本信息,如果放到该目录dhcp启动不了,可以尝试把配置文件放到/etc/目录下。
文件修改后内容如下:

点击(此处)折叠或打开

  1. ddns-update-style interim;
  2. ignore client-updates;
  3. next-server 192.168.10.2;
  4. filename "pxelinux.0";

  5. subnet 192.168.10.0 netmask 255.255.255.0{
  6.         option routers 192.168.10.1;
  7.         option subnet-mask 255.255.255.0;
  8.         option nis-domain "sxau.com";
  9.         option domain-name "sxau.com";
  10.         option domain-name-servers 192.168.10.2;
  11.         option time-offset -18000;
  12.         range dynamic-bootp 192.168.10.100 192.168.10.200;
  13.         default-lease-time 21600;
  14.         max-lease-time 43200;
  15. }

启动dhcp服务:

点击(此处)折叠或打开

  1. service dhcpd start
如果机器数量多的话,注意地址池的地址数量,避免因耗尽IP导致安装不了。

    (3)安装配置NFS服务器
安装NFS服务器:

点击(此处)折叠或打开

  1. yum install -y nfs-utils
  2. yum install -y portmap

修改配置文件:vim /etc/exports

点击(此处)折叠或打开

  1. vim /etc/exports
  2. /mnt/cdrom 192.168.10.2/24(ro)
  3. /mnt/ks 192.168.10.2/24(ro)

挂载镜像文件到/mnt/cdrom

点击(此处)折叠或打开

  1. mount -o loop /mnt/CentOS-6.5-i386-bin-DVD1.iso /mnt/cdrom

启动NFS服务:

点击(此处)折叠或打开

  1. service nfs restart

    (4)安装配置TFTP服务器
安装tftp服务器:

点击(此处)折叠或打开

  1. yum install -y tftp-server

修改配置文件(注意该配置文件在/etc/xinetd.d目录下)/etc/xinetd.d/tftp

点击(此处)折叠或打开

  1. service tftp
  2. {
  3.     socket_type        = dgram
  4.     protocol        = udp
  5.     wait            = yes
  6.     user            = root
  7.     server            = /usr/sbin/in.tftpd
  8.     server_args        = -s /var/lib/tftpboot
  9.     disable            = no
  10.     per_source        = 11
  11.     cps            = 100 2
  12.     flags            = IPv4
  13. }

重新启动xinetd服务:

点击(此处)折叠或打开

  1. service xinetd restart

配置PXE启动程序:
复制pxelinux.0文件至tftpboot文件夹中

点击(此处)折叠或打开

  1. cp /usr/lib/syslinux/pxelinux.0 /var/lib/tftpboot/

复制镜像中的initrd.img和vmlinuz到tftpboot文件夹中

点击(此处)折叠或打开

  1. cp /mnt/cdrom/isolinux/initrd.img /var/lib/tftpboot
  2. cp /mnt/cdrom/isolinux/vmlinuz /var/lib/tftpboot

在tftpboot文件夹下新建一个pxelinux.cfg目录

点击(此处)折叠或打开

  1. mkdir /var/lib/tftpboot/pxelinux.cfg/

复制isolinux.cfg到pxelinux.cfg目录下,同时重新命名为default

点击(此处)折叠或打开

  1. cp /mnt/cdrom/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default

修改default文件

点击(此处)折叠或打开

  1. default ks
  2. prompt 1
  3. timeout 6
  4. ……
  5. label ks
  6.   menu label ^Install or update an exiting system
  7.   menu default
  8.   kernel vmlinuz
  9.   append ks=nfs:192.168.10.2:/mnt/ks/ks.cfg initrd=initrd.img
    (5)Kickstart生成ks.cfg文件
安装Kickstart软件包:

点击(此处)折叠或打开

  1. yum install -y system-config-kickstart

配置Kickstart并生成ks.cfg

点击(此处)折叠或打开

  1. startx #进入图形化界面
  2. #打开终端
  3. system-config-kickstart

运行上述命令后,即可打开配置对话框,然后设置并生成配置文件。
小编的配置文件如下:

点击(此处)折叠或打开

  1. #platform=x86, AMD64, or Intel EM64T
  2. #version=DEVEL
  3. # Firewall configuration
  4. firewall --disabled
  5. # Install OS instead of upgrade
  6. install
  7. # Use NFS installation media
  8. nfs --server=192.168.10.2 --dir=/mnt/cdrom/
  9. # Root password
  10. rootpw --iscrypted $1$V7v6id2m$csePX1JaSCjBjJA9R/nq01
  11. # System authorization information
  12. auth --useshadow --passalgo=sha512
  13. # Use text mode install
  14. text
  15. firstboot --disable
  16. # System keyboard
  17. keyboard us
  18. # System language
  19. lang en_US
  20. # SELinux configuration
  21. selinux --disabled
  22. # Installation logging level
  23. logging --level=info
  24. # Reboot after installation
  25. reboot
  26. # System timezone
  27. timezone Asia/Shanghai
  28. # Network information
  29. network --bootproto=dhcp --device=eth0 --onboot=on
  30. # System bootloader configuration
  31. bootloader --location=mbr
  32. # Clear the Master Boot Record
  33. zerombr
  34. # Partition clearing information
  35. clearpart --all --initlabel
  36. # Disk partitioning information
  37. part /boot --fstype="ext4" --size=1024
  38. part / --fstype="ext4" --size=10240
  39. part swap --fstype="swap" --size=1024

  40. %packages
  41. @development
  42. @network-tools

  43. %end
生成的配置文件保存在/mnt/ks/目录下。

    (6)配置文件注意事项:
        软件包选择越少越好,建议选择最小化安装,这样利于搭建生产化环境。
        如果电脑有多个网卡,建议选择名称一样的网卡。一般多网卡主机编号从上到下依次为:eth0、eth1……。小编实验室的电脑有的有一个网卡,有的有两个网卡,造成网卡选择这块有一部分手动干预了。
        在设置分区时,一定要注意自己划分的总空间小于磁盘总容量。一来可以扩展数据盘、二来可以防止由于计算偏差造成安装过程中提示磁盘空间不足。
        key --skip在批量安装红帽系统时,可以跳过输入序列号过程;如果时centos系统,则可以去掉该选项。
        reboot 选项必须存在,但注意启动引导设置的更改。
        clearpart --all --initlabel 该命令必须存在。否则系统会让你手动选择是否清楚数据并选择安装位置,造成需要人为干预,不利于自动化安装。
阅读(2058) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~