设为首页 收藏本站
查看: 802|回复: 0

[经验分享] vmware上搭建kickstart 网络安装centos6.2的过程

[复制链接]

尚未签到

发表于 2015-4-7 11:01:57 | 显示全部楼层 |阅读模式
前言
  什么是PXE?
  PXE(Pre-boot Execution Environment,预启动执行环境)协议使计算机可以通过网络启动。协议分client和server。


  • PXE client 在网卡的 ROM 中,当计算机引导时,BIOS 把 PXE client 调入内存执行,由 PXE client 将放置在远端的文件通过网络下载到本地运行。
  • PXE server 需要配置 DHCP 服务器和 TFTP 服务器。DHCP 服务器用来给 PXE client(将要安装系统的主机)分配一个 IP 地址,由于是给 PXE client 分配 IP 地址,所以在配置 DHCP 服务器时需要增加相应的 PXE 支持。此外,在 PXE client 的 ROM 中,已经存在了 TFTP Client。PXE Client 通过 TFTP 协议到 TFTP Server 上下载所需的文件。
  什么是kickstart?
  KickStart是一种无人职守安装方式。KickStart的工作原理是通过记录典型的安装过程中所需人工干预填写的各种参数,并生成一个名为ks.cfg的文件;在其后的安装过程中(不只局限于生成KickStart安装文件的机器)当出现要求填写参数的情况时,安装程序会首先去查找KickStart生成的文件,当找到合适的参数时,就采用找到的参数,当没有找到合适的参数时,才需要安装者手工干预。 如安装完centos后,/root/anaconda-ks.cfg 记录了安装过程中需要人工选择的项,这个文件就是 kickstart 配置文件,可以用于其他同样配置的centos自动安装,使用方法是配置安装树里边的 isolinux.cfg



label linux
menu label ^Install or upgrade an existing system
menu default
kernel vmlinuz
#append ks=cdrom:/ks.cfg initrd=initrd.img text  // ks 文件放在安装ISO盘里
append ks=http://192.168.0.1/ks.cfg initrd=initrd.img text // ks 文件放在服务器上
pxe 和 kickstart 技术在大规模部署的时候是必备技术
实验环境
  本次实验在 vmware workstation 10 虚拟平台上进行,所有虚拟机使用的OS都是 CentOS-6.2-x86_64-minimal。实验的拓扑图如下, 共三台虚拟机,从网络安装实验角度,vm0 作为 tftp和http 服务器,上面存放要安装的系统和软件包; vm1 作为 dhcp 服务器,提供dhcp服务及响应pxe dhcp请求;vm2 是客户机。由于实验过程中,vm0和vm1都需要访问外网以便安装各种服务器,所以vm0和vm1都有2块网卡(vm1没画出来),其中eth0采用nat的方式共享物理主机的网络,通过它可以访问外网,可以在主机上用xshell等客户端连进去控制vm0和vm1
DSC0000.png


  • 按照普通从ISO文件安装系统的步骤,在vmware上安装 vm0 和 vm1, 使用的ISO 是 CentOS-6.2-x86_64-minimal.iso


  • vm0 网络配置
DSC0001.png
  eth0 网络配置

DEVICE="eth0"
BOOTPROTO=dhcp
NM_CONTROLLED="yes"
ONBOOT="yes"

  eth1 网络配置

DEVICE="eth1"
IPADDR=192.168.0.1
NETMASK=255.255.255.0
NM_CONTROLLED="yes"
ONBOOT="yes"


  • vm1 网络配置
DSC0002.png
  eth0 网络配置

DEVICE="eth0"
IPADDR=192.168.0.12
GATEWAY=192.168.0.1
NETMASK=255.255.255.0
NM_CONTROLLED="yes"
ONBOOT="yes"

服务器配置
  准备要安装的系统
  将 minimal iso 挂载到 /mnt/iso 目录备用



mkdir -p /mnt/iso
mount -o loop CentOS-6.2-x86_64-minimal.iso /mnt/iso
  DHCP 服务器
  在vm1上, yum install dhcp, 修改配置文件 /etc/dhcp/dhcpd.conf



ddns-update-style none;
allow booting;
allow bootp;
filename "pxelinux.0";
next-server 192.168.0.1;
subnet 192.168.0.0 netmask 255.255.255.0 {
option domain-name-servers 8.8.8.8, 192.168.0.1;
option routers 192.168.0.1;
option subnet-mask  255.255.255.0;
option broadcast-address 192.168.0.255;
default-lease-time 3600;
range dynamic-bootp 192.168.0.10 192.168.0.190;
}
  chkconfig dhcpd on 重启dhcp服务, service dhcpd restart
  httpd 服务器
  yum -y install httpd


  • 关闭防火墙



