无人值守安装linux7,CentOS7网络无人值守安装

环境准备

软件安装

本文通过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; # 在没有网站主页的情况下,显示网站目录,这里显示的是光盘的目录。

}

3e2768be86387bf8fbe3df95408bb1df.png

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

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

文章引用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值