# KS文件和语法解析

[TOC]

## 1ks说明

### 1.1ks文件说明

使用kickstart,只需事先定义好一个Kickstart自动应答配置文件ks.cfg(通常存放在安装服务器上),并让安装程序知道该配置文件的位置,在安装过程中安装程序就可以自己从该文件中读取安装配置,这样就避免了在安装过程中多次的人机交互,从而实现无人值守的自动化安装。

### 1.2生成kickstart配置文件的三种方法:

* 方法1:

每安装好一台Centos机器,Centos安装程序都会创建一个kickstart配置文件,名字叫anaconda-ks.cfg位于/root/anaconda-ks.cfg ,记录真实安装配置。

* 方法2:

Centos提供了一个图形化的kickstart配置工具。在任何一个安装好的Linux系统上运行该工具,就可以很容易地创建你自己的kickstart配置文件。

* 方法3:

阅读kickstart配置文件的手册。用任何一个文本编辑器都可以创建你自己的kickstart配置文件。

官方链接:

https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/7/html/installation_guide/sect-kickstart-howto

### 1.3kickstart文件语法检查

```sh

yum install pykickstart

ksvalidator /var/www/html/ks_config/CentOS-7-ks.cfg

```

请记住这个验证工具有其局限性。Kickstart 文件可能会很复杂;ksvalidator 可保证其语法正确,且该文件不包含淘汰的选项,但它无法保证安装会成功。它也不会尝试验证 Kickstart 文件的 %pre、%post 和 %packages 部分。

### 1.4root密码生成

1)python法

```python

python -c 'import crypt; print(crypt.crypt("123456"))'

$6$mM/gpJHUs......AFcT3Q0CMJCqWk9d90

```

2)grub-crypt法

```

grub-crypt

Password:

Retype password:

$6$npM35T......PburyA/FFDbdeGvnUrWpWi.

```

## 2ks.cfg详解

### 2.1ks文件组成

1. 命令段

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

2. 软件包段

以%packages开头,以%end结束,在安装过程中默认安装的软件包,安装软件时会自动分析依赖关系。

```

@groupname:指定安装的包组

package_name:指定安装的包

-package_name:指定不安装的包

```

3. 脚本段(可选)

以%post开头,以%end结束,在安装完系统之后执行的相关Linux命令、脚本

以%pre开头,以%end结束,在安装完系统之前执行的相关Linux命令、脚本

### 2.关键字含义说明

1)开始部分

```sh

# Kickstart Configurator for CentOS 7 by NOAH LUO

install

```

告知安装程序,这是一次全新安装,而不是升级upgrade。

2)安装源部分

```sh

url --url="http://10.0.0.7/CentOS-6.7/"

url --url ftp://:@/

nfs --server=nfsserver.example.com --dir=/tmp/install-tree

```

通过FTP或HTTP或NFS从远程服务器上的安装树中安装。任选一即可

3)模式语言键盘等

```sh

text使用文本模式安装。

lang en_US.UTF-8设置在安装过程中使用的语言以及系统的缺省语言。

keyboard us设置系统键盘类型。

zerombr清除mbr引导信息。

```

4)bootloader系统引导配置

```sh

bootloader --location=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

```

可以调用优化脚本,对装完后的服务器进行初始优化

