美文网首页
基于Cetnstos7.6的pxe安装---通过excl文件获取

基于Cetnstos7.6的pxe安装---通过excl文件获取

作者: 疯疯疯子子子 | 来源:发表于2019-07-22 18:51 被阅读0次
    • kickstart的原理及组件

    PXE(Pre-boot Execution Environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成终端基本软件设置,从而引导预先安装在服务器中的终端操作系统。严格来说,PXE 并不是一种安装方式,而是一种引导方式。进行 PXE 安装的必要条件是在要安装的计算机中必须包含一个 PXE 支持的网卡(NIC),即网卡中必须要有 PXE Client。PXE 协议可以使计算机通过网络启动。此协议分为 Client端和 Server 端,而PXE Client则在网卡的 ROM 中。当计算机引导时,BIOS 把 PXE Client 调入内存中执行,然后由 PXE Client 将放置在远端的文件通过网络下载到本地运行。运行 PXE 协议需要设置 DHCP 服务器和 TFTP 服务器。DHCP 服务器会给 PXE Client(将要安装系统的主机)分配一个 IP 地址,由于是给 PXE Client 分配 IP 地址,所以在配置 DHCP 服务器时需要增加相应的 PXE 设置。此外,在 PXE Client 的 ROM 中,已经存在了 TFTP Client,那么它就可以通过 TFTP 协议到 TFTP Server 上下载所需的文件了

    • 关闭防火墙及selinux

    systemctl stop friewalld
    systemctl disable firewalld
    setenforce 0 
    sed -i 's/^SELINUX=.*/SELINUX=disabled/` /etc/selinux/config
    
    • DHCP安装

    yum install dhcp -y
    
    cat >>/etc/dhcp/dhcpd.conf<<EOF
    subnet 172.16.1.0 netmask 255.255.255.0 {   ## 指定网段   
    range 172.16.1.100 172.16.1.199;     ## 地址范围   
    option subnet-mask 255.255.255.0;   ## 分配的掩码 
    default-lease-time 21600;   ## 地址租约   
    max-lease-time 43200;       ## 最大租约   
    next-server 172.16.1.201;   ## 下一步找什么  (本机地址)
    filename "/pxelinux.0";    ## 要下载的文件(请求下载启动文件)
    }
    EOF
    
    systemctl start dhcpd     --- 启动
    systemctl status dhcpd    --- 查看状态
    
    • http安装

    yum install httpd -y
    
    mkdir -p /var/www/html/centos7.6  ###创建镜像目录
    mkdir -p /var/www/html/ks           ####创建ks文件目录
    systemctl start httpd
    
    • TFTP安装及syslinux安装

    yum install tftp-server syslinux -y
    
    • 生成pxelinux.0文件

    cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
    
    • 从镜像中寻找相关配置文件

    # cp -a /var/www/html/CentOS7/isolinux/* /var/lib/tftpboot/
    # mkdir -p /var/lib/tftpboot/pxelinux.cfg 
    # cp /var/www/html/CentOS7/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
    
    • 编辑default文件

    default ks
    prompt 0
    label ks
       kernel vmlinuz
       append initrd=initrd.img ks=http://192.168.168.101/ks/ks.cfg  ksdevice=eno3 ##该口为接收数据的网口。实际上并没有在引导时还是所有网口去例遍了
    
    
    • 编辑 ks文件 并赋予755权限

    #version=DEVEL
    # System authorization information
    auth --enableshadow --passalgo=sha512
    # Use CDROM installation media
    url --url=http://192.168.168.101/centos7.6   ###获取镜像地址
    # Use graphical install  ###安装方式 分为图形化界面以及文本界面
    #graphical
    text
    # Run the Setup Agent on first boot
    firstboot --enable
    ignoredisk --only-use=sda
    # Keyboard layouts
    keyboard --vckeymap=us --xlayouts='us'
    # System language
    lang en_US.UTF-8 --addsupport=zh_CN.UTF-8
    
    # Network information
    #network  --bootproto=dhcp --device=eno1 --onboot=off --ipv6=auto --no-activate
    #network  --bootproto=dhcp --device=eno2 --onboot=off --ipv6=auto
    #network  --bootproto=dhcp --device=eno3 --onboot=off --ipv6=auto
    #network  --bootproto=dhcp --device=eno4 --onboot=off --ipv6=auto
    #network  --bootproto=dhcp --device=eno5 --onboot=off --ipv6=auto
    #network  --bootproto=dhcp --device=eno6 --onboot=off --ipv6=auto
    #network  --bootproto=dhcp --device=ens1f0 --onboot=off --ipv6=auto
    #network  --bootproto=dhcp --device=ens1f1 --onboot=off --ipv6=auto
    #network  --hostname=localhost.localdomain
    
    # Root password
    rootpw --iscrypted $6$3ZTN7uGlQC8AMQf/$gUg9Q6oHxF1zOLQbkJGVoNDgG7R9ZOmmG7Z4BEg2da3RF3FkyT4G3YJbpRdsXhzqpFj.BGfc6Ic.X1TqLqNRf. ####加密密码 
    # System services
    services --disabled="chronyd"
    services --disabled="NetworkManager"
    services --disabled="firewall"
    services --disabled="selinux"
    # System timezone
    timezone Asia/Shanghai --isUtc --nontp
    # System bootloader configuration
    bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda
    # Partition clearing information
    clearpart --none --initlabel
    #clearpart --all --drives=sda
    # Disk partitioning information
    part / --fstype="xfs" --ondisk=sda --size=512000
    part /var --fstype="xfs" --ondisk=sda --size=1 --grow ####表示剩余空间均给var
    part swap --fstype="swap" --ondisk=sda --size=32767
    part /boot --fstype="xfs" --ondisk=sda --size=1024
    reboot
    %packages
    @^infrastructure-server-environment
    @base
    @compat-libraries
    @core
    @debugging
    @development
    @hardware-monitoring
    @performance
    @system-admin-tools
    kexec-tools
    ipmitool
    %end
    
    %addon com_redhat_kdump --enable --reserve-mb='auto'
    
    %end
    
    %anaconda
    pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
    pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
    pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty
    %end
    
    %post
    
    cd /root
    SN=`dmidecode -t 1|grep Serial|awk -F : '{print $2}'|awk -F ' ' '{print $1}'` ##获取SN号
    wget http://192.168.168.101/1.csv   下载csv格式文件里面包括(网络地址,带外地址,带外网口最后由ansible推送,主机名)
    IP=`grep $SN 1.csv|awk -F , '{print $3}'`
    HOSTNAME=`grep $SN 1.csv|awk -F , '{print $2}'`
    GATEWAY=12.33.12.254
    NETMASK=255.255.255.0
    OUTIP=`grep $SN 1.csv|awk -F , '{print $4}'`
    
    hostnamectl set-hostname $HOSTNAME
    
    echo $IP $HOSTNAME >> /etc/hosts
    sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab ###关闭swap分区,因为k8s需要关闭swap分区
    ####双网卡绑定
    cat <<EOF>/etc/sysconfig/network-scripts/ifcfg-ens1f0
    DEVICE=ens1f0
    ONBOOT=yes
    BOOTPROTO=none
    TYPE=Ethernet
    USERCTL=no
    SLAVE=yes
    MASTER=bond0
    EOF
    cat <<EOF>/etc/sysconfig/network-scripts/ifcfg-ens1f1
    DEVICE=ens1f1
    ONBOOT=yes
    BOOTPROTO=none
    TYPE=Ethernet
    USERCTL=no
    SLAVE=yes
    MASTER=bond0
    EOF
    
    #
    cat <<EOF>/etc/sysconfig/network-scripts/ifcfg-bond0
    DEVICE=bond0
    ONBOOT=yes
    BOOTPROTO=none
    TYPE=Ethernet
    USERCTL=no
    BONDING_OPTS="miimon=100 mode=4 xmit_hash_policy=layer3+4"
    EOF
    
    echo "IPADDR=$IP" >>/etc/sysconfig/network-scripts/ifcfg-bond0
    echo "NETMASK=$NETMASK" >>/etc/sysconfig/network-scripts/ifcfg-bond0
    echo "GATEWAY=$GATEWAY" >>/etc/sysconfig/network-scripts/ifcfg-bond0 
    
    
    
    %end
    
    

    相关文章

      网友评论

          本文标题:基于Cetnstos7.6的pxe安装---通过excl文件获取

          本文链接:https://www.haomeiwen.com/subject/ujcglctx.html