linux ks脚本,kickstar-KS文件和语法解析
# 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文件和语法解析相关推荐
- linux编写脚本读取txt文件,用bash脚本或者批处理 bat脚本 读取一个目录下.txt文件第一行内容存放到新文件a.txt...
起因:我把cmd 控制台说成了dos! 发展:人类生气了,跟我扯了一堆 dos 还有什么玩意儿,在我第二次还说那个是dos界面以后:( 后续:人类要我写 批处理bat 还有linux bash 脚本去 ...
- Linux编写脚本实现统计文件和目录
Linux编写脚本实现统计任意目录和文件功能 任务 实现 练习 任务 编写实现统计任意目录下有多少个文件和文件夹(命令:egrep.wc.ll) 1.需要使用到位置变量$1.$2.$3,用来给脚本传递 ...
- 文件字符串变量插入linux,Linux Shell脚本实现在文件指定的行插入字符串
涉及知识点:grep字符串查找,awk截取列,until条件操作,sed字符串插入,变量与字符串连接等. 人工操作(首先vim打开文件找到字符串所在的位置,插入操作): vim /etc/glance ...
- linux 远程脚本批量 scopy文件
2019独角兽企业重金招聘Python工程师标准>>> 一 操作流程 1 筛选对应文件路径. 2 循环copy文件到指定主机目录. 二 筛选操作 执行文件:getFileList.s ...
- linux执行ksh文件,linux – shell脚本(KSH)将文件设置为param并在param和string之间执行测试...
在我的 linux机器red-hat 5.1 – 在ppp文件中 – 我只有signature.pl字符串! > remark – 第三个应用程序将signature.pl字符串写入ppp文件 ...
- android insmod命令,android的启动脚本(init.rc)文件的语法
android的启动脚本(init.rc)文件的语法,参考资料: Android 初始化语言(Android Init Language) Android初始化脚本语言包含四种类型的语句: 动作(Ac ...
- python脚本修改hosts文件
记一次使用python脚本来修改hosts文件,由于公司服务器需要换ip地址,服务器里都是Linux系统,而hosts文件中有些解析的ip,手动一台一台的解析太麻烦,就写了这个脚本.本来以为感觉很简单 ...
- windows2008 使用windows server backup定时备份文件夹和批处理脚本定时删除文件夹
由于公司OA需要定期备份数据库文件,及定时删除超过7天的备份文件,通过windows2008自带的windows Server Backup 备份文件夹,及forfile 来定时删除超过时间的文件 由 ...
- linux ks脚本,Linux ks.cfg 详解
linux安装大致可以分为2个阶段 第一阶段:anaconda 第二阶段:installinstall阶段系统会按照anaconda阶段设定的参数自动安装,这里主要要说的是anaconda阶段,此阶段 ...
最新文章
- Nature Cancer | 发现非肿瘤药物的抗癌潜力
- 类对象和类指针深入分析与对比
- 解决webpack打包后-webkit-box-orient: vertical ;消失问题
- 我的醉驾拘留15日记----第二日凌晨 午夜惊梦
- Spring与mybatis整合---Mybatis学习笔记(十一)
- GDB调试技术(一)
- Zabbix 安装agent
- poj1062昂贵的聘礼(Dijkstra**)
- 题库明细 使用C#开发数据库应用系统
- python使用lxml解析html获取页面内所有叶子节点的xpath路径
- SPSS 25.0 软件安装教程
- mysql 地理空间数据库_地理空间数据库
- vue项目引用美图秀秀图片编辑器
- oracle现金流量表逻辑,现金流量表内在逻辑研究
- 康耐视InSight软件电子表格视图功能介绍
- Directions Reduction-方向减少
- 二分类函数(机器学习)
- 华清远见上海中心22071班--11.19作业
- 开机一直黑屏后,扣电池,No bootable device or remote image found
- php 监控网站是否宕机,监控服务器是否宕机的脚本
热门文章
- 学习Linux命令(44)
- 微信小程序美容理发店预约系统app
- 2022-1-21 Leetcode 599. 两个列表的最小索引总和
- sqlserver数据库备份成为sqlserver中的bak格式
- PADS、OrCAD、PowerPCB、Protel选择
- linux生成目录间补丁,linux打补丁 patch
- HTML5实现DTMF(电话拨号按键信号)解码、编码,代码简单易于移植
- OSChina 周六乱弹 ——母亲节给妈洗脚,许士林怎么不开心???
- 栈的弹出函数pop()实现方案探讨
- kubectl查看node状态_全栈之路:使用pm2自动化部署node项目