zoukankan      html  css  js  c++  java
  • kickstart介绍与部署

    linux批量自动安装部署

    实现原理:将手动安装的所有详细步骤记录到一个文件中,然后通过一种软件读取这个文件就可以实现自动安装部署。这一个软件工具叫kickstart。
    kickstart是RedHat公司开源软件的工具,对centos兼容性最好,kickstart是一个项目名称,没有这一个软件。
    cobbler是对kickstart的所有组件的封装,本质上就是网页版本的kickstart
    

    kickstart工作原理及组件

    kickstart组件之PXE
    PXE(Pre-bootExecution Environment),预启动执行环境,通过网络接口启动计算机,不依赖本地存储设备或本地已安装的系统
    PXE客户端会调用网际协议IP、用户数据报协议,动态主机设定协议(DHCP),小型文件传输协议(TFTP)等网络协议
    

    KS文件语法

    ks文件组成
    命令段
    包组段  以%packages开头,以%end结束
    脚本段  以%post开头,以%end结束,在安装完系统之后执行的相关Linux命令、脚本
            以%pre开头,以%end结束,在安装完系统之前执行的相关Linux命令、脚本
    
    kickstart文件语法检查
    yum install pykickstart
    ksvalidator /var/www/html/ks_config/CentOS-7-ks.cfg 
    
    请记住这个验证工具有其局限性。Kickstart 文件可能会很复杂;ksvalidator 可保证其语法正确,且该文件不包含淘汰的选项,但它无法保证安装会成功。它也不会尝试验证 Kickstart 文件的 %pre、%post 和 %packages 部分。
    
    root加密密码生成
    python -c 'import crypt; print(crypt.crypt("密码"))'
    

    PXE+kistart部署批量安装系统

    第一个里程:环境准备,基础优化
    systemctl stop firewalld.service
    setenforce 0
    wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
    wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
    yum makecache
    
    第二个里程:安装DHCP服务并配置DHCP配置文件
    yum -y install dhcp
    [root@kickstart /]# cat /etc/dhcp/dhcpd.conf 
    
    # DHCP Server Configuration file.
    # see /usr/share/doc/dhcp*/dhcpd.conf.example
    # see dhcpd.conf(5) man page
    #
    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.202;
    filename "/pxelinux.0";
    }
    
    第三个里程:启动DHCP服务,通过抓包工具查看DHCP获取过程
    启动服务
    systemctl start dhcpd
    查看服务日志
    tail -F /var/log/messages
    安装linux下的抓包工具
    yum -y install wireshark
    tshark -ni 网卡名称
    
    第四个里程:安装http服务,并将光盘进行挂载
    yum -y install httpd
    mkdir -p /var/www/html/CentOS7
    mount /dev/cdrom /var/www/html/CentOS7
    
    第四个里程:安装TFTP服务,并启动
    yum -y install tftp-server
    systemctl start tftp.socket
    
    第五个里程:将光盘中的内容拷贝到TFPT根目录中
    查看tftp根目录在哪
    [root@kickstart /]# rpm -ql tftp-server 
    /var/lib/tftpboot
    cp /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
    
    第六个里程:安装syslinux,并将pexlinu.0配置文件复制到tftp根目中
    yum -y install syslinux
    cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
    
    第七个里程:编辑default文件
    [root@kickstart /]# cat /var/lib/tftpboot/pxelinux.cfg/default 
    default ks
    prompt 0
    label ks
      kernel vmlinuz
      append initrd=initrd.img ks=http://172.16.1.202/ks_config/CentOS7-ks.cfg net.ifnames=0 biosdevname=0 ksdevice=eth1
    
    第八个里程:编辑ks文件
    mkdir -p /var/www/html/kc_config
    [root@kickstart /]# cat  /var/www/html/ks_config/CentOS7-ks.cfg 
    # Kickstart Configurator for CentOS 7 by yao zhang
    #命令段
    install
    url --url="http://172.16.1.202/CentOS7/"
    text
    lang en_US.UTF-8
    keyboard us
    zerombr
    bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"
    #配置静态IP地址
    
    network  --bootproto=static --device=eth0 --gateway=10.0.0.254 --ip=10.0.0.203 --n
    ameserver=223.5.5.5 --netmask=255.255.255.0 --activatenetwork  --bootproto=static --device=eth1 --ip=172.16.1.203 --netmask=255.255.255.
    0 --activatenetwork  --hostname=Cobbler
    
    #配置动态IP地址
    #network --bootproto=dhcp --device=eth1 --onboot=yes --noipv6 --hostname=CentOS7
    timezone --utc Asia/Shanghai
    authconfig --enableshadow --passalgo=sha512
    #设置密码,密文方式,生成密文方式:python -c 'import crypt; print(crypt.crypt("密码"))'
    
    rootpw  --iscrypted $6$qs/lWQujVOmfz0L.$p6CfsyidQc.frLTXIIB412HNKhgriwjyz12y5HBufZ
    qfa.ior8OrUpTeuAO.UfjhgxkZAnZMMkT.pVcGmTg6r.clearpart --all --initlabel
    #开始发区
    part /boot --fstype xfs --size 1024
    part swap --size 1024
    part / --fstype xfs --size 1 --grow
    firstboot --disable
    selinux --disabled
    firewall --disabled
    logging --level=info
    reboot
    
    #包组段:以%packages开头,以%end结束
    %packages
    @^minimal
    @compat-libraries
    @debugging
    @development
    tree
    nmap
    sysstat
    lrzsz
    dos2unix
    telnet 
    wget 
    vim 
    bash-completion
    %end
    
    #脚本段:以%post开头,以%end结束,在安装完系统之后执行的相关Linux命令、脚本
    #       以%pre开头,以%end结束,在安装完系统之前执行的相关Linux命令、脚本
    %post
    systemctl disable postfix.service
    %end
    
    第九个里程:正式开始自动安装系统
    ps:系统内存不能小于2G,否则会报硬盘空间不足
    

    kickstart常见问题1

    首先排除最简单故障原因:selinux是否关闭,防火墙是否关闭
    上面的错误是因为pxelinux.0这个小系统的配置文件(default)不存在,或者文件名不对
    

    kickstart常见问题2

    上面报错是在TFTP服务的根目录找不到启动文件pxelinux.0
    
  • 相关阅读:
    Python语言基础03-分支和循环结构
    Python语言基础01-初识Python
    李宏毅深度学习笔记08---Bert、ELMO、GPT
    李宏毅深度学习笔记07---Transformer
    李宏毅深度学习笔记06---word embedding(词嵌入也称词向量)
    李宏毅深度学习笔记05---RNN 循环神经网络02
    李宏毅深度学习笔记04---RNN 循环神经网络01
    李宏毅深度学习笔记03---CNN 卷积神经网络
    李宏毅深度学习笔记02---深度学习的发展历程、3大研究步骤、
    李宏毅深度学习笔记---课程介绍
  • 原文地址:https://www.cnblogs.com/yjiu1990/p/10668915.html
Copyright © 2011-2022 走看看