• Linux系统 自动化运维工具之kickstart


    PXE预启动执行环境(引导方式)
    工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成终端基本软件设置,从而引导预先安装在服务器中的终端操作系统。
    PXE的工作过程:
    1. PXE Client 从自己的PXE网卡启动,向本网络中的DHCP服务器索取IP;
    2. DHCP 服务器返回分配给客户机的IP 以及PXE文件的放置位置(该文件一般是放在一台TFTP服务器上) ;
    3. PXE Client 向本网络中的TFTP服务器索取pxelinux.0 文件;
    4. PXE Client 取得pxelinux.0 文件后之执行该文件;
    5. 根据pxelinux.0 的执行结果,通过TFTP服务器加载内核和文件系统 ;
    6. 进入安装画面, 此时可以通过选择HTTP、FTP、NFS 方式之一进行安装; 
    二、配置Kickstart
    2.1 环境准备
    [root@localhost ~]# systemctl stop firewalld
    [root@localhost ~]# systemctl disable firewalld
    [root@localhost ~]# getenforce 
    Permissive
    2.2 准备安装源
    [centos]
    Name=centos
    Baseurl=file://
    Enable=0
    Gpgcheck=1
    2.3 安装DHCP服务
    [root@localhost ~]# yum install dhcp ntpdate syslinux -y && ntpdate time.windows.com
    ###备份原始配置文件
    cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.bak_$(date +%Y-%m-%d-%H-%M)
    [root@localhost ~]# cat /etc/dhcp/dhcpd.conf
    default-lease-time 600;
    max-lease-time 7200;
    log-facility local7;
    subnet 192.168.100.0 netmask 255.255.255.0 {
    option routers 192.168.100.1;
    option subnet-mask 255.255.255.0;
    option domain-name-servers 192.168.100.1;
    option time-offset -18000; # Eastern Standard Time 
    range dynamic-bootp 192.168.100.60 192.168.100.100;
    default-lease-time 21600;
    max-lease-time 43200;
    next-server 192.168.100.1;
    filename "pxelinux.0";
    }
    ###在多网卡的情况下绑定网卡启动DHCP服务
    [root@localhost pub]# cat /usr/lib/systemd/system/dhcpd.service 
    [Unit]
    Description=DHCPv4 Server Daemon
    Documentation=man:dhcpd(8) man:dhcpd.conf(5)
    Wants=network-online.target
    After=network-online.target
    After=time-sync.target
    [Service]
    Type=notify
    ExecStart=/usr/sbin/dhcpd -f -cf /etc/dhcp/dhcpd.conf -user dhcpd -group dhcpd --no-pid eno33554984
    [Install]
    WantedBy=multi-user.target

    ###启动服务
    systemctl start dhcpd.service
    systemctl enable dhcpd.service

    2.4 安装ftp
    yum install -y vsftpd
    ###挂载镜像
    mount /dev/cdrom /mnt
    cp -rf /mnt/* /var/ftp/pub/
    提示:如果是光盘镜像可以这样挂载,mount /opt/CentOS-7-x86_64-Minimal-1511.iso /var/ftp/pub -o loop,但是如果你的ks.cfg文件也放到/var/ftp/pub目录下,注意不要被覆盖掉;
    ###查看相关内容
    ls /var/ftp/pub
    ###启动vsftp服务
    systemctl start vsftpd
    systemctl enable vsftpd

    2.5 tftp安装
    yum install -y tftp-server syslinux
    cp /etc/xinetd.d/tftp /etc/xinetd.d/tftp.bak_$(date +%Y-%m-%d-%H-%M)
    cat /etc/xinetd.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 #此处将yes该为no
    per_source = 11
    cps = 100 2
    flags = IPv4
    }
    ###配置tftp-server
    cp -rf /usr/share/syslinux/* /var/lib/tftpboot
    cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot
    保证tftpboot 有 initrd.img pxelinux.0 vmlinuz 目录pxelinux.cfg/default
    Boot .smg
    mkdir /var/lib/tftpboot/pxelinux.cfg
    cp /mnt/cdrom/images/pxeboot/vmlinuz /var/lib/tftpboot/
    cp /mnt/cdrom/images/pxeboot/initrd.img /var/lib/tftpboot/
    cp /mnt/cdrom/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default 
    chmod 755 /var/lib/tftpboot/pxelinux.cfg/default 
    [root@localhost ~]# cat /var/lib/tftpboot/pxelinux.cfg/default 
    default menu.c32
    prompt 1
    timeout 10
    menu title ########## PXE Boot Menu ##########
    label 1
    menu label ^1) Install CentOS 7 x64 with Local Repo
    menudefault
    kernel centos7/vmlinuz
    append initrd=centos7/initrd.img text ks=ftp://192.168.100.1/pub/ks.cfg
    label 2
    menu label ^2) Install CentOS 7 x64 with http://mirror.centos.org Repo
    kernel centos7/vmlinuz
    append initrd=centos7/initrd.img method=http://mirror.centos.org/centos/7/os/x86_64/ devfs=nomount ip=dhcp
    label 3
    menu label ^3) Install CentOS 7 x64 with Local Repo using VNC
    kernel centos7/vmlinuz
    append initrd=centos7/initrd.img method=ftp://192.168.100.1/pub devfs=nomount inst.vnc inst.vncpassword=password

    2.6 配置Kickstart
    [root@localhost ~]# cp ~/anaconda-ks.cfg /var/ftp/pub/ks.cfg
    [root@localhost ~]# cat /var/ftp/pub/ks.cfg 
    %packages
    @^minimal
    @core
    kexec-tools
    %end
    %addon com_redhat_kdump --enable --reserve-mb='auto'
    %end

    ###检查是否存在错误
    yum install pykickstart
    ksvalidator /var/ftp/pub/anaconda-ks.cfg
    ###启动相关服务
    systemctl restart ftpd
    systemctl restart vsftpd
    systemctl restart dhcpd

    安装Kickstart
    #yum -y install system-config-kickstart
    在桌面环境下配置Kickstart
    启动X Windows 环境
    #startx
    配置Kickstart
    #system-config-kickstart

    root目录下有个anaconda-ks.cfg文件,我们进去把安装软件脚本拷贝到咱们刚才创建的那个ks.cfg中
    #vim /root/anaconda-ks.cfg
    把anaconda-ks.cfg文件最下方的脚本粘贴到咱们的ks.cfg中
    #vim /root/ks.cfg
    把上面一串@的所有内容都粘贴进去,包括两个%哪行。
    把ks文件拷贝到/var/ftp/里面
    #cp /root/ks.cfg /var/ftp/
    编辑/var/lib/tftpboot/pxelinux.cfg/default文件
    添加一个引导选项,最后一行指向ftp应答文件的网络路径
    #vim /var/lib/tftpboot/pxelinux.cfg/default

    cp /var/www/html/cdrom/isolinux/*.msg /var/lib/tftpboot/

    -----------------------------------分割线-------------------------------------------------
    检查
    检查SELinux是否关闭
    #setenforce 0 //关闭SELinux
    检查防火墙,开放dhcp,ftp,tftp服务,或者关闭防火墙
    #firewall-cmd --permanent --add-service=dhcp


    #firewall-cmd --permanent --add-service=ftp

    #firewall-cmd --permanent --add-port=69/udp

    #firewall-cmd --reload
    返回结果都是“success”
    注:这里也可以通过systemctl stop firewall来关闭防火墙
    检查所有服务是否正常启动
    #systemctl is-active dhcpd
    #systemctl is-active vsftpd

    返回结果都是“active”
    #netstat -tulnp | grep :69
    udp 0 0 0.0.0.0:69 0.0.0.0:* 
    3912/xinetd

    label rhel //标红的部分是咱们添加的部分
    menu label ^Install RHEL7.0
    menu default
    kernel vmlinuz
    append initrd=initrd.img inst.stage2=ftp://192.168.153.130/isoinst.ks=ftp://192.168.153.130/ks.cfg quiet

  • 相关阅读:
    算法的时间复杂度
    二叉树递归建立和遍历
    数据挖掘之分类算法---knn算法(有matlab例子)
    C链表之创建简单静态链表
    ID3决策树算法原理及C++实现(其中代码转自别人的博客)
    adobe reader安装完成之前被中断,错误代码150210解决方法
    Oracle性能诊断艺术-读书笔记
    先对结果集排序然后做update、delete操作
    索引聚簇因子相关
    直方图及low_value、high_value
  • 原文地址:https://www.cnblogs.com/devops-docker/p/11495795.html
Copyright © 2020-2023  润新知