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

[经验分享] PXE自动安装CentOS6与CentOS7的实现

[复制链接]

尚未签到

发表于 2018-4-20 06:14:13 | 显示全部楼层 |阅读模式
  一、 准备工作



  • anaconda程序的运行配置文件 kickstart 文件,root用户家目录下的anaconda.cfg即ks.cfg文件。
  • CentOS6与CentOS7系统镜像文件
  • 软件/工具:httpd 、tftp-server 、dhcp 、syslinux 包

  二、 安装软件包/工具,启用



  • yum install  Packages  { httpd , tftp-server , dhcp , syslinux }
  • 配置dhcpd.conf文件,示范文件地址:/usr/share/doc/dhcp-4.2.5/dhcpd.conf.example
  • 如果在自己实验,网卡选择主机模式,并且关闭DHCP服务
    DSC0000.jpg


```
subnet 192.168.163.0 netmask 255.255.255.0 {
range 192.168.163.40  192.168.163.60;#dhcp服务的ip地址范围
option routers 192.168.163.1;#网关
filename"pxelinux.0";#文件名写死,固定在tftp空间寻找这一个文件
next-server 192.168.163.20;#系统文件提供机器的地址
#详细dhcp配置请自行了解
}
```

  • httpd服务使用


    • httpd服务目录地址 /ver/www/html/
      mkdir  -pv  centos/{6,7}  ksdir  
      #kickstart 文件放到 ksdir目录下,方便寻找;
    • 将系统镜像文件分别挂载到 centos/6和7的目录下
      mount /dev/sr0  /var/www/html/centos/6 #挂载7同法
      #导入的系统镜像文件,挂载加 -o loop  比较通用
    • 将所有共享出去的文件权限修改为  644 权限;不然无法获取到安装文件


  •   启动服务



    • 关闭SElinux 修改/etc/selinux/config文件  SELINUX=disabled
    • 关闭防火墙


    service iptables stop
    chkconfig iptables off  #开机不启动
    #centos6方法
    systemctl stop firewalld
    systemctl disable firewalld
    #centos7方法

    • 启动服务
      systemctl enable httpd #开机自动启动http  dhcp  tftp 服务
      systemctl enable dhcpd
      systemctl enable tftp.socket


  三、 文件配置


  • kickstart 创建

    • 安装包 system-config-kickstart  ,命令system-config-kickstart 打开软件,可以根据自己的需求直接创建kickstart文件。
    • 使用root家目录中的 anaconda.cfg文件修改

  • kickstart文件格式
    简单说明,详情请自行了解

#version=DEVEL
auth --enableshadow --passalgo=sha512 #密码加密方式
url --url=http://192.168.163.20/centos/7 #使用什么方式去引导启动
install #安装
text #命令模式安装  可以选择
reboot #安装完,自动重启
selinux --disabled #关闭SElinux
firewall --disabled #关闭防火墙
firstboot --enable #初始化开启
ignoredisk --only-use=sda #选择磁盘  sda
keyboard --vckeymap=us --xlayouts='us' #语言和键盘选择
lang en_US.UTF-8 #文字选择
network  --bootproto=dhcp --device=ens33 --onboot=off --ipv6=auto --activ
ate #网卡设置
network  --hostname=localhost.localdomain #主机名设置
rootpw --iscrypted  xxxxxxx #设置密码  为加密文本
services --disabled="chronyd"
timezone Asia/Shanghai --isUtc --nontp  #时区选择
bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda #分区引导
zerombr  #清除分区
clearpart --all --initlabel #清空磁盘
#磁盘分区
part pv.198 --fstype="lvmpv" --ondisk=sda --size=10240
part /boot --fstype="xfs" --ondisk=sda --size=1024
volgroup centos --pesize=4096 pv.198
logvol /  --fstype="xfs" --size=5120 --name=root --vgname=centos
logvol swap  --fstype="swap" --size=2048 --name=swap --vgname=centos
logvol /app  --fstype="xfs" --size=2048 --name=app --vgname=centos
eula --agreed #同意选项  centos7中必备
%packages #安装的包
@^minimal
@core
kexec-tools
vim-enhanced
%end
%post #安装后运行脚本
rm -f /etc/yum.repos.d/*
cat > /etc/yum.repos.d/base.repo  <<EOF
[base]
name=basemage
baseurl=http://192.168.163.141/centos/6
gpgcheck=0
EOF
useradd arno
echo 123456 |passwd --stdin arno &> /dev/null
%end

  • httpd哪些文件
    DSC0001.jpg


  •   配置tftp中的文件

    • tftp为轻量级共享文件方式,网卡自带集成tftp的客户端
    • 共享目录为:/var/lib/tftpboot
    • 安装syslinux包后,我们要用到/usr/share/syslinux目录下两个的文件
    • 文件全部完成后,注意权限需要  644



cd /var/lib/tftpboot
cp  /usr/share/syslinux/{pxelinux.0,menu.c32} .
#将两个文件拷贝过来
#menu.c32是简单的启动菜单文件 ,启动页面比较简陋
mkdir {6,7}
#创建系统区分目录,将两个系统的启动文件拷入  vmlinuz   initrd.img
cp /var/www/html/centos/6/isolinux/{vmlinuz,initrd.img}  .
#拷贝进tfpboot目录
mkdir pxelinux.cfg
#创建目录,放置菜单的布局配置文件
cp /var/www/html/centos/6/isolinux/isolinux.cfg pxelinux.cfg/default
#拷贝进isolinux.cfg目录下,并改名为default


  •   tftp-server哪些文件?
    DSC0002.jpg

  • 镜像里的 isolinux.cfg 文件格式

default menu.c32 #菜单样式文件
timeout 60  #倒计时6s后自动选择默认选项
menu title  PXE CentOS 7 #菜单标题
label desktop
menu label ^Install MIni CentOS 7 # 选项  ; '^'表示首字母快捷键选择
kernel 7/vmlinuz  #内核文件路径
append initrd=7/initrd.img ks=http://192.168.163.20/ksdir/ks7-mini.cfg
#initrd.img文件路径,和kickstart文件路径
label mini
menu label Install ^mini CentOS 6
menu default  #默认选项;进入菜单,光标自动选择该选项
kernel 6/vmlinuz
append initrd=6/initrd.img ks=http://192.168.163.20/ksdir/ks6-mini.cfg
label centos6mini
menu label Install Desktop ^CentOS 6
kernel 6/vmlinuz
ppend initrd=6/initrd.img ks=http://192.168.163.20/ksdir/ks6-desktop.cf
g
label local  
#磁盘启动 ;不安装系统时,该项设置成默认选项,不然重复安装系统
menu label Boot from ^local drive
localboot 0xffff
menu end
  四、 打开需要安装系统的电脑,在一个局域网内,且没有其他DHCP服务器的环境;选择网卡启动------------------>成功
DSC0003.jpg

运维网声明 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-449296-1-1.html 上篇帖子: CentOS6.9及CentOS7.4的安装详细步骤 下篇帖子: centos文件目录权限常见的三个操作
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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