环境准备

软件安装

本文通过YUM 方式安装各应用软件。yum install -y epel-release #安装扩展源

yum install -y nginx #安装nginx(如果采用http方式提供安装源)

yum install -y vsftpd #安装FTP(如果采用FTP方式提供安装源,二者任选)

yum install -y tftp tfpt-server #安装TFTP(无论以上哪种方式,这个是**必需**的。

yum install -y xinetd

yum install -y syslinux #安装Linux引导系统(必须,用于客户机引导启动)

yum install -y dhcp #安装DHCP,无人值守下,必须。用于给客户机自动分配IP

yum install -y system-config-kickstart # 安装kickstart (可选,这个需要图形界面支持)

yum groupinstall -y "X Window System" "GNOME Desktop" #安装桌面环境(主要用来配合kickstart,可选)

#安装VNC远程环境(用于桌面环境连接,因为我的环境是搭建在远程服务器上,故此安装此服务)

yum install -y tigervnc tigervnc-server

软件配置

挂载安装镜像

1、首先把安装光盘内的所有文件放置一个所有用户可访问目录,我这里放置到了/var/ftp/pub/(VsFTP的默认目录)下面。

既可以直接挂载到这个目录下,也可把光盘下所有文件复制到这里。mkdir -p /var/ftp/pub/dvd #创建安装镜像挂载目录

mount /dev/sr0 /var/ftp/pub/dvd #挂载光盘镜像到指定目录,/dev/sr0 是我这里的虚拟机的光盘镜像。

配置Nginx

1、Nginx 基本不用修改,只把网站目录指向光盘挂载目录,然后打开目录浏览权限。vi /etc/nginx/nginx.conf

# 在默认配置文件中找到 server,修改root

#root /usr/share/nginx/html; #更改为

root /var/ftp/pub/dvd/ #42行

# 在location / {} 项,在中间添加一句 `autoindex on;`

location / { #47行

autoindex on; # 在没有网站主页的情况下,显示网站目录,这里显示的是光盘的目录。

}

FTP和HTTP二选一,哪个配置好了都能用。

2、启动Nginxsystemctl start nginx # 启动nginx

systemctl enable nginx # 添加到自启动

配置VsFTPd

1、因为已经把安装文件挂载到FTP默认目录下了,VsFTP完全不用修改,直接使用默认设置就可以了,这个时候就可以使用匿名账号登录了。

2、启动vsftpdsystemctl start vsftpd

systemctl enable vsftpd

FTP和HTTP二选一,哪个配置好了都能用。

配置TFTP服务

TFTP是一个传输文件的简单协议,它基于UDP协议而实现,但是我们也不能确定有些TFTP协议是基于其它传输协议完成的。此协议设计的时候是进行小文件传输的。因此它不具备通常的FTP的许多功能,它只能从文件服务器上获得或写入文件,不能列出目录,不进行认证,它传输8位数据。

我们这里用TFTP传输Linux的无人值守安装配置文件,和Linux启动必须的启动文件syslinux

1、修改TFTP的配置文件。主要是在配置文件中打开TFTP功能,(并修改根目录)vi /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

}

2、启动TFTP,老版本需要启动 xinetd 这个守护程序,新版本直接启动TFTP就行了。systemctl start tftpd

systemctl enable tftpd

配置PXE启动文件

syslinux是一个功能强大的引导加载程序,而且兼容各种介质。它的目的是简化首次安装Linux的时间,并建立修护或其它特殊用途的启动盘。它的安装很简单,一旦安装syslinux好之后,sysLinux启动盘就可以引导各种基于DOS的工具,以及MS-DOS/Windows或者任何其它操作系统。不仅支持采用BIOS结构的主板,而且从6.0版也开始支持采用EFI结构的新型主板。

1、把我们刚才安装 syslinux里面的文件复制到TFTP目录下,用于引导客户端启动# 创建pxelinux.cfg启动菜单文件夹

mkdir -p /var/lib/tftpboot/pxelinux.cfg

# 把pxelinux复制到TFTP的根目录

cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

# 安装光盘中的isolinux.cfg配置文件复制到启动菜单文件下,并命名为defautl,以便默认安装菜单。

cp /var/ftp/pub/dvd/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default

# 把安装光盘中isolinux文件中的所有文件复制到TFTP根目录。

