# KS文件和语法分析
[TOC]
## 1ks说明
### 1.1ks文件的说明
使用kickstart时,安装人员只需预先定义kickstart自动响应配置文件ks.cfg (通常存储在安装服务器上),并告知安装人员该配置文件的位置,安装过程中安装人员将自行安装
# # 1.2生成kickstart配置文件的三种方法:
方法1 :
每次安装Centos计算机时,Centos安装程序都会创建名为anaconda-ks.cfg的kickstart配置文件(位于/root/anaconda-ks.cfg中),并记录实际的安装配置
方法2 :
Centos以图形方式提供了kickstart配置工具。 在任何已安装的Linux系统上运行此工具,可以轻松创建自己的kickstart配置式。
方法3 :
阅读kickstart配置文件文档。 任何文本编辑器都可以创建您自己的kickstart配置文件。
官方链接:
3359 access.red hat.com/documentation/zh-cn/red _ hat _ enterprise _ Linux/7/html/installation _ gu guide /
### 1.3kickstart文件语法检查
` ` ` sh
yum install pykickstart
kvalidator/var/www/html/ks _ config/centos-7-ks.CFG
``````
请记住,此验证工具是有限的。 Kickstart文件可能会变得复杂。ksvalidator保证语法正确,此文件不包含过时选项,但不保证安装成功。 无法验证Kickstart文件的%pre、%post和%packages部分。
##1.4生成根密码
1 ) python法
` ` ` python
python-c '导入脚本; 打印(crypt.crypt ) (123456 ) )
$6$ mm/gpjhus……afct 3q 0清新猫9d90
``````
2 ) grub-crypt法
``````
grub-crypt
Password:
Retype password:
$6$ NPM 35 t……pbu rya/ffdbdegvnurwpwi。
``````
## 2ks.cfg详细信息
由### 2.1ks文件构成
1 .指令段
系统布局(如键盘类型、语言和安装方法)具有必需的选项和选项。 如果缺少任何必需选项,安装过程中将中断,并提示用户选择此选项
2 .包段
以%packages开始、以%end结束、在安装过程中默认安装的软件包将在软件安装过程中自动分析依赖关系。
``````
@groupname :指定要安装的软件包组
package_name :指定要安装的软件包
-package_name :指定不安装的软件包
``````
3 .脚本段(可选)
以%post开始,以%end结束,安装系统后执行的相关Linux命令、脚本
以%pre开始,以%end结束,在安装系统之前运行的相关Linux命令、脚本
##2.关键字的含义说明
1 )开始部分
` ` ` sh
# kickstartconfiguratorforcentos7bynoahluo
安装
``````
通知安装程序是全新安装,而不是升级upgrade。
2 )设置源部分
` ` ` sh
URL-- URL=' http://10.0.0.7/centos-6.7/'
url --url ftp://:@/
NFS-- server=NFS server.example.com-- dir=/tmp /安装树
``````
通过FTP、HTTP或NFS从远程服务器的安装树进行安装。 一个就可以了
3 )模式语言键盘等
` ` ` sh
文本以文本模式安装。
lang en_US.UTF-8设置安装过程中使用的语言和系统的默认语言。
keyboard us设置系统的键盘类型。
zerombr清除mbr引导信息。
``````
4 )引导加载器系统启动配置
` ` ` sh
引导加载器--l
ocation=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"--location指定引导记录被写入的位置.有效的值如下:mbr(缺省),partition,none。
--driveorder指定在BIOS引导顺序中居首的驱动器。
--append=指定内核参数.要指定多个参数,使用空格分隔它们。
```
5)network网络配置[客户机]
```sh
network --bootproto=dhcp --device=eth0 --onboot=yes --noipv6 --hostname=CentOS7 --activate
或者
network --bootproto=static --device=eth0 --ip=10.0.0.201 --netmask=255.255.255.0 --gateway=10.0.0.201 --nameserver=10.0.0.202 --activate
network --hostname=CentOS7
static方法要求在kickstart文件里输入所有的网络信息。
请注意所有配置信息都必须在一行上指定,或写两个newwork,不能使用反斜线来换行。
--ip=被安装的机器的IP地址.
--gatewayIP地址格式的默认网关.
--netmask安装的系统的子网掩码.
--hostname安装的系统的主机名.
--onboot是否在引导时启用该设备.
--noipv6禁用此设备的IPv6.
--nameserver配置dns解析.
```
6)时区认证等
```sh
timezone --utc Asia/Shanghai
authconfig --enableshadow --passalgo=sha512
rootpw --iscrypted $6$X20eRtuZhkHznTb4$dK0BJByOSA.....wJbAjVI5D6/
```
设置时区上海,设置认证方式,设置密码,密码非明文,用前文生成密码的方式生成
7)分区相关
```sh
clearpart --all --initlabel
--all 从系统中清除所有分区,--initlable 初始化磁盘标签
part /boot --fstype xfs --size 1024
part swap --size 1024
part / --fstype xfs --size 1 --grow
磁盘分区。
--fstype为分区设置文件系统类型.有效的类型为ext2,ext3,swap, xfs和vfat。
--asprimary强迫把分区分配为主分区,否则提示分区失败。
--size以MB为单位的分区最小值.在此处指定一个整数值,如500.不加MB。
--grow告诉分区使用所有可用空间(若有),或使用设置的最大值。
```
8)其他信息
```sh
firstboot --disable
selinux --disabled
firewall --disabled
logging --level=info
reboot
firstboot负责协助配置redhat一些重要的信息。
selinux关闭selinux。
firewall关闭防火墙。
logging设置日志级别。
reboot设定安装完成后重启,也可以选择halt关机。
```
9)包选装
```sh
%packages
@^minimal
@compat-libraries
@debugging
@development
tree
nmap
sysstat
lrzsz
dos2unix
telnet
wget
vim
bash-completion
%end
```
10)安装完成后操作
```sh
%post
systemctl disable postfix.service
%end
```
可以调用优化脚本,对装完后的服务器进行初始优化