首页 > 其他分享 >编写kickstart脚本,执行时遇到的问题

编写kickstart脚本,执行时遇到的问题

时间:2024-03-08 18:44:46浏览次数:22  
标签:脚本 kickstart cfg echo yum dhcp 编写 pxe

KickStart脚本
#!/bin/bash

#declare var
yum_ins="yum -y install"
sys_res="systemctl restart"

#1.配置dhcp
dhcp_cfg() {
    #declare dhcp_var
    dhcp_path="/etc/dhcp"
    dhcp_conf=$dhcp_path/dhcpd.conf
    # 网段
    net_seg="192.168.152.0"
    # 子网掩码
    net_mask="255.255.255.0"
    #地址池
    ran="192.168.152.201 192.168.152.204"
    # 网关
    op_router="192.168.152.2"
    # tftp主机
    next_ser="192.168.152.200"

    $yum_ins dhcp
    #解决cp覆盖时强制询问
    rm -rf $dhcp_conf
    cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example $dhcp_conf
    #去除注释和空行
    sed -i "/^$/d;/^#/d" $dhcp_conf
    #将内容存入中转文件
    cat $dhcp_conf | awk 'NR<6{print $0}' >$dhcp_path/transfer
    #将中转内容转回并删除
    cat $dhcp_path/transfer >$dhcp_conf
    rm -rf $dhcp_path/transfer
    #配置dhcpd.conf文件
    cat >>$dhcp_conf <<EOF
subnet $net_seg netmask $net_mask {
range $ran;
option routers $op_router;
next-server $next_ser;
filename "pxelinux.0";
}
EOF
    #重启dhcp
    if $sys_res dhcpd &>/dev/null; then
        echo "dhcp启动完成"
    else
        echo "dhcp启动失败"
        exit 1
    fi

}

#2.配置tftp
tftp_cfg() {
    $yum_ins tftp-server xinetd lsof
    sed -i.bak '14s/yes/no/' /etc/xinetd.d/tftp
    $sys_res xinetd
    echo "配置tftp完成"
}

