PXE配置中ks.cfg文件介绍

ks.cfg文件,也称为Kickstart文件,用于Linux系统的自动化安装。它包含命令段、软件包段和可选脚本段,定义了系统配置、安装软件包和安装后的脚本。在CentOS中,/root/anaconda-ks.cfg记录了预安装环境的设置。ks.cfg可以通过多种方式获取,如cdrom、http、ftp或nfs,并在引导启动后执行自动安装。配置包括键盘布局、语言、网络信息、根密码、时区、用户信息和引导加载器设置。此外,还可以使用图形化工具system-config-kickstart创建ks.cfg文件。

ks.cfg文件:又称Kickstart文件,主要用于Linux系统的自动化安装。

CentOS系统中 /root/anaconda-ks.cfg就是一个ks.cfg文件,它指明了当前系统预安装环境时的设置内容。

 

linux安装大致可以分为2个阶段

第一阶段linux的预安装环境

此阶段是linux的预安装环境,提供linux安装选项的一个接口,可以将它比作是windows中的PE环境

第二阶段自动安装过程

该阶段系统会按照第一阶段设定的参数自动安装,

 

第一阶段有两种模式:交互式非交互式

交互式就和普通安装一样,按照提示选择选项一步步的安装

非交互式则通过读取kickstart文件的配置,进行自动安装,这和window中的无人值守安装差不多的,这个文件即是ks.cfg文件(相当于window中的wi2k3.sif应答文件)

而在安装linux过程中,获取ks.cfg文件的方式有多种,如直接在cdrom中获取,常见的形式还有httpftpnfs等方式。


在使用ks.cfg之前,需要先引导启动环境

引导方式有很多,cdromusbPXE等。

在引导进入第一阶段后,即可通过读取ks.cfg来进行系统的自动安装

这里开始说说ks文件的大致内容


ks.cfg
文件组成大致分为3

1.命令段:

键盘类型,语言,安装方式等系统的配置,有必选项和可选项,如果缺少某项必选项,安装时会中断并提示用户选择此项的选项

2.软件包段:

%packages

@groupname:指定安装的包组

package_name:指定安装的包

-package_name:指定不安装的包

在安装过程中默认安装的软件包,安装软件时会自动分析依赖关系。

3.脚本段(可选):

%pre:预安装脚本(由于只依赖于启动镜像,支持的命令很少)

%post:后安装脚本(基本支持所有命令)

而具体的ks.cfg文件的配置,我们只需要在已经安装好的linuxroot家目录找到anaconda_ks.cfg(这个ks文件就是在安装linux后,根据用户的安装选项自动生成的)

 

 

下面的是一个样例:

 

#version=DEVEL

# System authorization information

auth --enableshadow --passalgo=sha512# 系统授权信息

# Use network installation

url --url="http://192.168.52.132/centos7" # 安装方式,如果是本地光盘安装则是 cdrom

# Use graphical install

graphical

# Run the Setup Agent on first boot

firstboot --enable

# Keyboard layouts

keyboard --vckeymap=cn--xlayouts='cn' # 键盘样式

# System language

lang zh_CN.UTF-8  #语言

 

# Network information

# 网络配置信息,设置IP获取方式,网关及DNS等信息

network  --bootproto=dhcp --device=eno16777736 --ipv6=auto --activate

network  --hostname=localhost.localdomain

 

# Root password

# root账户的信息及密码,密码是加密过的

rootpw --iscrypted$6$qUeqvWWOr921mWBY$h5wjwdcnIOC/FS6rCaZblKNGELwN9jrGwJZuwlrNi9OHzI.n1lxaKKrkwdN7nadXP5f2mFRDrW9D9gYStXGZu/

# System timezone

# 系统时区与其他用户信息及用户密码

timezone Asia/Shanghai --isUtc

user --groups=wheel--name=pxetest --password=$6$.hgpJdCAhSMaf7yB$5GKYIAgTkLxfS1JHK5KSpN96LXhkKGFX3FbnQl0hTME3wbF1njxyezmPF/HXAtI9Bp8U6MsF3hRXlFvFfn9Nm/--iscrypted --gecos="pxetest"

# System bootloader configuration

# 引导程序相关参数

bootloader --append="crashkernel=auto" --location=mbr --boot-drive=sda

autopart --type=lvm

# Partition clearing information

# 初始化磁盘设置

clearpart --none --initlabel

 

# 分区设置

# part / --fstype=ext4 --size=18000 #开始分区
# part swap --grow --size=1024
# repo --name="CentOS"  --baseurl=cdrom:sr0 --cost=100

 

