Kickstart文件的编写
Posted rtoax
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kickstart文件的编写相关的知识,希望对你有一定的参考价值。
文档修改日志
日期 | 修改内容 | 修改人 | 备注 |
---|---|---|---|
2022年1月27日 | 创建 | 荣涛 |
Kickstart简介
Kickstart提供了一种可以部分或完全自动化安装OS过程的方法。由红帽创建。
Kickstart文件包含部分或全部OS安装选项。例如,时区、应该如何分区驱动器,或者应该安装哪些包。提供一个准备好的Kickstart文件就可以在不需要任何用户干预的情况下进行安装。这在同时在大量系统上部署OS时特别有用。
Kickstart可以使用本地DVD,本地硬盘,或者NFS,FTP,HTTP(s)。
自动化安装流程
- 创建Kickstart文件;
- 使Kickstart文件可用;
- 创建可启动介质/安装源或PXE;
- 使安装源可用;
- 使用ks文件和启动介质安装;
创建Kickstart文件
Chapter 4, Creating Kickstart files.
可以使用下面的方法获取ks文件:
- 使用在线配置工具;
- 拷贝ks文件;
- 手动编写ks文件;
- 从低版本转换;
- 虚拟化环境,创建自定义OS镜像,是哦那个Image Builder。
在线生成kickstart文件
手动编写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-environment
在AppStream/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文件的编写的主要内容,如果未能解决你的问题,请参考以下文章