架构师成长之路2.4-Kickstart文件剖析

点击返回架构师成长之路

架构师成长之路2.4-Kickstart文件剖析

kickstart文件是一个简单的文本文件,它包含了一个项目列表,每个项目由一个关键字来识别。

创建kickstart文件注意:

  • 每节必须按顺序指定.除非特别申明,每节内的项目则不必按序排列.小节的顺序为:

命令部分,这里应该包括必需的选项.
           %packages部分,这部分选择需要安装的软件包.
           %pre和%post部分,这两个部分可以按任何顺序排列而且不是必需的.前者是预安装脚本,后者是系统安装完成后脚本

  • 不必需的项目可以被省略.
  • 如果忽略任何必需的项目,安装程序会提示用户输入相关的项目的选择,就象用户在典型的安装过程中所遇到的一样.一旦用户进行了选择,安装会以非交互的方式(unattended)继续(除非找到另外一个没有指定的项目).
  • 以井号("#")开头的行被当作注释行并被忽略.

kickstart 升级,下列项目是必需的:

  • 语言
  • 安装方法
  • 设备规格(如果这个设备是在安装过程中所需要的)
  • 键盘设置
  • upgrade 关键字
  • 引导装载程序配置
  • 如果任何其他的项目被指定为upgrade,这些项目将被忽略(注意这包括了软件包选择).

以下为一个Centos7示列:

#version=DEVEL
install
auth --enableshadow --passalgo=sha512
text
lang en_US.UTF-8
keyboard --vckeymap=us --xlayouts=‘us‘
network --onboot=on --device=ens33  --bootproto=dhcp --activate --ipv6=auto
rootpw newpassword
firewall --service=ssh
url --url=http://172.18.20.225/Centos7.5
selinux --disabled
timezone Asia/Shanghai --isUtc
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto"
zerombr
clearpart --none --initlabel
reboot
part /boot --fstype=ext4 --ondisk=sda --size=400
part swap  --ondisk=sda --size=4000
part / --fstype=ext4 --ondisk=sda --grow --size=200

%packages
@^minimal
@core
%end

%addon com_redhat_kdump --disable --reserve-mb=‘auto‘

%end

kickstart选项指令段的说明:

【必须的选项】:

1.auth或者authconfig :验证选项
    --useshadow或者--enableshadow启用shadow文件来验证
    --passalgo=sha512使用sha512算法
2.bootloader: 指定如何安装引导程序,要求必须已选择分区、已选择引导程序、已选择软件包,如果没选择将会停止而不会询问
    --location=mbr 指定引导程序的位置,默认为mbr,还可以指定none或者包含bootloader的引导块所在分区
    --driveorder=sda 指定grub安装在哪个分区以及指定寻找顺序,--driverorder=sda sdc sdb
    --append="crashkernel=auto rhgb quiet" 指定内核参数
3.keyboard:指定键盘类型,一般使用美式键盘"keyboard us",新版的kickstart的格式有所变化,但也支持"keyboard us"这样的老格式
4.lang:指定语言,如"lang en_US.UTF-8"5.rootpw:设置root用户的密码
    --iscrypted:使用加密密码,可以使用MD5,SHA-256,sha-512等。
        如:rootpw  --iscrypted $6$kxEBpy0HqHiY2Tsx$FTAqbjHs6x0VruChfYKxVeKLlxPuY0LXK7RxAVdu3uUivGclMUEz.i4ARlsMpqe1bf379uEgWOSFqGtZxqrwg.
        其中SHA-512位的加密密码在CentOS 6上可以使用"grub-crypt --sha-512"生成,CentOS7上可以使用python等工具来生成,如下:
        python -c ‘import crypt,getpass;pw=getpass.getpass();print(crypt.crypt(pw) if (pw==getpass.getpass("Confirm: ")) else exit())‘
【可选的选项】:
1.selinux:设置selinux,值为enforcing,permissice,disable之一
2.autostep: 交互式,和interactive类似
3.interactive: 使用kickstart文件指定的参数交互式安装,但仍会给出每一步的选择项,如果直接下一步就使用kickstart参数
4.cmdline:在完全非交互的命令行模式下进行安装
5.driverdisk:指定驱动程序所在位置
    drvierdisk --source=
6.firewall:设置firewall
    --disable禁用防火墙
7.firstboot:
    --disable:安装后第一次启动默认会给出很多需要手动配置的界面,禁用它
8.graphical:在图形模式下根据kickstart执行安装,默认该选项
9.text:文本模式下根据kickstart执行安装(既然使用kickstart了,当然建议选择使用纯文本模式而不是图形模式了)
 9.1 skipx:不安装图形工具
