Linux Kickstart配置、使用备忘

Linux Kickstart 备忘

简介

kickstart是一个利用Anconda工具实现服务器自动化安装的方法;通过生成的kickstart配置文件ks.cfg,服务器安装可以实现从裸机到全功能服务的的非交互式(无人值守式)安装配置。ks.cfg是一个简单的文本文件,文件包含Anconda在安装系统及安装后配置服务时所需要获取的一些必要配置信息(如键盘设置,语言设置,分区设置等);Anconda直接从该文件中读取必要的配置,只要该文件信息配置正确无误且满足所有系统需求,就不再需要同用户进行交互获取信息,从而实现安装的自动化。

简书参考

RedHat上的介绍

开始KickStart安装

RedHat详细boot参数

将ks文件放到web服务器(ftp或者u盘都可以)上
在进入系统引导界面后,按ESC,在boot提示符下,输入:

boot: linux ks=http://192.168.0.1/ks.cfg

如果网络内没有DHCP服务需要配置IP启动:

boot: linux ip=192.168.0.2 netmask=255.255.255.0 gateway=192.168.0.1 ks=http://192.168.0.1/ks.cfg

注:此处设置的ip地址是为了访问web服务设置,与系统安装后的ip地址不同

指定网卡:
boot: linux ks=http://172.16.1.201/ks_config/CentOS7-ks.cfg net.ifnames=0 biosdevname=0 ksdevice=eth1

生成ks文件的方式

  1. RedHat系版本安装完后自动生成的文件

    RedHat系版本安装完后在/root目录下会生成ks文件:anaconda-ks.cfg, 可以直接拿来使用

  2. 使用Kickstart Configurator图形界面创建和修改 kickstart 文件

    参考 RedHat KICKSTART CONFIGURATOR

    yum install system-config-kickstart
    启动 Kickstart Configurator,请将系统引导至图形环境,然后运行 system-config-kickstart,或在 GNOME 桌面上点击 应用程序 → 系统工具 → Kickstart,或者在 KDE 桌面上点击 开始应用程序启动器+应用程序 → 系统 → Kickstart。
    
  3. 根据模板进行修改

    Github CentOS模板

    CentOS 6 模板

# Kickstart file automatically generated by anaconda.

#version=DEVEL
zerombr
install
cdrom
lang en_US.UTF-8
keyboard us
network --onboot yes --device eth0 --bootproto dhcp --hostname=localhost.localdomain
rootpw  pwd_change_me
firewall --disable
authconfig --enableshadow --passalgo=sha512
selinux --disabled
timezone --utc Asia/Shanghai
bootloader --location=mbr --driveorder=vda --append="crashkernel=auto console=ttyS0 console=tty0"
# The following is the partition information you requested
# Note that any partitions you deleted are not expressed
# here so unless you clear all partitions first, this is
# not guaranteed to work
#clearpart --linux --drives=vda

#part / --fstype=ext4 --grow --asprimary --size=200

#repo --name="CentOS"  --baseurl=cdrom:sr0 --cost=100

# Partition clearing information
clearpart --none --initlabel
# Disk partitioning information
part / --fstype="ext4" --ondisk=vda --size=20479

%packages --excludedocs
#@base
@core
#@development
#@server-policy
wget
telnet
sysstat
#vim

%end

%post
# sh post.sh
%end

reboot

CentOS 7 模板

#version=DEVEL
# System authorization information
auth --enableshadow --passalgo=sha512
# Use CDROM installation media
cdrom
# Use graphical install
graphical
# Run the Setup Agent on first boot
firstboot --enable
ignoredisk --only-use=vda
# Keyboard layouts
keyboard --vckeymap=us --xlayouts='us'
# System language
lang en_US.UTF-8

# Network information
network  --bootproto=dhcp --device=eth0 --onboot=on --ipv6=auto
network  --hostname=localhost.localdomain