service iptables stop 或者 iptables -t filter -F

  • 关闭 selinux



setenforce 0 或者 修改  /etc/selinux/config 确保: SELINUX=disabled

  • 配置系统
  vi /etc/httpd/conf.d/pxeboot.conf ...



Alias /centos6.2 /boot-images/centos/x86_64/6.2

Options Indexes FollowSymLinks
Order Deny,Allow
Deny from all
Allow from 127.0.0.1 192.168.0.0/24

  将ISO挂载目录里的内容全部拷贝到 http 目录里



mkdir -p /boot-images/centos/x86_64/6.2/
cp -Rv /mnt/iso /boot-images/centos/x86_64/6.2/
chmod -R o+rx /boot-images/
  chkconfig httpd on service httpd restart
  tftp 服务器
  在vm0上,yum -y install tftp-server syslinux xinetd


  • tftp server 配置, 将 /etc/xinet.d/tftp 修改如下:



service tftp
{
socket_type          = dgram
protocol             = udp
wait                    = yes
user                    = root
server                = /usr/sbin/in.tftpd
server_args          = -s /var/lib/tftpboot
disable                 = no #disable的直由yes变为no
per_source              = 11
cps                   = 100 2
flags                = IPv4
}
  chkconfig xinetd on service xinetd restart


  • tftp server 内容
  从挂载iso的目录 /mnt/iso 拷贝需要的文件到 tftpboot 从 syslinux 安装目录拷贝 pxelinux.0 到 tftpboot



cd /var/lib/tftpboot
cp /usr/share/syslinux/pxelinux.0 .
mkdir -p pxelinux.cfg
cp /mnt/iso/isolinux/isolinux.cfg pxelinux.cfg/default
cp /mnt/iso/isolinux/initrd.img .
cp /mnt/iso/isolinux/vmlinuz .
cp /mnt/iso/isolinux/vesamenu.c32 .
  接下去修改 /var/lib/tftpboot/pxelinux.cfg/default



timeout 30
label linux   
menu label ^Install or upgrade an existing system  
menu default   
kernel vmlinuz   
append initrdinitrd=initrd.img ks=http://192.168.0.1/centos6.2/ks.cfg  // kickstart 安装
#append initrdinitrd=initrd.img method=http://192.168.0.1/centos6.2 // 交互安装
  chmod +x /var/lib/tftpboot/pxelinux.cfg/default


  • kickstart 配置文件

cp anaconda-ks.cfg /boot-images/centos/6.2/ks.cfg
chmod +r /boot-images/centos/6.2/ks.cfg

  修改ks.cfg内容,下面是一种例子:



# Kickstart file automatically generated by anaconda.
#version=DEVEL
install
url --url=http://192.168.0.1/centos6.2
lang en_US.UTF-8
keyboard us
network --bootproto=dhcp --onboot=on --device=eth0
network --nameserver=8.8.8.8 --hostname=jiayy.com
rootpw  123456
firewall --disabled
authconfig --enableshadow --passalgo=sha512
selinux --disabled
timezone --utc America/New_York
bootloader --location=mbr --driveorder=sda --append=" rhgb crashkernel=auto quiet"
# 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 --linux --drives=sda
part /boot --fstype=ext4 --size=500
part pv.008002 --grow --size=1
volgroup VolGroup  pv.008002
logvol / --fstype=ext4 --name=lv_root --vgname=VolGroup --grow --size=2048 --maxsize=5120
logvol swap --name=lv_swap --vgname=VolGroup --grow --size=1024 --maxsize=1984
logvol /tmp --name=lv_tmp --vgname=VolGroup --grow --size=2048 --maxsize=1984
repo --name="CentOS"  --baseurl=http://192.168.0.1/centos6.2 --cost=100
%packages --nobase
@core
%end
  

客户端
  新建虚拟机,注意选"稍后安装系统",如下图
DSC0003.png
  
  编辑虚拟机设置-网络适配器-选自定义网络vmnet0,如下图
   DSC0004.png
  
  启动之后按F2进入bios,选择从网络启动,然后就会一路安装
DSC0005.png

参考
   http://my.oschina.net/lionel45/blog/111618  
  http://wiki.centos.org/HowTos/NetworkInstallServer
  http://carllai.blog.iyunv.com/1664997/1053292  
  http://darktraining.com/linux/88/ http://javaarm.com/faces/display.xhtml?tid=2972

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-54559-1-1.html 上篇帖子: vmware中suse10不能上网解决方法 下篇帖子: [tool]VMware Workstation
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表