Kickstart文件的编写

Posted rtoax

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kickstart文件的编写相关的知识,希望对你有一定的参考价值。

Kickstart文件的编写

荣涛
2022年1月27日

文档修改日志

日期修改内容修改人备注
2022年1月27日创建荣涛

Kickstart简介

Kickstart提供了一种可以部分或完全自动化安装OS过程的方法。由红帽创建。

Kickstart文件包含部分或全部OS安装选项。例如,时区、应该如何分区驱动器,或者应该安装哪些包。提供一个准备好的Kickstart文件就可以在不需要任何用户干预的情况下进行安装。这在同时在大量系统上部署OS时特别有用。

Kickstart可以使用本地DVD,本地硬盘,或者NFS,FTP,HTTP(s)。

自动化安装流程

  1. 创建Kickstart文件;
  2. 使Kickstart文件可用;
  3. 创建可启动介质/安装源或PXE;
  4. 使安装源可用;
  5. 使用ks文件和启动介质安装;

创建Kickstart文件

Chapter 4, Creating Kickstart files.

可以使用下面的方法获取ks文件:

  • 使用在线配置工具;
  • 拷贝ks文件;
  • 手动编写ks文件;
  • 从低版本转换;
  • 虚拟化环境,创建自定义OS镜像,是哦那个Image Builder。

在线生成kickstart文件

访问红帽Kickstart Generator

手动编写Kickstart文件

依照红帽Kickstart Generator作为目录结构,并添加一些补充。

1. 基本配置

1.1. 默认语言

# 美国英文
lang en_US
# 简体中文
lang zh_CN
lang zh_CN.UTF-8

1.2. 键盘

keyboard us

1.3. 时区

--isUtc表示是否使用UTC

timezone Asia/Shanghai --isUtc
timezone Asia/Shanghai --utc

1.4. root用户密码

rootpw $2b$10$xtBFXV8dXm5y1Cz0vEnKSODi4eGUgtmapMGHEe7icZL/qyNVrOO/C --iscrypted
# 锁定
rootpw --iscrypted --lock $6$rMt1qgFxWxQ//N2X$SJlNvEJDVEx7fMWfgBWDsyczBtRmueR820jR5Gd/fDrjibR/o65t3KKv/4dM47dDwrFacsfwiZcch6xpIUJ1I0

1.5. 创建用户

# 创建用户rongtao
user --groups=wheel --name=rongtao --password=$6$hTwcIUUv.UAuaAbW$Ceb8LL.I.hgmWnvAt9t8olV0N8c18xUgBNXM5qxuJvhnkMH9tU9pUVLDUNQ0MyC.8UCqVe9hn0VFeoEszsWAI/ --iscrypted --gecos="rongtao"

1.6. 目标架构

1.7. 安装后是否重启

reboot

1.8. 使用图形模式安装

graphical

1.9. 使用text模式安装

text

2. 安装

2.1. 安装源和安装树的位置

# DVD安装
cdrom
# http
url --url=http://192.168.122.22/CCLinux-2203-x86_64-rc1/
# ftp
url --url=ftp://192.168.122.22/CCLinux-2203-x86_64-rc1/
# nfs
nfs --server=nfs://nfstest.com --dir=/CCLinux-2203-x86_64-rc1
# harddrive
harddrive --partition=/dev/sda1 --dir=/CCLinux-2203-x86_64-rc1

3. 分区

3.1. 清理主分区记录

zerombr

3.2. 移除现存分区和初始化磁盘标签

clearpart --all --initlabel

3.3. 忽略磁盘

# 仅仅使能 vds
ignoredisk --only-use=vda

3.4. 使用自动分区

autopart

4. BootLoader

4.1. Grub密码

bootloader --append="rhgb quiet crashkernel=auto" --iscrypted --password=grub.pbkdf2.sha512.10000.A98B43E3F163821C5395AAD07FD44FA508AE0FB6A55873FACD49228D90496A9012033FEEAC0E795ACAEB71F5B3DEB2D9B69323A43DBD2D5DA6309967188BE347.6F792B5C7DEF1865B82F44A100FC398032CA3C8D51A5BD856D87D19FFE31DC81FCEF452ABCD125074D844F706E9F88592ECEF99BF625DB6631D5D9EB25E88330

4.2. 使用UEFI

4.3. 内核参数

bootloader --append="rhgb quiet crashkernel=auto"

5. 数据包

根据架构不同,发行版不同,安装包差异也比较大。

%packages
@^graphical-server-environment
@debugging
@network-server
@performance
@remote-desktop-clients
@virtualization-tools
%end

数据包graphical-server-environmentAppStream/comps.xml中定义,这是repodata数据。

6. 身份验证

6.1. 密码算法

auth --passalgo=sha512 --useshadow

7. 网络

7.1. 使用默认网络DHCP

8. 安全

8.1. SELinux

是否激活

selinux --enforcing
selinux --permissive
selinux --disabled

8.2. 使能防火墙

是否允许http,ftp,smtp,ssh;
允许其他端口;

firewall --enabled --http --ftp --smtp --ssh --port=1234,2345,3456

9. 展示Display

不安装图形环境(skipx)

skipx

第一次启动,指定agent

firstboot --enable
firstboot --disable

10. 安装前脚本

%pre
#!/bin/bash
ls
%end

11. 安装后脚本

%post --interpreter=#!/bin/bash
#!/bin/bash
echo hello world > /hello.txt
%end

12. 一个完成的示例

# Generated by Anaconda 34.25.0.17
# Generated by pykickstart v3.32
#version=RHEL9
# Use graphical install
graphical

# http installation source
url --url=http://192.168.122.22/CCLinux-2203-x86_64-rc1/

%addon com_redhat_kdump --enable --reserve-mb='auto'

%end

# Keyboard layouts
keyboard --xlayouts='cn'
# System language
lang zh_CN.UTF-8

# Use CDROM installation media
#cdrom

# Reboot after installation
reboot

%packages
@^graphical-server-environment
@debugging
@network-server
@performance
@remote-desktop-clients
@virtualization-tools

%end

# Run the Setup Agent on first boot
firstboot --enable

# Generated using Blivet version 3.4.0
ignoredisk --only-use=vda
autopart
# Partition clearing information
clearpart --none --initlabel

# System timezone
timezone Asia/Shanghai --utc

# Root password
rootpw --iscrypted --lock $6$rMt1qgFxWxQ//N2X$SJlNvEJDVEx7fMWfgBWDsyczBtRmueR820jR5Gd/fDrjibR/o65t3KKv/4dM47dDwrFacsfwiZcch6x
pIUJ1I0
user --groups=wheel --name=rongtao --password=$6$hTwcIUUv.UAuaAbW$Ceb8LL.I.hgmWnvAt9t8olV0N8c18xUgBNXM5qxuJvhnkMH9tU9pUVLDUNQ
0MyC.8UCqVe9hn0VFeoEszsWAI/ --iscrypted --gecos="rongtao"

selinux --permissive
firewall --enabled --http --ftp --smtp --ssh --port=1234,2345,3456

%pre
#!/bin/bash
echo ">>>>>>>>>>>>>> Just Do It <<<<<<<<<<<<<"
%end

%post --interpreter=/bin/bash
#!/bin/bash
echo hello world > /hello.txt
%end

参考链接


Copyright (C) CESTC Com.

以上是关于Kickstart文件的编写的主要内容,如果未能解决你的问题,请参考以下文章

Kickstart文件的编写

Kickstart文件的编写

Kickstart文件的编写

Kickstart的配置

Kickstart

解决PXE安装Linux系统时kickstart自动识别硬盘问题