10.halt/reboot:安装完成后关机还是reboot,默认是halt
11.ignoredisk:指定忽略的磁盘
12.install/upgrade:指定是安装还是升级系统
    对于install,还必须指定下面几种安装方式之一:
        cdrom:指定从第一个光盘驱动器安装
        harddrive:指定从本地硬盘安装,要求硬盘必须是vfat或者ext2文件系统格式
            --biospart:指定从bios类型的分区来安装,如82文件系统类型号的分区
            --partition:从某个分区安装
            --dir:指定从包含install-tree(安装树)的目录安装
                例如:harddrive --partition=hdb2 --dir=/tmp/install-tree
        nfs:指定从nfs路径安装
            --server:指定nfs服务器主机名或IP
            --dir:指定包含install-tree的目录
            --opts:指定挂载NFS的mount选项            如:nfs --server=172.16.10.10 --dir=/export_path
        url:指定从ftp、http、https安装
             例如:url --url ftp://172.16.10.10
13.loggin:指定安装过程中的错误日志位置
    --host:指定日志将发送到那台主机上
    --port:如果远程主机的rsyslog使用非默认端口,则应该指定该端口选项
    --levle:指定日志级别
14.network:为系统配置网络信息,并在安装过程中激活该网络设备。可多次使用network指令,例如既设置网络,又设置主机名
    --bootproto:dhcp或static;对于static则必须指定IP地址、子网掩码、网关和DNS
    --device:网卡名,可以使用eth0类似的名称来指定
    --hostname:指定主机名
    --onboot:是否在引导系统时启用指定的设备
        如:
        network --bootproto=static --ip=192.168.100.2 --netmask=255.255.255.0 --gateway=192.168.100.254 --nameserver=8.8.8.8
        network --bootproto=dhcp --device=eth0 --noipv6
        network --hostname=node1.xuexi.com
15.autopart: 自动创建几个分区:大于1G的根分区,250M的boot分区和swap分区
16.zerombr:清除磁盘的mbr
17.clearpart: 在安装系统前清除分区,如果指定该选项则必须指定正确
    --all:清除所有分区
    --Linux:清除Linux分区
    --none:不清除分区
    --initlabel:创建标签,对于没有MBR或者GPT的新硬盘,该选项是必须的
    --drivers=sdb:清除指定的分区
    所以,clearpart --all --initlabel是常见的方式
18.part:创建分区
    --asprimary:强制指定为主分区
    --grow:使用所有可用空间,即为其分配所有剩余空间。对于根分区至少需要3G空间(即使是--grow,也还是需要指定--size)
    --ondisk:指定在哪块磁盘上创建分区。如果有多块磁盘,则需要指定在哪块磁盘上创建哪个分区,只有一块硬盘时可以省略该选项
        如:
            #part /boot --fstype=ext4 --asprimary --size=200     #boot分区200-250M足以
            #part swap --fstype=swap --asprimary --size=2048
            #part / --fstype=ext4 --grow --asprimary  --size=2000
LVM的分区方法:
part /boot --fstype ext4 --size=100
part swap --fstype=swap --size=2048
part pv26 --size=100 --grow
volgroup VG00 --pesize=32768 pv26
logvol / --fstype ext4 --name=LVroot --vgname=VG00 --size=29984
logvol /data --fstype ext4 --name=LVdata --vgname=VG00 --size=100 --grow        

19.repo:指定除自带的yum源外的其他yum源,可以指定多行yum源(既然是第一次装系统,基本都不会去加这项)
    如:repo --name="CentOS"  --baseurl=cdrom:sr0 --cost=100
20.services:设置默认运行级别下开机自启动的服务
    --disable
    --enable
        disable先处理enable后处理
        如services --disable auditd,cups,atd
21.timezone:指定时区
    如:Asia/Shanghai
22.user:在系统中生成一个新用户
    --name:指定用户名
    --groups:指定辅助组,非默认组
    --homedir:用户家目录,如果不指定则默认为/home/<username>
    --password:该用户的密码,如果不指定或省略则创建后该用户处于锁定状态
    --shell:用户的shell,不指定则默认
    --uid:用户UID,不指定则自动分配一个非系统用户的UID
23.key:输入序列号,只在RedHat中有,CentOS系统没有该项
    --skip  跳过key选项

【kickstart软件包或包组选项】

使用"%packages"表示该段内容,@表示选择的包组,最前面使用横杠表示取反,即不选择的包或包组。
@base和@core两个包组总是被默认选择,所以不必在%packages中指定它们

原文地址:https://www.cnblogs.com/yaoyaojcy/p/10251285.html

时间: 2024-09-29 08:19:30

架构师成长之路2.4-Kickstart文件剖析的相关文章

开启运维自动化架构师成长之路

技术的提升仅是量的积累,思想的提升才是质的飞跃! 这句话是我在网上看到认为最有道理的励志语录了,当然互联网IT行业的工作者相对理解的会更加深刻. 以这句话开头引出我将要写的这篇文章.首先,请允许我做一个自我介绍: 熟悉的朋友喜欢叫我一声岩哥,这么些年我也认可了这个称谓,尽管不是太好听.从毕业之后就接触了互联网,到现在工作N多年,中间有接触过游戏行业.金融行业.教育行业.云计算行业.电商购物和系统项目集成等,所有的工作经验和项目经历都是跟互联网IT技术挂钩,熟知企业中.项目中和学习中关于IT方面的

