Linux——pxe中ks脚本增强

1)DHCP服务器,为上面两个虚拟机指定固定IP地址比如:第一台服务器分配.101,第二台服务器分配.102地址默认租期2小小时

2)修改ks脚本

磁盘分区:不使用逻辑卷,使用普通分区(注意SATA硬盘是sda)

参照ks脚本中part /boot的写法

/boot分配1G空间

swap分配2G空间

/ 分配剩余所有空间

创建用户:客户机自动创建用户dbuser,密码设置为redhat123

3)预定义软件包

不带图形界面的Server

定义两台虚拟机分别有两个网卡一个net,一个仅主机

一、DHCP

cat /etc/dhcp/dhcpd.conf
#
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp-server/dhcpd.conf.example
#   see dhcpd.conf(5) man page
#
subnet 192.168.99.0 netmask 255.255.255.0 {
range 192.168.99.100 192.168.88.150;
option domain-name-servers 114.114.114.114;
option domain-name "example.com";
option routers 192.168.99.127;
option broadcast-address 192.168.99.255;
default-lease-time 3600;
max-lease-time 7200;
next-server 192.168.99.128;
filename "pxelinux.0";
 
host test1 {  
    hardware ethernet 00:50:56:2C:62:8B;  
    fixed-address 192.168.99.101; 
    server-name "test1.example.com"; 
  }  
  
  host test2 {  
    hardware ethernet 00:0C:29:FE:F2:7F;    
    fixed-address 192.168.99.102;
    server-name "test2.example.com";  
  } 
}

上部分

domain-name和之后要修改的配置,做一个匹配

假设所有客户机处于example.com这个领域

每个主机又有自己不同的主机名称

增加了DHCP默认租期,尽量让租用时间能覆盖PXE部署过程

下部分,对于每个客户机的配置

每个机器的MAC地址,提前收集

每个对应MAC的主机,匹配一个特定的IP地址

然后,每个主机,也有特定的主机名

二、TFTP

1)配置文件,没有变化,因为TFTP只是让客户能从指定目录,下载文件

本身没有更多个性化配置

2)tftp工作目录中的文件和特定配置

开机启动菜单,取消倒计时等待,设定超时时间

默认使用下面的linux这一段配置

menu部分

每个label是一个单独的菜单项,在开机启动菜单

kernel指定要使用的启动的内核

append部分指定内核参数......

有一个小改动:(不改也没问题,只是为了完全适应8以及后续版本系统的要求)

inst.ks=......(原本写ks=......也能识别加载ks文件)

=后面,写了http,接下来,用http提供软件仓库

default文件是只读,需要root用户操作,强制保存......

3)tftp工作目录中需要拷贝的文件不变

三、HTTP

原本使用apache

在/etc/http/conf/httpd.conf修改配置

默认目录是/var/www/html/

整个系统镜像内容,全部移到上面的这个目录

......

接下来,使用nginx做http的部分

1)安装软件包

yum install nginx -y

2 )修改配置文件

vi /etc/nginx/nginx.conf

监听端口,确保是80

root工作目录,使用默认目录

location做访问控制,只允许客户机所在网段访问

nginx自己自带的页面:index.html文件,404和50x的页面文件

现在把CentOS整个安装镜像的内容,拷贝到centos84目录

ks.cfg文件也拷贝到这里

3)启动启用http服务

四、ks脚本

修改原有的脚本,对将要安装的客户机,做一定程度的自定义配置

现在做其中一部分,还可以做更多......

repo指定http的路径

指定软件包

@^ 指定安装软件的套装

上面指定的,等效于自己图形化安装时指定的:Server

比Server GUI,少图形桌面,但是包含大部分需要用的必要软件包

比最小化安装,容量略大,但是软件包更全

还可以@ 后面跟要额外安装的软件包名称......

最后%end结束

如果有多个网卡需要在安装时候配置,可以写多条network

因为已经使用DHCP分配主机名,所以在ks里不单独指定主机名配置

安装介质的路径,也是http

上面,是客户机分区的配置

part条目,配置普通分区,如果要配置多个普通分区,按顺序写多条part

例子里用的是nvme硬盘,所以盘号是nvme0n1

如果是使用SATA盘,这盘号是sda

如果使用逻辑卷部署,但是又要保证/boot使用普通分区

先写part /boot的条目

之后的条目,先创建物理卷

part pv.编号

磁盘分区:不使用逻辑卷,使用普通分区(注意SATA硬盘是sda)

参照ks脚本中part /boot的写法

/boot分配1G空间

swap分配2G空间

/ 分配剩余所有空间

选项:--size=1,只给了1M,但是它要从1M起,后面跟着另一个选项

--grow,配合到一起,从1M容量起,自动分配剩余所有空间

volgroup建立卷组,并且,也没有指定容量,卷组占用pv所有空间

之后是创建每个逻辑卷lv,逻辑卷要指定容量

文件系统,上面例子使用了ext4,没使用xfs......

上面的分区配置方式

并不限定客户机磁盘总容量,可以根据磁盘容量自动适应上限

客户机的系统盘,只要留出足够空间即可

配置客户机系统内的用户

每创建一个用户,都写一行配置

再往后,可以指定安装后要执行的脚本或命令

写%post部分

会在系统软件包都装完,但是第一次重启前,执行

例子里

把自带的repo文件备份到其他位置,不使用

从服务器,下载一个repo文件

从服务器,又下载一个文件:hosts文件

下载文件,用的是wget,通过http下载

selinux更改模式

在初次安装时,关闭了防火墙服务(不关闭也可以,默认是放行ssh的)

在%post ...... %end

这段,可以写各种命令,也可以指定执行脚本......

最后,自动重启

5.额外准备的文件,客户机要从服务器下载的

1)hosts文件

这个文件直接会覆盖客户机的hosts

例子里,解析了服务器、两台客户机

cat hosts 
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1       localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.99.128 server8.example.com
192.168.99.101 test1.example.com
192.168.99.102 test2.example.com

2)repo文件

给客户机用,通过服务器,提供yum源

cat inter.repo 
[Appstream]
name=Appstream
baseurl=http://192.168.99.128/centos84/AppStreamenabled=1gpgcheck=0
[BaseOS]
name=local
baseurl=http://192.168.99.128/centos84/BaseOSenabled=1
gpgcheck=0

6.客户机安装后

1)有特定自己的IP地址,有自己的主机名

2)有hosts做基本名称解析

3)有网络yum源,指向服务器

相关推荐
群联云防护小杜6 分钟前
服务器被挂马怎么办?——解决服务器被挂马的方法和步骤
运维·服务器·网络协议·tcp/ip·安全·ddos
明志致远淡泊宁静12 分钟前
记录一次服务器redis被入侵
运维·服务器·redis
Jtti12 分钟前
Jtti:服务器总是自动重启怎么办?
运维·服务器
我是黄大仙13 分钟前
利用飞书多维表格自动发布版本
运维·服务器·数据库·飞书
7yewh21 分钟前
嵌入式硬件实战提升篇(一)-泰山派RK3566制作多功能小手机
linux·arm开发·驱动开发·嵌入式硬件·物联网·智能手机·硬件架构
YRr YRr1 小时前
ubuntu ros 解决建完图后 保存的地图非常小的问题
linux·运维·ubuntu
汤米粥1 小时前
怎么样绑定域名到AWS(亚马逊云)服务器
服务器·云计算·aws
脸ル粉嘟嘟1 小时前
常用命令之Linux&Oracle&Hive&Python
linux·hive·oracle
Wils0nEdwards1 小时前
Leetcode 整数转罗马数字
linux·python·leetcode