yum install dnsmasq
mv /etc/dnsmasq.conf /etc/dnsmasq.conf.backup
# vim /etc/dnsmasq.conf
interface=eth0,lo
#bind-interfaces
domain=centos7.lan
# DHCP range-leases
dhcp-range= eth0,10.10.0.20,10.10.0.30,255.255.255.0,1h
# PXE
dhcp-boot=pxelinux.,pxeserver,192.168.1.20
# Gateway
dhcp-option=,10.10.0.240
# DNS
dhcp-option=,10.10.0.240,114.114.114.114
server=114.114.114.114
# Broadcast Address
dhcp-option=,10.0.0.255
# NTP Server
dhcp-option=,0.0.0.0 pxe-prompt="Press F8 for menu.",60
pxe-service=x86PC,"Install CentOS 7 from network server 10.10.0.240", pxelinux
enable-tftp
tftp-root=/var/lib/tftpboot
interface – 服务器需要监听并提供服务的网络接口。
bind-interfaces – 取消注释来绑定到该网络接口
domain – 替换为你的域名。
dhcp-range – 替换为你的网络掩码定义的网段。
dhcp-boot – 替换该IP地址为你的网络接口IP地址。
dhcp-option=,192.168.1.1 – 替换该IP地址为你的网段的网关。
dhcp-option=,92.168.1.1 – 替换该IP地址为你的DNS服务器IP——可以定义多个IP地址。h
server=8.8.4.4 – 这里放置DNS转发服务器IP地址。
dhcp-option=,10.0.0.255 – 替换该IP地址为网络广播地址——可选项。
dhcp-option=,0.0.0.0 – 这里放置网络时钟服务器——可选项(0.0..0地址表示参考自身)。
pxe-prompt – 保持默认——按F8进入菜单,60秒等待时间。
pxe=service – 使用x86PC作为32为/64位架构,并在字符串引述中输入菜单描述提示。其它类型值可以是:PC98,IAEFI,Alpha,Arcx86,IntelLeanClient,IA32EFI,BCEFI,XscaleEFI和X86-64EFI。
enable-tftp – 启用内建TFTP服务器。
tftp-root – 使用/var/lib/tftpboot——所有网络启动文件所在位置。 yum install syslinux
yum install tftp-server
cp -r /usr/share/syslinux/* /var/lib/tftpboot
mkdir /var/lib/tftpboot/pxelinux.cfg
touch /var/lib/tftpboot/pxelinux.cfg/default
Vim /var/lib/tftpboot/pxelinux.cfg/default
default menu.c32
prompt
timeout
ONTIMEOUT local menu title ########## PXE Boot Menu ########## label
menu label ^)InstallCentOS7 x64 withLocalRepo
kernel centos7/vmlinuz
append initrd=centos7/initrd.img method=ftp://10.10.0.240/pub devfs=nomount label
menu label ^)InstallCentOS7 x64 with http://mirror.centos.org Repo
kernel centos7/vmlinuz
append initrd=centos7/initrd.img method=http://mirror.centos.org/centos//os/x86_64/ devfs=nomount ip=dhcp label
menu label ^)InstallCentOS7 x64 withLocalRepousing VNC
kernel centos7/vmlinuz
append initrd=centos7/initrd.img method=ftp://10.10.0.240/pub devfs=nomount inst.vnc inst.vncpassword=password label
menu label ^)Bootfromlocal drive mount /dev/sr0 /mnt
# ls /mnt/
mkdir /var/lib/tftpboot/centos7
cp /mnt/images/pxeboot/vmlinuz /var/lib/tftpboot/centos7
cp /mnt/images/pxeboot/initrd.img /var/lib/tftpboot/centos7
yum install vsftpd
cp -r /mnt/* /var/ftp/pub/
chmod -R /var/ftp/pub
systemctl start dnsmasq
systemctl status dnsmasq
systemctl start vsftpd
systemctl status vsftpd
systemctl enable dnsmasq
systemctl enable vsftpd
# netstat -tulpn
# firewall-cmd --add-service=ftp --permanent ## Port
# firewall-cmd --add-service=dns --permanent ## Port
# firewall-cmd --add-service=dhcp --permanent ## Port
# firewall-cmd --add-port=/udp --permanent ## Port for TFTP
# firewall-cmd --add-port=/udp --permanent ## Port for ProxyDHCP
# firewall-cmd --reload ## Apply rules tailf /var/log/messages
# umount /dev/sr0
# PXE安装脚本
# 安装前配置好centos和epel yum源
# 网卡ip和localip一致
localip="10.10.0.240"
eth_name='eth0' dnsmasq_install() {
yum -y install dnsmasq
mv /etc/dnsmasq.conf /etc/dnsmasq.conf.backup
dnsmasq_conf='interface='$eth_name'
#bind-interfaces
domain=centos7.lan
# DHCP range-leases
dhcp-range= '$eth_name',10.10.0.100,10.10.0.110,255.255.255.0,1h
# PXE
dhcp-boot=pxelinux.0,pxeserver,'$localip'
# Gateway
dhcp-option=3,'$localip'
# DNS
dhcp-option=6,'$localip',114.114.114.114
server=114.114.114.114
# Broadcast Address
dhcp-option=28,10.10.0.255
# NTP Server
dhcp-option=42,0.0.0.0 pxe-prompt="Press F8 for menu.",60
pxe-service=x86PC,"Install CentOS 7 from network server '$localip'", pxelinux
enable-tftp
tftp-root=/var/lib/tftpboot'
echo "$dnsmasq_conf" > /etc/dnsmasq.conf
}
tftp_pxe_install() {
yum -y install syslinux
yum -y install tftp-server
cp -r /usr/share/syslinux/* /var/lib/tftpboot/
if [[ ! -d /var/lib/tftpboot/pxelinux.cfg ]]
then
mkdir /var/lib/tftpboot/pxelinux.cfg
touch /var/lib/tftpboot/pxelinux.cfg/default
default_conf='default menu.c32
prompt 0
timeout 300
ONTIMEOUT local menu title ########## PXE Boot Menu ########## label 1
menu label ^1)InstallCentOS7 x64 withLocalRepo
kernel centos7/vmlinuz
append initrd=centos7/initrd.img method=ftp://'$localip'/pub devfs=nomount label 2
menu label ^2)InstallCentOS7 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)InstallCentOS7 x64 withLocalRepousing VNC
kernel centos7/vmlinuz
append initrd=centos7/initrd.img method=ftp://'$localip'/pub devfs=nomount inst.vnc inst.vncpassword=password label 4
menu label ^4)Bootfromlocal drive'
echo "$default_conf" > /var/lib/tftpboot/pxelinux.cfg/default
fi
}
mount_cd() {
mount|grep '^/dev/sr0'
if [[ $? -eq ]]
then
echo '光盘已挂载。'
else
mount /dev/sr0 /mnt/ &> /dev/null
if [[ $? -ne ]]
then
count=$(( $count + ))
if [[ $count -eq ]];then
echo '超时退出';
exit ;
fi
echo "sr0没有光盘,挂载失败,将在5秒后重试"
sleep
mount_cd
else
echo '光盘挂载成功。';
fi
fi
}
confing_pxeserver() {
if [[ ! -d /var/lib/tftpboot/centos7 ]];then
mkdir /var/lib/tftpboot/centos7
cp /mnt/images/pxeboot/vmlinuz /var/lib/tftpboot/centos7/
cp /mnt/images/pxeboot/initrd.img /var/lib/tftpboot/centos7/
fi
yum -y install vsftpd
if [[ `ls -A /var/ftp/pub/` == "" ]];then
echo 'copy光盘文件到/var/ftp/pub/ ...';
cp -r /mnt/* /var/ftp/pub/
chmod -R /var/ftp/pub
fi
}
start_service() {
systemctl start dnsmasq
systemctl status dnsmasq
systemctl start vsftpd
systemctl status vsftpd
systemctl enable dnsmasq
systemctl enable vsftpd
} dnsmasq_install
tftp_pxe_install
mount_cd
confing_pxeserver
start_service

Centos7 pxe的更多相关文章

  1. CentOS7 PXE安装批量安装操作系统

    1.安装相关软件 yum -y install tftp-server httpd dhcp syslinux 2.配置DHCP cp /usr/share/doc/dhcp-4.2.5/dhcpd. ...

  2. 自动化安装操作系统(Centos7+PXE+Cobbler+kickstart)

    一.简介 PXE称作是一种引导方式而不是安装方式似乎更加准确,PXE(Pre-boot Execution Environment)是由Intel设计的协议,它可以使计算机通过网络启动,但是有一个前提 ...

  3. centos7 PXE自动安装环境搭建

    原理: 要进行自动安装的主机A,加电启动时以网卡为第一启动设备 1.启动时会向网络广播,找到dhcp服务器B请求分配IP地址信息,服务器B除了给其分配基本的IP信息(ip.netmask.getewa ...

  4. Centos7 PXE Server Install Script

    #安装前配置好centos和epel yum源 #网卡ip和localip一致 localip="192.168.88.200" eth_name='eth0' dnsmasq_i ...

  5. centos7 pxe minimal install

    # 01-78-2b-cb-69-10-f3 default menu.c32 prompt 0 timeout 50 label CentOS 7 MENU DEFAULT MENU LABEL C ...

  6. 一键部署pxe环境

    系统:Centos6.5 环境:VMware Workstation12 #!/bin/bash # Please prepare CentOS ISO image first # root pass ...

  7. (转)Cobbler无人值守批量安装Linux系统

    本文目录: 1.1 pxe安装系统 1.2 cobbler基本介绍 1.3 安装和配置cobbler 1.3.1 安装cobbler 1.3.2 配置dhcp和tftp 1.4 cobbler从本地光 ...

  8. PXE+Kickstart 全自动安装部署CentOS7.4

    一.简介 1.什么是PXE PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过 ...

  9. pxe自动化批量安装系统(Centos7)

    PXE:preboot execute environment 环境实现:主服务器ip:10.0.10.1 1 tfpt trivial简单文件共享服务,基于udp协议工作: 加载系统安装程序: 69 ...

随机推荐

  1. 12、testng.xml指定运行测试包、测试类、测试方法

    目录如下: TestFixture.java 代码如下: package com.testng.cn; import org.testng.annotations.*; public class Te ...

  2. 如何从ST官网下载STM32标准库

    Frm:https://blog.csdn.net/k1ang/article/details/79645044

  3. error C3867: “std::basic_string<char,std::char_traits<char>,std::allocator<char>>::c_str”: 函数调用缺少参数列表;请使用“&std::basic_string<char,std::char_traits<char>,std::allocator<char>>::c_str”创建指向成员的指针

    这个问题找了很多没有找到满意的答案.仔细看了一下,是使用了c_str的问题. 我直接把使用string.c_str的地方使用char*代替即解决问题.

  4. 记一次批量修改SQLServer表数据

    前提: 1.数据有上百万条,分成10几张excel表,从数据库中导出,由业务部门修改: 2.数据没什么规律: 3.和数据库DB商量后决定先把从excel导进数据库中,再通过关联查询修改数据 将 Exc ...

  5. .Net中Task使用来提高代码执行效率

    技术不断更新迭代,更高效的执行效率越来越被重视,所以对Task的使用进行了简单使用做了整理与大家分享. .Net 中有了Task后使多线程编程更简单使用和操作,下面粘上代码进行简单说明: /// &l ...

  6. linux 挂载iso文件,挂载ntfs文件系统

    映像档不可录就挂载使用.通过loop命令来执行 好吧.跟同事要了一个win10系统盘.插入,竟然是灰色的. ,一点击,提示无法挂载,仔细看了一下下面的内容,原来不支持ntfs格式,好吧,win10系统 ...

  7. 固定Linux虚拟IP地址

    由于我的开发环境是在VMWare虚拟机里安装Centos,然后在host文件中设置拦截,这样就可以直接跳转虚拟机的CentOS,但是虚拟机的IP地址总是会变,就要随时修改host文件,很麻烦.决定虚拟 ...

  8. springBoot项目mybatis中加入缓存

    1:maven: <!-- https://mvnrepository.com/artifact/net.sf.ehcache/ehcache-core --> <dependenc ...

  9. JAVA 调用c++ 扩展 批评那些垃圾,

    //本人喜欢用命令行的方式,这样好理解原理 { 1 生成的要是X64 并且是release版本 不要预编译头的dll项目,就是创建的时是一个空dll项目 2 java 调用时要import com.m ...

  10. FreeMarker简单入门到使用

    FreeMarker freemarker是一个用java开发的模版引擎,百度百科: 常用的java模版还有快要被抛弃的Jsp(熟悉).Thymeleaf(了解).Velocity(不知) freem ...