# Root password
rootpw pwd_change_me
# 密码加密
#rootpw  --iscrypted $6$Ka7MzfgRm5CS9N22$cMgIl

#Firewall configuration
#禁用防火墙
firewall --disabled

#SELinux configuration
#禁用selinux
selinux --disabled

# System services
services --enabled="chronyd"
# System timezone
timezone --isUtc Asia/Shanghai
# System bootloader configuration
bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=vda
# Partition clearing information
clearpart --all --initlabel --drives=vda
# Disk partitioning information
part / --fstype="ext4" --ondisk=vda --size=2047

%packages
@^minimal
-NetworkManager-*
#@core
#chrony
#kexec-tools

%end

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

%post
#yum install -y http://10.0.2.2:8080/rpm/elfin-1.1.3-0.cloud.el6.x86_64.rpm
%end

%anaconda
%end
reboot

Centos8 模板 (auth已废弃)
Centos8 参考

#version=Centos8
# Use CDROM installation media
cdrom
# Use graphical install
graphical
# Run the Setup Agent on first boot
firstboot --enable
ignoredisk --only-use=vda
# Keyboard layouts
keyboard --vckeymap=us --xlayouts='us'
# System language
lang en_US.UTF-8

# Network information
network  --bootproto=dhcp --device=eth0 --onboot=on --ipv6=auto
network  --hostname=localhost.localdomain

# Root password
rootpw kingsoft
# 密码加密
#rootpw  --iscrypted $6$Ka7MzfgRm5CS9N22$cMgIl

#Firewall configuration
#禁用防火墙
firewall --disabled

#SELinux configuration
#禁用selinux
selinux --disabled

# System services
services --enabled="chronyd"
# System timezone
timezone --isUtc Asia/Shanghai
# System bootloader configuration
bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=vda
# Partition clearing information
clearpart --all --initlabel --drives=vda
# Disk partitioning information
part / --fstype="ext4" --ondisk=vda --grow

%packages
@^minimal-environment
-NetworkManager*
telnet
net-tools
vim

%end

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

%post
#yum install -y http://10.0.2.2:8080/rpm/elfin-1.1.3-0.cloud.el6.x86_64.rpm
%end

%anaconda
%end
reboot

Ubuntu 模板

#Generic Kickstart template for Ubuntu
#Platform: x86 and x86-64
#

#System language
lang en_US

#Language modules to install
langsupport en_US

#System keyboard
keyboard us

#System mouse
mouse

#System timezone
timezone America/New_York

#Root password
rootpw --disabled

#Initial user (user with sudo capabilities) 
user ubuntu --fullname "Ubuntu User" --password root4me2

#Reboot after installation
reboot

#Use text mode install
text

#Install OS instead of upgrade
install

#Installation media
cdrom
#nfs --server=server.com --dir=/path/to/ubuntu/
#url --url http://server.com/path/to/ubuntu/
#url --url ftp://server.com/path/to/ubuntu/

#System bootloader configuration
bootloader --location=mbr 

#Clear the Master Boot Record
zerombr yes

#Partition clearing information
clearpart --all --initlabel 

#Basic disk partition
part / --fstype ext4 --size 1 --grow --asprimary 
part swap --size 1024 
part /boot --fstype ext4 --size 256 --asprimary 

#Advanced partition
#part /boot --fstype=ext4 --size=500 --asprimary
#part pv.aQcByA-UM0N-siuB-Y96L-rmd3-n6vz-NMo8Vr --grow --size=1
#volgroup vg_mygroup --pesize=4096 pv.aQcByA-UM0N-siuB-Y96L-rmd3-n6vz-NMo8Vr
#logvol / --fstype=ext4 --name=lv_root --vgname=vg_mygroup --grow --size=10240 \
--maxsize=20480
#logvol swap --name=lv_swap --vgname=vg_mygroup --grow --size=1024 --maxsize=8192

#System authorization infomation
auth  --useshadow  --enablemd5 