#3.配置syslinux
sys_kick() {

    #路径
    pxe_path="/var/lib/tftpboot"
    pxe_cfg="$pxe_path/pxelinux.cfg"
    pxe_def="$pxe_cfg/default"

    $yum_ins syslinux system-config-kickstart
    mkdir $pxe_cfg
    cp /usr/share/syslinux/pxelinux.0 $pxe_path
    cp /mnt/cdrom/images/pxeboot/* $pxe_path
    cp /mnt/cdrom/isolinux/isolinux.cfg $pxe_def
    sed -i '1s/vesamenu.c32/linux/' $pxe_def
    sed -i '64a\  append initrd=initrd.img inst.repo=ftp://192.168.152.200/pub inst.ks=ftp://192.168.152.200/ks.cfg' $pxe_def
    sed -i '64d' $pxe_def

    echo "配置syslinux完成"
}

#4.安装vsftpd
ins_ftp() {
    if $yum_ins vsftpd &>/dev/null; then
        if $sys_res vsftpd &>/dev/null; then
            echo "安装vsftpd完成"
        else
            echo "重启vsftpd失败"
            exit 1
        fi
    else
        echo "安装vsftp失败"
        exit 1
    fi
}

#5.准备执行Kickstart
use_kick() {
    mount /dev/sr0 /var/ftp/pub/
    echo "之前就将yum仓库命名为development",此处无需更改
    cat <<EOF >/etc/yum.repos.d/development.repo
[development]
name=origin
baseurl=file:///mnt/cdrom
enabled=1
gpgcheck=0
EOF
    yum clean all
    yum repolist
    echo "配置development yum仓库完成"
    #安装图形化
    $yum_ins xorg-x11-xauth
    #安装语言包
    yum -y groupinstall "fonts"
    echo "kickstart最后准备完成"
}

#执行Kickstart
echo "1.开始配置dhcp"
dhcp_cfg
echo "2.开始配置tftp"
tftp_cfg
echo "3.开始配置syslinux"
sys_kick
echo "4.安装vsftpd"
ins_ftp
echo "5.执行kickstart"
use_kick
echo "final: 开始kickstart"

echo "接下来需要重连xshell"
echo "通过system-config-kickstart命令进入配置图形化界面"

报错

  • 使用kickstart无人化安装时报错ERR anaconda.stdout: Kickstart file /run/install/ks.cfg is missing

    /var/lib/tftpboot/pxelinux.cfg/default中inst.ks=ftp://192.168.152.200/ks.cfg出错,ftp忘记写

  • kickstart 由于下载软件包信息失败,软件包选择被禁止

    yum仓库名称没有改为development

  • kickstart 在图形化安装界面停止

    在生成ks.cfg文件时进入进行更改,紧急关闭生成了swap交换文件,将交换文件删除

  • Entering emeryency mode. Exit the shell to continue

    /var/lib/tftpboot下文件有问题

    没有挂载sr0 mount /dev/sr0 /var/lib/tftpboot

  • dracut-initqueue-timeout

    没有挂载sr0 mount /dev/sr0 /var/lib/tftpboot

  • 命令行卡在"#/"

    内存不够

标签:脚本,kickstart,cfg,echo,yum,dhcp,编写,pxe
From: https://www.cnblogs.com/ramiro/p/18061637

相关文章

  • UI自动化测试使用场景及脚本录制
    经常有人会问,什么样的项目才适合进行UI自动化测试呢?UI自动化测试相当于模拟手工测试,通过程序去操作页面上的控件。而在实际测试过程中,经常会遇到无法找到控件,或者因控件定义变更而带来的维护成本等问题。哪些场景下适合UI自动化测试介入呢?产品比较稳定,不会有频繁的需求变更;需要......
  • python 脚本中 # -*- coding: utf-8 -*-的作用
     001、[root@pc1test1]#lstest01.pytest02.py[root@pc1test1]#cattest01.py#!/usr/bin/envpython#注释内容list1=["aa","bb","cc"]print(list1)[root@pc1test1]#cattest02.py#!/usr/bin/envpython#-*-coding:utf-8......
  • python脚本的开头该怎么写
     001、第一句通常为a、#!/usr/bin/envpythonb、#!/usr/bin/python首先以上两脚都是指定脚本语言的解释器,均表示用python解释器执行下面的脚本。a的写法比b的写法更加的健壮。因为b把解释器写死了,如果python的可执行程序不在/usr/bin/python中,那么程序就容易出错。而a的......
  • flock脚本
    importrequestsfrometh_accountimportAccountimportuuidimporttimedef获取钱包地址():account=Account.create()private_key=account.key.hex()address=account.addressprint("私钥:",private_key)print("地址:",add......
  • Jmeter —— 录制脚本
    1.第一步:添加http代理服务器,在测试计划--》添加--》非测试元件--》http代理服务器 2.第二步:添加线程组(这个线程组是用来放录制的脚本,不添加也可以,就直接放在代理服务器下)测试计划--》添加--》线程--》线程组(顺便讲一下线程组执行顺序:setUp--线程组--tearDown) 3.第三......
  • 清理挖矿程序的脚本
    systemctldisablemyservice.servicesystemctlstopmyservice.servicesystemctlstatusmyservice.servicerm-fr/usr/lib/systemd/system/myservice.servicerm-fr/root/.cfgrm-fr/usr/bin/mslogrm-fr/usr/bin/playersed-i/disown/d/var/spool/cron/root......
  • linux脚本:/bin/bash^M: bad interpreter: No such file or directory(/bin/sh^M).sh: no
    origin如图,运行一个脚本文件报错: 原因:在执行shell脚本时提示这样的错误主要是由于shell脚本文件是dos格式,即每一行结尾以\r\n来标识,而unix格式的文件行尾则以\n来标识解决方法,用dos2unixfilename命令,,直接把文件转换为unix格式 其他解决方法:(1)使用linux命令dos2unixfi......
  • 使用脚本配置ModelSim仿真
    最后修改日期:2024/03/061.问题使用ModelSim建立Project仿真的方法并不困难,但是经常提示类似于:Error:failtoopen...这样的错误。ModelSim经常找不到compile之后的模块,不知道为什么。此外,Project的方式反而会产生一堆乱七八糟的文件,这不便于管理。2.解决方法2.1.Mod......
  • 公网域名DNS解析、网站响应脚本
    1.原因因为需要梳理公网域名和DNS解析对应关系,因此制作此小脚本。2.前期准备在使用脚本前,确定已安装了requests模块和dnspython模块(在终端界面哦)pipinstallrequestsdnspython3.完整的请求代码fromurllib.parseimporturlparseimportcsvimportdns.resolverimportr......
  • linux shell 脚本中 避免文件已存在多次追加的情况
     001、为了避免脚本多次执行,生成结果多次追加,可以在追加语句的前面增加清空语句避免多次追加[root@pc1test1]#lsa.sh[root@pc1test1]#cata.sh##测试脚本#!/bin/bash>result.txt##或者使用rm-fresult.txt##在追加语句的前边增加清空语句se......