如何成为一名架构师,架构师成长之路(转)

转自http://blog.csdn.net/fei33423/article/details/61934514 如何成为一名架构师,架构师成长之路 原创 2017年03月13日 22:50:34 3116 大量阅读别人的系统实现文章( 架构= 模块图 + 模块流程图(启动 和 主流程 ,可以用拟物 tag) 或者 模块时序图) 动态+静态 .对象很重要,模块很重要. 从产品角度,用户很重要 脑图不需要按空格,收缩行 https://www.processon.com/view/link/58c

架构师成长之路4.4-多维监控体系_zabbix

点击返回架构师成长之路 架构师成长之路4.4-多维监控体系_zabbix 点击返回:自学Zabbix之路 点击返回:自学Zabbix4.0之路 点击返回:自学zabbix集锦 自学Zabbix之路[第一回]:初识Zabbix 1.1 自学Zabbix1.1-简介 1.2 自学Zabbix1.2-zabbix特性 1.3 自学Zabbix1.3-zabbix进程 自学Zabbix之路[第二回]:安装Zabbix 2.1 自学Zabbix2.1-安装需求 2.2 自学Zabbix2.2-服务器端环境

架构师成长之路6.4 DNS服务器搭建(部署主从DNS)

点击返回架构师成长之路 架构师成长之路6.3 DNS服务器搭建(部署主从DNS)  部署主DNS : 点击 部署从DNS : 如下步骤 1.与主DNS一样,安装bind yum -y install bind-utils bind bind-devel bind-chroot bind-libs 2.与主DNS一样,编辑/etc/named.conf options { version "1.1.1"; listen-on port 53 {any;}; #表示使用53端口 direc

架构师成长之路5.2-Saltstack远程执行

点击架构师成长之路 架构师成长之路5.2-Saltstack远程执行 配置管理工具: Pupper:1. 采用ruby编程语言:2. 安装环境相对较复杂:3.不支持远程执行,需要FUNC工具配置才可以 Ansible:1.采用python编程语言:2.被红帽收购:3.轻量级:4.基于模块工作的,本身没有批量部署的能力,真正批量部署的是ansible所运行的模块. Saltstack:采用python编程语言,同时提供Rest API方便二次开发以及和其它平台进行集成(目前企业使用率最高) Sal

架构师成长之路(1)--什么是架构师(目标)

前言: 哲学家常思考的问题:" 我是谁?"" 我从哪里来?"" 要到哪里去?不只是哲学家,我想每个人都有自己对这三个问题的认知. 如果我们要成为架构师,我们自己要面临的三大问题: 找准自己定位:我是谁?在哪里? 怎样做好架构师:我要做什么? 如何搭建架构师知识体系:我该怎么做? 这里面就是做事方法论:目标(我要做什么),方法(计划)(我该怎么做),  执行/行动 软件行业架构师两个定义 ?系统架构师是一个既需要掌控整体又需要洞悉局部瓶颈并依据具体的业务场景

(转)WEB架构师成长之路之一-走正确的路

本人也是coding很多年,虽然很失败,但也总算有点失败的心得,不过我在中国,大多数程序员都是像我一样,在一直走着弯路,如果想成为一个架构师,就必须走正确的路,否则离目标越来越远,正在辛苦工作的程序员们,你们有没有下面几种感觉? 一. 我的工作就是按时完成领导交给我的任务,至于代码写的怎样,知道有改进空间,但没时间去改进,关键是领导也不给时间啊. 二. 我发现我的水平总是跟不上技术的进步,有太多想学的东西要学,Jquery用的人最近比较多啊,听说最近MVC比较火,还有LINQ,听说微软又有Sil

WEB架构师成长之路——走正确的路

本人也是coding很多年,虽然很失败,但也总算有点失败的心得,不过我在中国,大多数程序员都是像我一样,在一直走着弯路,如果想成为一个架构师,就必须走正确的路,否则离目标越来越远,正在辛苦工作的程序员们,你们有没有下面几种感觉? 一.我的工作就是按时完成领导交给我的任务,至于代码写的怎样,知道有改进空间,但没时间去改进,关键是领导也不给时间啊. 二.我发现我的水平总是跟不上技术的进步,有太多想学的东西要学,Jquery用的人最近比较多啊,听说最近MVC比较火,还有LINQ,听说微软又有Silve

Web架构师成长之路

本人也是coding很多年,虽然很失败,但也总算有点失败的心得,不过我在中国,大多数程序员都是像我一样,在一直走着弯路.如果想成为一个架构师,就必须走正确的路,否则离目标越来越远,正在辛苦工作的程序员们,你们有没有下面几种感觉? 一.我的工作就是按时完成领导交给我的任务,至于代码写的怎样,知道有改进空间,但没时间去改进,关键是领导也不给时间啊. 二.我发现我的水平总是跟不上技术的进步,有太多想学的东西要学,jQuery用的人最近比较多啊,听说最近MVC比较火,还有LINQ,听说微软又有Silve