#Network information
network --bootproto=dhcp --device=eth0

#Firewall configuration
firewall --disabled --trust=eth0 --ssh 

#Do not configure the X Window System
skipx

Ubuntu 配置参考

配置文件详细解析

RedHat Kickstart选项详情

kickstart的配置文件格式

  1. 命令部分(必选项)

    配置系统的属性及安装中的各种必要设置信息,如语言、键盘类型、时区等信息

  2. 设定需要安装的软件包及包组,Anaconda会自动解决依赖关系

    使用%packages指明开始,%end指明结束.包组以@开始标明,软件名可以直接写,但每个之间需要换行

  3. 安装前脚本

    使用%pre指明开始,%end指明结束,将每个命令写一行

  4. 安装后脚本

    使用%post指明开始,%end指明结束,将每个命令写一行

Kickstart文件参数说明

必选命令:

  • keyboard: 设置键盘类型,一般为us

    keyboard us
    
  • lang: 设置系统语言

    lang en_US
    lang zh_CN
    
  • timezone: 设置系统时区

    timezone Asia/Shanghai
    
  • auth/authconfig: 设置系统的认证方式

    auth --useshadow --passalgo=sha512
    
  • rootpw: 设置root的密码

    rootpw abcde123
    rootpw --iscrypted $1$iRHppr42$VMesh73wBqhUTjKp6OYOD.
    可以使用以下命令生成加密的密码串
    python -c 'import crypt; print(crypt.crypt("My Password"))'
    
  • bootloader: 设定bootloader安装选项

    bootloader --location=mbr --append=“rhgb quiet” --driveorder=sda,sdb
    --append= 可以指定内核参数
    --driveorder= 设定设备BIOS中的开机设备启动顺序
    --location= 设定引导记录的位置; mbr:默认值;partition:将boot loader安装于包含kernel的分区超级快
    
  • reboot/halt/poweroff: 系统安装完成后的操作(重启、关机)

    reboot:  系统安装完成后重启系统,同shutdown -r
    halt:    系统安装完成后关闭系统,同shutdown -h
    poweroff:系统安装完成后关闭系统并断电,同shutdown -p
    