cp -a /var/ftp/pub/dvd/isolinux/* /var/lib/tftpboot/

cp /var/ftp/pub/dvd/images/pxeboot/* /var/lib/tftpboot

cp -a /usr/share/syslinux/{menu.c32,vesamenu.c32} /var/lib/tftpboot

#修改文件权限

chmod 644 /var/lib/tftpboot/pxelinux.cfg/default

修改/var/lib/tftpboot/pxelinux.cfg/default文件 的61-71行,如下(这里是系统安装的默认选择菜单):vi /var/lib/tftpboot/pxelinux.cfg/default

label linux

menu label ^Install CentOS 7

menu default

kernel vmlinuz

# 这一行是系统安装源。

append initrd=initrd.img repo=http://172.17.0.238/dvd ks=http://172.17.0.238/ks.cfg

label check

menu label Test this ^media & install CentOS 7

kernel vmlinuz

append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 rd.live.check quiet

配置DHCP服务

DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)通常被应用在大型的局域网络环境中,主要作用是集中的管理、分配IP地址,使网络环境中的主机动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。

1、这里我们给客户端分配IP并配置使其网络启动后下载指定文件(指向下一跳主机)。subnet 172.17.1.0 netmask 255.255.255.0 { # 配置给客户端分配的IP段

range 172.17.1.35 172.17.1.45; # 指定IP地址池

option domain-name-servers 172.17.1.12; # 指定DNS服务器

option routers 172.17.1.12; # 指定网关(路由出口)

default-lease-time 600; # 给客户机分配IP的默认时长

max-lease-time 7200; # 给客户机分配IP的最大时长

next-server 172.17.1.12; # 网络的下一跳路由(这里指向,我们的服务器)

filename "pxelinux.0"; # 在下一跳路由要访问的文件,这里是pxelinux的启动菜单文件

}

2、启动DHCP服务systemctl start dhcpd

systemctl enable dhcpd

使用kickstart配置安装选项(可选)

1、图形配置,请参考下方文章引用

2、最终生成的文件#platform=x86, AMD64, or Intel EM64T

#version=DEVEL

# Install OS instead of upgrade(安装或升级)

install

# Keyboard layouts(键盘方案)

keyboard 'us'

# Root password(用户密码)

rootpw --iscrypted $1$1oNf8Vo9$evw1Q2hY2qLIDQaeemys31

# Use network installation(采用网络安装及安装路径)

url --url="http://172.17.0.238/dvd"

# System language(安装语言)

lang en_US

# Firewall configuration(防火墙配置)

firewall --disabled

# System authorization information(用户密码加密方式)

auth --useshadow --passalgo=sha512

# Use text mode install(安装模式,图形或文本)

text

# SELinux configuration(selinux 配置)

selinux --disabled

# Do not configure the X Window System(是否安装图形界面)

skipx

# Reboot after installation(安装完成后执行重启)

reboot

# System timezone(时区)

timezone Asia/Shanghai

# System bootloader configuration(引导分区及方式)

bootloader --location=mbr

# Clear the Master Boot Record(清除原有引导分区)

zerombr

# Partition clearing information(清除分区)

clearpart --all --initlabel

# Disk partitioning information(重新分区,lvm方式,200G硬盘)

part pv.154 --fstype="lvmpv" --ondisk=sda --size=204239

part /boot --fstype="xfs" --ondisk=sda --size=500

volgroup centos --pesize=4096 pv.154

logvol / --fstype="xfs" --size=144964 --name=root --vgname=centos

logvol swap --fstype="swap" --size=8064 --name=swap --vgname=centos

logvol /home --fstype="xfs" --size=51200 --name=home --vgname=centos

##安装完成后执行,这里添加了一个修改IP的脚本。

%post

#!/bin/bash

cat >>/root/n<

#!/bin/sh

################

##获取网卡名称##

################

## 获取当前系统网卡ID号,生成相应路径并备份原有配置。

iphard=\$(ip a | grep en |grep -v lo |awk -F ": " '{print \$2}')

echo \$iphard

ippath=/etc/sysconfig/network-scripts/ifcfg-\$iphard

echo \$ippath

\cp -a \$ippath \$ippath.bak

# 等待输入新的IP最后一段,并生成网卡配置文件

read -t 30 -p "Please input IP " -n 15 ipaddr

echo -e "\n"

echo \$ipaddr

cat > \$ippath << EOF

TYPE=Ethernet

BOOTPROTO=static

DEFROUTE=yes

PEERDNS=yes

PEERROUTES=yes

IPV4_FAILURE_FATAL=no

NAME=\$iphard

DEVICE=\$iphard

ONBOOT=yes

IPADDR=172.17.0.\$ipaddr

NETMASK=255.255.255.0

GATEWAY=172.17.0.254

DNS1=202.106.0.20

DNS2=202.106.196.115

EOF

# 显示生成的网卡配置文件,并最终确认。

cat \$ippath

read -t 60 -p "Please check the IP, and input y or n " istrue

case \$istrue in

[yY][eE][sS]|[yY])

echo "Your selected is yes"

cat /etc/sysconfig/network-scripts/ifcfg-\$iphard

systemctl restart network

#service network restart

rm -rf ~/n

ls

;;

[nN][oO]|[nN])

echo "Your selected is no"

;;

*)

echo "Your slected is other"

;;

esac

bof

# 修改新生成的文件可执行权限

chmod +x /root/n

%end

# 需要安装的软件,这里选择了mini安装。

%packages

@^minimal

%end

新建虚拟机测试

关闭firewall selinux,重启一下。systemctl stop firewalld

setenforce 0

sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

最好重启一下所有服务。systemctl restart httpd xinetd dhcpd

新建个虚拟机,测试一下,安装正常。

文章引用

无人值守安装linux7,CentOS7网络无人值守安装相关推荐

  1. Linux 自动化部署安装 《PXE网络无人值守安装 》

    网络无人值守安装 网络无人值守安装 网络无人值守安装的作用 网络无人值守安装的流程简介 DHCP的部署 dhcp简介 配置 DHCP 配置 TFTP 部署Kickstart 文件 测试: 网络无人值守 ...

  2. CentOS7网络配置,安装jdk,tomcat和mysql全过程

    CentOS7网络配置,安装jdk,tomcat和mysql全过程 1.CentOS7网络配置 安装CentOS7要在VMware虚拟机上进行,设置密码后登陆进来,可以看见右下角有下面几个图标,右击网 ...

  3. centos losf 安装_Linux Centos7部署环境安装-CentOS

    Linux Centos7部署环境安装-CentOS Centos7部署环境安装及Linux常用命令 centos系统下各文件夹的作用 centos7修改系统默认语言 centos7安装rz/sz命令 ...

  4. linux下yum安装pgsql,CentOS7使用yum安装PostgreSQL和PostGIS的方法

    1.更新yum源 CentOS7默认yum源的PostgreSQL版本过低,不适合在本版本上使用.在https://yum.postgresql.org/repopackages.php上找到适合Ce ...

  5. centos7二进制安装php,Centos7下编译安装配置Nginx+PHP+MySql环境

    序言 这次玩次狠得.除了编译器使用yum安装,其他全部手动编译.哼~ 看似就Nginx.PHP.MySql三个东东,但是它们太尼玛依赖别人了. 没办法,想用它们就得老老实实给它们提供想要的东西. 首先 ...

  6. linux centos7安装ngix,centos7 环境下安装nginx--Linux

    本文将要为您介绍的是centos7 环境下安装nginx--Linux,具体完成步骤:一.安装前需要的编译环境准备 1.安装make yum install -y gcc automake autoc ...

  7. centos7 yun安装mysql,CentOS7 yum方式安装MySQL5.7

    MySQL 完整的初始密码规则可以通过如下命令查看: mysql> SHOW VARIABLES LIKE 'validate_password%'; +-------------------- ...

  8. DNF安装MySQL,CentOS7使用dnf安装mysql的方法

    本文介绍了CentOS7使用dnf安装mysql的方法,分享给大家,具体如下: 1.安装mysql的yum仓库 执行以下命令: 代码如下: yum localinstall 2.安装mysql dnf ...

  9. 无人值守安装linux7,PXE下无人值守配置阵列及安装CentOS7

    PXE下无人值守配置阵列及安装CentOS7 猫先生 • 2019 年 09 月 24 日 客户采购200台联想服务器,现在需要安装系统, 一台一台的用优盘安装,显然不是最佳办法,PXE安装肯定是首选 ...

最新文章

  1. wxpython组件SplitterWindow 的简单使用
  2. 查表法生成流水号的示例.sql
  3. python中布尔型的值_在python中对于bool布尔值的取反操作
  4. 使用Arquillian,Docker和Selenium使Web UI测试再次变得出色(第1部分)
  5. 钱多多被立案侦查,曾多次因借款合同纠纷被起诉
  6. 问你个问题:50万存款算多吗?
  7. C#导入导出Excele数据
  8. c#中的ref、out、params参数
  9. 前端克隆数据 --JS 深浅拷贝
  10. 阿里云云计算ACP学习(七)---弹性伸缩服务AS
  11. 后量子密码(PQC)决赛入围算法和候选算法
  12. SQL Server - 数据库(创建,修改管理-删除)-T-SQL 语句
  13. 存在正文时不允许未命名的原型参数_用Swift开发macOS程序, 六、原型、格式与开发说明...
  14. spring中使用Aspectj进行切面编程
  15. matplotlib.pyplot.imshow opencv.imread 图片显示 图片读取
  16. 模拟赛20200228(yyq)【右链+dfs序,子树管辖,聚集水流问题】
  17. Java编写的画图板,功能非常齐全,完整代码 附详细设计报告
  18. 一个人最顶级的才华,是会填坑
  19. 复现 MonoEF:Monocular 3D Object Detection: An Extrinsic Parameter Free Approach
  20. 从5G到智能革命,这篇文章值得一看

热门文章

  1. 九龙证券|“股神”也做短线?巴菲特减仓逾八成台积电
  2. 【数据结构】各种数据结构的特点介绍
  3. mysql 读提交,MySQL如何实现ACID ?
  4. python 最准确的图片转文字软件,图片转文字软件哪个好?5款好用的图片转文字软件推荐...
  5. Parser-Free Virtual Try-on via Distilling Appearance Flows - 基于外观流提取的免解析器虚拟试穿
  6. 爬虫利器 xpath 实践案例
  7. CentOS SRS直播服务器的搭建
  8. 华为 android 5.0系统下载地址,华为emui5.1
  9. 迪亚-土地利用现状统计
  10. jQuery基础知识整理