# 需要安装的系统模式及附加软件包

%packages

@^infrastructure-server-environment

@base

@compat-libraries

@core

@debugging

@development

@dns-server

@file-server

@ftp-server

@security-tools

@smart-card

kexec-tools

 

# 后安装脚本,Linux安装完成后执行的脚本可以写在这里

# %post

 

%end

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

%end

 

如果觉得使用样本的方式手工写配置文件比较麻烦,也可以使用图形化工具来制作ks.cfg文件。在linux中用yum安装system-config-kickstart就行了(图形化依赖于x-window),选项也有些限制(比如分区不能使用lvm

 

 

参考资料:http://www.linuxdiyf.com/linux/3191.html

参考资料:http://www.linuxidc.com/Linux/2013-07/87299.htm


================================以下为一个ks.cfg的例子====================================

#version=DEVEL
# System authorization information
auth --enableshadow --passalgo=sha512
# Use network installation
url --url="http://192.168.17.151/cobbler/ks_mirror/CentOS-7-x86_64"
# Use text mode install
text
# Firewall configuration
firewall --disabled
# Run the Setup Agent on first boot
firstboot --enable
ignoredisk --only-use=sda
# Keyboard layouts
keyboard --vckeymap=cn --xlayouts='cn'
# System language
lang zh_CN.UTF-8

# Network information
network  --bootproto=dhcp --device=eno16777736 --ipv6=auto --activate
network  --bootproto=dhcp --hostname=Client-x
# Reboot after installation
reboot
# Root password
rootpw --iscrypted $6$PumnYZm77S9o.9e5$IRSIoUF4GgOxpj.r2OY5qTxJwBz1NyUVYciFPhEyj5MqcFCOHCQd3cNpt60LIwWlXtWLXZ2tT8G51FZkYXJyW/
# SELinux configuration
selinux --disabled
# Do not configure the X Window System
skipx
# System timezone
timezone Asia/Shanghai --isUtc
user --groups=wheel --name=test --password=$6$Rs9WcGhknZPweSTO$aAAyGL61HFwF8zrUG.8E6q99MUNI/rTCHWFyM7Qz3Jqf.VQskwCfhYQ8fT78WXcDprl3xSWtbDCBCJHToY3gc. --iscrypted --gecos="test"
# System bootloader configuration
bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda
autopart --type=lvm
# Partition clearing information
clearpart --none --initlabel

%packages
@^minimal
@core
@debugging
@development
kexec-tools
kexec-tools
net-tools
vim

%end

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

%end


<think>我们正在处理关于xCAT和Kickstart的问题。用户希望了解如何将新生成的ks.cfg文件添加到xCAT数据库表中,以便用于重装操作系统。 步骤: 1. 理解环境:xCAT是一个用于集群管理的工具,支持操作系统的自动化部署。Kickstart是Red Hat/CentOS等系统自动安装的配置文件。 2. 目标:将新生成的ks.cfg文件导入xCAT数据库,使得在重装操作系统时能够使用这个配置文件。 在xCAT中,Kickstart配置文件通常与节点或节点组相关联。xCAT使用数据库(通常是SQLite)来存储节点属性,其中就包括安装时使用的配置文件。 具体步骤: a. 生成ks.cfg文件:使用Kickstart工具(如system-config-kickstart或手动编写)生成ks.cfg文件。 b.ks.cfg文件放置在xCAT能够访问的位置,通常是`/install`目录下的某个子目录(例如`/install/custom/kickstart`)。 c. 使用xCAT命令将节点的`install`相关属性指向这个ks.cfg文件。 详细步骤: 1. 存放ks.cfg文件: 将生成的ks.cfg文件复制到xCAT的安装目录,例如: ```bash cp /path/to/new/ks.cfg /install/custom/kickstart/ ``` 确保该文件的权限和所有权合适(通常root即可)。 2. 更新xCAT数据库: 我们需要更新节点的`install`属性,使其指向新的ks.cfg文件。在xCAT中,节点的安装配置文件通常由`osimage`属性定义,或者直接通过`profile`属性指定(对于Red Hat系,通常使用`profile`)。 有两种方式更新: a. 通过修改节点的`osimage`属性(推荐,因为osimage是一组安装属性的集合)。 b. 或者直接修改节点的`kickstart`属性(如果节点已经有个性化的配置文件设置)。 但是,xCAT通常通过`osimage`来管理安装镜像和配置文件。因此,我们可能需要创建一个新的osimage或者修改现有的osimage来指向新的ks.cfg文件。 然而,如果用户只是针对特定节点使用这个新的ks.cfg,我们可以直接设置节点的`kickstart`属性。 例如,假设节点名为`node01`,我们可以运行: ```bash chdef node01 kickstart="custom/kickstart/ks.cfg" ``` 这样,当节点重装时会使用这个路径下的ks.cfg文件。 注意:xCAT的`kickstart`属性是相对于`/install`目录的路径。 3. 验证:使用`lsdef`命令检查节点属性: ```bash lsdef node01 -i kickstart ``` 4. 重装操作系统:使用`rinstall`命令重新安装节点: ```bash rinstall node01 ``` 另外,如果这个配置文件将被多个节点使用,可以考虑创建一个节点组(group)并将这个配置文件设置为该组的属性,然后将节点加入该组。 注意事项: - 确保ks.cfg文件中的路径(如安装源)是正确的,特别是如果使用了本地镜像,路径可能需要指向xCAT服务器上的正确位置。 - 如果ks.cfg文件中包含一些变量(如节点名、IP等),xCAT支持模板语法(如`<xcat::node.name>`),那么需要将ks.cfg文件作为模板(后缀为`.tmpl`)并放置在`/install/custom/kickstart/templates/`目录下,然后在节点属性中设置`kickstart`指向该模板(不带.tmpl后缀),xCAT会在安装时进行渲染。 如果用户之前没有使用模板,而新的ks.cfg需要动态内容,那么可能需要将其转换为模板。 总结:主要步骤是放置文件并设置节点的`kickstart`属性。 根据上述内容,我们生成相关问题: 1. 如何为多个节点设置相同的kickstart配置文件? 2. 在xCAT中如何创建和使用kickstart模板? 3. 如何验证ks.cfg文件的正确性? 4. 重装操作系统时,xCAT的工作流程是怎样的? 注意:我们参考了xCAT的常见做法,但具体细节可能因版本而异。 </think>### 将Kickstart生成的ks.cfg集成到xCAT数据库的方法 在xCAT中,将新生成的Kickstart配置文件(`ks.cfg`)集成到数据库以实现操作系统重装,需通过以下步骤完成: #### 1. **存放配置文件** 将新生成的`ks.cfg`文件复制到xCAT的配置目录(通常为`/install/custom/`): ```bash cp /path/to/new/ks.cfg /install/custom/kickstart/ ``` #### 2. **更新xCAT数据库** 使用`chdef`命令将配置文件路径关联到目标节点或节点组: ```bash # 单个节点关联 chdef <node_name> kickstart="kickstart/ks.cfg" # 节点组关联(推荐批量操作) chdef -t group <group_name> kickstart="kickstart/ks.cfg" ``` 此处路径`kickstart/ks.cfg`是相对于`/install`目录的路径[^1]。 #### 3. **验证配置** 检查节点属性是否更新成功: ```bash lsdef <node_name> -i kickstart ``` 预期输出:`kickstart=kickstart/ks.cfg` #### 4. **触发重装操作** 通过`rinstall`命令触发节点重装: ```bash rinstall <node_name> ``` xCAT将自动从数据库读取`ks.cfg`路径,并在PXE引导时注入配置文件[^2]。 #### 关键注意事项: 1. **路径有效性** 确保`/install/custom/kickstart/ks.cfg`路径可被所有计算节点访问,必要时通过`chmod 644`调整权限。 2. **模板化处理(动态变量)** 若配置需包含节点特定变量(如IP地址): - 将文件重命名为`ks.cfg.tmpl` - 在模板中使用`<xcat::node.attr>`语法(如网关地址:`<xcat::node.gateway>`) - 执行`packimage`更新镜像: ```bash packimage <osimage_name> -t ``` 3. **数据库同步** 修改后需同步到xCAT数据库: ```bash makehosts <node_name> makedns -n ``` --- ### 相关问题 1. 如何在xCAT中为不同硬件类型的节点分配不同的Kickstart配置文件? 2.ks.cfg模板中包含动态变量时,xCAT如何在安装过程中解析这些变量? 3. 如何验证ks.cfg文件的语法正确性以避免自动安装失败? 4. xCAT支持哪些Kickstart的高级参数来优化大规模节点部署? [^1]: xCAT官方文档 - 节点属性管理 (`chdef`/`lsdef`命令) [^2]: xCAT最佳实践指南 - 操作系统部署流程 (`rinstall`工作流)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值