自选项:

  • install/upgrade: 安装类型

    install:全新安装
    upgrade:升级安装
    
  • cdrom/url/harddrive: 安装介质

    - cdrom 安装源为本地的光驱
    
    - url 指明安装源为远程的ftp、http方式安装
    
      url --url ftp://<username>:<password>@install.example.com/iso
      url --url http://install.example.com/iso
      url --url=http://172.16.0.1/cobbler/ks_mirror/Centos-6.7-x86_64
    
    - harddrive 指明安装源为本地的硬盘
      harddrive --partition=/dev/sdb2 --dir=/data/iso
    
    - nfs 指明安装源为NFS服务
      nfs --server=192.168.1.254 --dir=/data/iso
    
  • clearpart:在建立新分区前清空系统上原有的分区表,默认不删除分区

    clearpart --all
    clearpart --drives=hda,hdb --all --initlabel
    
    -all 擦除系统上原有所有分区;
    --drives 删除指定驱动器上的分区
    --initlabel 初始化磁盘卷标为系统架构的默认卷标
    --linux 擦除所有的linux分区
    --none(default)不移除任何分区
    
  • zerombr: 清除mbr信息,会同时清空系统原有分区表

    使用 clearpart --all 时,需要加上这个选项,否则安装过程会被暂停,需要手动选择
    
  • drivedisk: 指定驱动程序盘位置以便加载存储驱动

    1. 将驱动盘拷贝到本地硬盘某分区根目录:
    drivedisk <partition> [ --type=<fstype> ]
    2. 也可以指定一个网络位置加载驱动程序盘
    drivedisk --source=ftp://path/to/drive.img
    drivedisk --source=http://path/to/drive.img
    drivedisk --source=nfs:host://path/to/drive.img
    
  • firewall: 配置防火墙选项

    firewall --enable --trust eth0 --trust eth1 --port=80:tcp
    firewall —service=ssh :表示启用防火墙,但行了ssh
    firewall —disabled
    --enable 拒绝外部发起的任何主动连接;
    --disable 不配置任何iptables防御规则;
    --trust 指定完全信任网卡设备;
    --port 使用port:protocol格式指定可以通过防火墙的服务;
    
  • selinux:配置selinux选项,默认选项为enforcing

    selinux [ --disabled|–-enforcing|--premissive ]
    
  • graphical/text:指定安装时的图形、文本模式

    graphical:安装时使用图形化界面
    text: 安装时使用文本方式界面安装
    
  • key: 设置一个安装码,用于获取redhat的官方支持服务

    --skip,表示跳过key设置,如果不设备会跳到交互模式,让用户选择
    
  • network:设置主机的网络,在远程安装的模式下,必须指定

    network —onboot no —device eth0 —bootproto dhcp —noipv6
    network --bootproto=static --ip=10.0.2.15 --netmask=255.255.255.0 --gateway=10.0.2.254 --nameserver 192.168.2.1,192.168.3.1
    
  • service: 设置禁用或允许列出的服务

    services --disabled autid,cups,smartd,nfslock
    --disabled 设置服务为禁用
    --enabled 启动服务
    
  • part: 设置磁盘分区

    part /boot --fstype ext4 --size=100000
    part / --fstype=ext4 --onpart=sda1
    part pv.008 --size=10240
    volgroup vg0 --pesize=8192 pv.008
    logvol / --fstype=ext4 --name=root --vgname=vg0 --size=1024
    logvol swap --name=swap --vgname=vg0 --size=1024
    logvol /usr --fstype=ext4 --name=usr --vgname=vg0 --size=1024
    logvol /var --fstype=ext4 --name=var --vgname=vg0 --size=2048
    
    part  <mntpoint>|swap|pv.id|rdid.id  options
    mntpoint:挂载点,是在创建普通分区时指定新分区挂载位置的项;挂载点需要格式正确
    swap: 创建swap分区;
    raid.id:  表示创建的分区类型为raid型;必须用id号进行唯一区别;
    pv.id:  表示所创建的分区类型为LVM型;必须用唯一id号进行区别;
    --size=  设置分区的最小值,默认单位为M,但是不能写单位;
    --grow  让分区自动增长利用可用的磁盘空间,或是增长到设置的maxsize值;
    --maxsize 设置分区自动增长(grow)时的最大容量值,以M为单位,但不能写单位;
    --onpart=/--usepart=     设置使用原有的分区;
    --noformat    设置不格式化指定的分区,在跟—onpart一同使用时,可以避免删除原有分区上的数据,在新安装的系统中保留使用数据;
    --asprimary    强制制定该分区为主分区;若指定失败,分区会失败,导致安装停止;
    --fstype=    新增普通分区时指定分区的类型,可以为ext2、ext3、ext4、swap、vfat及hfs;
    --ondisk=/--ondrive=     设定该分区创建在一个具体的磁盘上;
    --start   指定分区以磁盘上那个磁道开始;需要跟--ondisk参数一块使用;
    --end    指定分区以磁盘上那个磁道结束;需要跟上述两个参数一起使用;
    --recommended:让系统自行决定分区的大小;在创建swap分区时,若RAM<2G,则分区大小为2*RAM;若RAM>=2G时,分区大小为RAM+2G;
    --bytes-pre-inode=    指定分区格式化时inode的大小;默认值为4096
    --fsoptions=    指定创建fstab文件时该分区挂载参数项;
    
    
    
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,271评论 5 466
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,725评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,252评论 0 328
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,634评论 1 270
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,549评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 47,985评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,471评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,128评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,257评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,233评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,235评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,940评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,528评论 3 302
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,623评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,858评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,245评论 2 344
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,790评论 2 339