linux ks脚本,kickstar-KS文件和语法解析相关推荐

  1. linux编写脚本读取txt文件,用bash脚本或者批处理 bat脚本 读取一个目录下.txt文件第一行内容存放到新文件a.txt...

    起因:我把cmd 控制台说成了dos! 发展:人类生气了,跟我扯了一堆 dos 还有什么玩意儿,在我第二次还说那个是dos界面以后:( 后续:人类要我写 批处理bat 还有linux bash 脚本去 ...

  2. Linux编写脚本实现统计文件和目录

    Linux编写脚本实现统计任意目录和文件功能 任务 实现 练习 任务 编写实现统计任意目录下有多少个文件和文件夹(命令:egrep.wc.ll) 1.需要使用到位置变量$1.$2.$3,用来给脚本传递 ...

  3. 文件字符串变量插入linux,Linux Shell脚本实现在文件指定的行插入字符串

    涉及知识点:grep字符串查找,awk截取列,until条件操作,sed字符串插入,变量与字符串连接等. 人工操作(首先vim打开文件找到字符串所在的位置,插入操作): vim /etc/glance ...

  4. linux 远程脚本批量 scopy文件

    2019独角兽企业重金招聘Python工程师标准>>> 一 操作流程 1 筛选对应文件路径. 2 循环copy文件到指定主机目录. 二 筛选操作 执行文件:getFileList.s ...

  5. linux执行ksh文件,linux – shell脚本(KSH)将文件设置为param并在param和string之间执行测试...

    在我的 linux机器red-hat 5.1 – 在ppp文件中 – 我只有signature.pl字符串! > remark – 第三个应用程序将signature.pl字符串写入ppp文件 ...

  6. android insmod命令,android的启动脚本(init.rc)文件的语法

    android的启动脚本(init.rc)文件的语法,参考资料: Android 初始化语言(Android Init Language) Android初始化脚本语言包含四种类型的语句: 动作(Ac ...

  7. python脚本修改hosts文件

    记一次使用python脚本来修改hosts文件,由于公司服务器需要换ip地址,服务器里都是Linux系统,而hosts文件中有些解析的ip,手动一台一台的解析太麻烦,就写了这个脚本.本来以为感觉很简单 ...

  8. windows2008 使用windows server backup定时备份文件夹和批处理脚本定时删除文件夹

    由于公司OA需要定期备份数据库文件,及定时删除超过7天的备份文件,通过windows2008自带的windows Server Backup 备份文件夹,及forfile 来定时删除超过时间的文件 由 ...

  9. linux ks脚本,Linux ks.cfg 详解

    linux安装大致可以分为2个阶段 第一阶段:anaconda 第二阶段:installinstall阶段系统会按照anaconda阶段设定的参数自动安装,这里主要要说的是anaconda阶段,此阶段 ...

最新文章

  1. Nature Cancer | 发现非肿瘤药物的抗癌潜力
  2. 类对象和类指针深入分析与对比
  3. 解决webpack打包后-webkit-box-orient: vertical ;消失问题
  4. 我的醉驾拘留15日记----第二日凌晨 午夜惊梦
  5. Spring与mybatis整合---Mybatis学习笔记(十一)
  6. GDB调试技术(一)
  7. Zabbix 安装agent
  8. poj1062昂贵的聘礼(Dijkstra**)
  9. 题库明细 使用C#开发数据库应用系统
  10. python使用lxml解析html获取页面内所有叶子节点的xpath路径
  11. SPSS 25.0 软件安装教程
  12. mysql 地理空间数据库_地理空间数据库
  13. vue项目引用美图秀秀图片编辑器
  14. oracle现金流量表逻辑,现金流量表内在逻辑研究
  15. 康耐视InSight软件电子表格视图功能介绍
  16. Directions Reduction-方向减少
  17. 二分类函数(机器学习)
  18. 华清远见上海中心22071班--11.19作业
  19. 开机一直黑屏后,扣电池,No bootable device or remote image found
  20. php 监控网站是否宕机,监控服务器是否宕机的脚本

热门文章

  1. 学习Linux命令(44)
  2. 微信小程序美容理发店预约系统app
  3. 2022-1-21 Leetcode 599. 两个列表的最小索引总和
  4. sqlserver数据库备份成为sqlserver中的bak格式
  5. PADS、OrCAD、PowerPCB、Protel选择
  6. linux生成目录间补丁,linux打补丁 patch
  7. HTML5实现DTMF(电话拨号按键信号)解码、编码,代码简单易于移植
  8. OSChina 周六乱弹 ——母亲节给妈洗脚,许士林怎么不开心???
  9. 栈的弹出函数pop()实现方案探讨
  10. kubectl查看node状态_全栈之路:使用pm2自动化部署node项目