• 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

    1. cat /etc/dhcp/dhcpd.conf
    2. #
    3. # DHCP Server Configuration file.
    4. # see /usr/share/doc/dhcp-server/dhcpd.conf.example
    5. # see dhcpd.conf(5) man page
    6. #
    7. subnet 192.168.99.0 netmask 255.255.255.0 {
    8. range 192.168.99.100 192.168.88.150;
    9. option domain-name-servers 114.114.114.114;
    10. option domain-name "example.com";
    11. option routers 192.168.99.127;
    12. option broadcast-address 192.168.99.255;
    13. default-lease-time 3600;
    14. max-lease-time 7200;
    15. next-server 192.168.99.128;
    16. filename "pxelinux.0";
    17. host test1 {
    18. hardware ethernet 00:50:56:2C:62:8B;
    19. fixed-address 192.168.99.101;
    20. server-name "test1.example.com";
    21. }
    22. host test2 {
    23. hardware ethernet 00:0C:29:FE:F2:7F;
    24. fixed-address 192.168.99.102;
    25. server-name "test2.example.com";
    26. }
    27. }

    上部分

    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

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

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

    2)repo文件

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

    1. cat inter.repo
    2. [Appstream]
    3. name=Appstream
    4. baseurl=http://192.168.99.128/centos84/AppStreamenabled=1gpgcheck=0
    5. [BaseOS]
    6. name=local
    7. baseurl=http://192.168.99.128/centos84/BaseOSenabled=1
    8. gpgcheck=0

    6.客户机安装后

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

    2)有hosts做基本名称解析

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

  • 相关阅读:
    【小程序】uni-app 页面的传参和接参
    mac安装python虚拟环境
    php常用算法
    使用jupyter运行sympy库
    python在cmd中运行.exe文件时报错:不是内部或外部命令,也不是可运行的程序或批处理文件。的解决办法
    Codeforces Round #787 (Div. 3) F. Vlad and Unfinished Business
    【Hadoop学习笔记】(三)——Sqoop
    Arch Linux 2208设置静态IP地址
    vscode插件开发(二)插件结构
    Rainbond ubuntu20.04单主机部署及简单应用构建
  • 原文地址:https://blog.csdn.net/Xinan_____/article/details/139463676