1. 概念:

自动安装的脚本,这篇文章以RHEL6.8为例

kickstart for RHEL6.8官方教程:https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Migration_Planning_Guide/sect-Migration_Guide-Installation-Graphical_Installer-Kickstart.html

1.1 安装程序:anaconda,有tui(基于cureses的文本配置窗口)和gui(图形界面)两种

1.2 启动顺序:bootloader --> kernel(initrd(rootfs)) --> anaconda

MBR:boot.cat

||

V

Stage2:执行isolinux/isolinux.bin

  读取配置文件isolinux/isolinux.cfg,其中重要选项有

    加载内核:isolinux/vmlinuz

    向内核传递参数:append  initrd=initrd.img

||

V

装载根文件系统,并启动anaconda

  默认界面是图形界面:需要512MB+内存空间

  若需要显式指定启动TUI接口: 向启动内核传递一个参数"text"即可

  按ESC键可以键入boot命令行,键入linux text即可正常启动

  键入linux method,即可手动指定仓库

1.3 anaconda的工作过程

1.3.1 安装前配置阶段
  安装过程使用的语言;
  键盘类型
  安装目标存储设备
  Basic Storage:本地磁盘
  Special Storage: iSCSI
  设定主机名
  配置网络接口
  时区
  管理员密码
  设定分区方式及MBR的安装位置;
  创建一个普通用户;
  选定要安装的程序包;
1.3.2 安装阶段
  在目标磁盘创建分区并执行格式化;
  将选定的程序包安装至目标位置;
  安装bootloader;
1.3.3 首次启动
  iptables
  selinux
  core dump

1.4 anaconda的配置方式:
交互式配置方式;
支持通过读取配置文件中事先定义好的配置项自动完成配置;遵循特定的语法格式,此文件即为kickstart文件;

2. 版本:

OS:RHEL6.8

kickstart:system-config-kickstart-2.8.6.6-1.el6.noarch.rpm

3. ks-scripts:

# Kickstart file automatically generated by anaconda.
# version=DEVEL # ==========命令段========== # ----------必备命令--------- # lang 语言类型
# 中文是zh_CN.UTF-8
lang en_US.UTF-8 # keyboard 设置键盘类型
keyboard us skipx # rootpw:管理员密码,会有salt
# 可以使用openssl生成:openssl passwd -1 -salt `openssl rand -hex 4`
rootpw --iscrypted $6$LFw8plSO4ZU9jfXp$oV4ywwfa0BbAVDFLKj/Mqnbbe5lCv/H0DgppcOWbcMc3JjvHsJ5bjncpf795fyxqGt.r3n31NVsVOdO.1mIwS/ # authconfig:认证方式配置
# 下面这个例子是使用shaodw文件储存密码,密码加密方式为sha512
authconfig --enableshadow --passalgo=sha512 # timezone:时区
timezone --utc Asia/Shanghai # bootloader 定义bootloader的安装位置及相关配置
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet" # clearpart:这个选项会清空所有分区
# clearpart --none --drivers=/dev/sda
clearpart --all --initlabel # part:分区布局
# pv.008002在后面创建vg的时候还会用到,是物理分区的标示
part /boot --fstype=ext4 --size=500
part pv.008002 --grow --size=200 # volgroup 创建逻辑卷组
# logvol 创建逻辑卷
volgroup vg_system --pesize=4096 pv.008002
logvol /home --fstype=ext4 --name=lv_home --vgname=vg_system --size=4096
logvol /opt --fstype=ext4 --name=lv_opt --vgname=vg_system --size=4096
logvol / --fstype=ext4 --name=lv_root --vgname=vg_system --size=4096
logvol swap --name=lv_swap --vgname=vg_system --size=4096
logvol /tmp --fstype=ext4 --name=lv_tmp --vgname=vg_system --size=4096
logvol /usr --fstype=ext4 --name=lv_usr --vgname=vg_system --size=4096
logvol /var --fstype=ext4 --name=lv_var --vgname=vg_system --size=4096 # ----------必备命令END--------- # ----------可选命令--------- # 安装操作系统,可以使用install或者upgrade
install # 安装界面类型,test为tui,默认为GUI
text # network:配置网络接口
network --onboot yes --device eth0 --bootproto static --ip 10.30.2.1 --netmask 255.255.255.0 --gateway 10.30.2.254 --noipv6 --nameserver 10.24.2.1 --hostname hctjcobbler # 防火墙配置
# 可以使用firewall --service=ssh来开放ssh的端口
firewall --disabled # selinux配置
# 启用selinux使用:selinux --enforcing
selinux --disabled # 清空mbr
zerombr yes # 配置服务是否启用
services --disabled=avahi-daemon,cups --enabled=auditd # 系统安装完成之后的行为:halt,poweroff或者reboot
reboot # 指明安装时使用的repository
repo --name="ftp" --baseurl=ftp://10.26.2.58/depot/yum/rhel65 --cost=1000 # 指明安装时使用的repository,但为url格式;
url --url ftp://10.26.2.58/depot/yum/rhel65/ # ----------可选命令END--------- # ==========命令段END========== # ==========程序包段==========
# 指明要安装的程序报,以及包组,也包括不安装的程序包
# 以%packages开头%end结尾
# 可以使用 @group_name(安装一组软件)
# package(安装单个软件)
# -package(不安装某个软件)
%packages
@base
@compat-libraries
@console-internet
@core
@debugging
@development
@directory-client
@fonts
@graphical-admin-tools
@hardware-monitoring
@java-platform
@large-systems
@legacy-unix
@legacy-x
@network-file-system-client
@performance
@perl-runtime
@system-management-snmp
@server-platform
@server-policy
@storage-client-multipath
@system-management
@system-admin-tools
@system-management-wbem
@x11
@storage-client-iscsi
mtools
pax
python-dmidecode
oddjob
tunctl
yum-plugin-downloadonly
yum-plugin-versionlock
sgpio
x86info
zsh
ftp
lftp
compat-gcc-34
compat-gcc-34-g77
jpackage-utils
compat-gcc-34-c++
samba-winbind
certmonger
pam_krb5
krb5-workstation
nscd
pam_ldap
nss-pam-ldapd
system-config-lvm
lm_sensors
rsh
rwho
rusers
telnet
tcp_wrappers
finger
ksh
xterm
libXmu
perl-LDAP
perl-DBD-SQLite
ipmitool
OpenIPMI
rrdtool
screen
tree
lsscsi
tog-pegasus
rpm-devel
libuuid.i686
freetype.i686
libSM.i686
libICE.i686
libXau.i686
libxcb.i686
libX11.i686
libXext.i686
libXi.i686
libXrender.i686
libXrandr.i686
libXfixes.i686
libXcursor.i686
expat.i686
fontconfig.i686
zlib.i686
libstdc++.i686
pam.i686
libacl.i686
-pcmciautils
%end
# ==========程序包段END========== # ==========脚本段==========
# %pre:安装前脚本。运行环境:运行安装介质上的微型linux # %post:安装后脚本。运行环境:安装完成的系统; # ==========脚本段END==========

  

4. 安装

4.1 安装引导选项:

ks:指明kickstart文件的位置;

ks=cdrom:/PATH/TO/KICKSTART_FILE #DVD drive
ks=hd:/DEVICE/PATH/TO/KICKSTART_FILE #Hard Driv
ks=http://HOST[:PORT]/PATH/TO/KICKSTART_FILE #HTTP Server
ks=ftp://HOST[:PORT]/PATH/TO/KICKSTART_FILE #FTP Server
ks=https://HOST[:PORT]/PATH/TO/KICKSTART_FILE #HTTPS Server

asknetwork:交互式填入网卡IP地址

text:文本安装方式

method:手动指定使用的安装方法
  与网络相关的引导选项:
    ip=IPADDR
    netmask=MASK
    gateway=GW
    dns=DNS_SERVER_IP
  远程访问功能相关的引导选项:
    vnc
    vncpassword='PASSWORD'
  启动紧急救援模式:
    rescue
  装载额外驱动:
    dd

4.2 kickstart文件的格式(详见脚本上的注释)

4.2.1 命令段:指定各种安装前配置选项,如键盘类型等

4.2.1.1 必备命令:

4.2.1.2 可选命令:

4.2.2 程序包段:

4.2.3 脚本段:

  %pre:安装前脚本。运行环境:运行安装介质上的微型linux

  %post:安装后脚本。运行环境:安装完成的系统;

4.3 kickstart图形工具:

名称:system-config-kickstart-2.8.6.6-1.el6.noarch.rpm

安装:yum install system-config-kickstart

检查语法错误命令:ksvalidator

4.4 安装过程:

4.4.1 光盘安装:

引导光盘制作:

挂载引导光盘到系统文件夹

mount /dev/sr0 /mnt

拷贝所有文件到要制作镜像的文件夹

cp -r /mnt/* /tmp/myboot/

下载ks文件到光盘镜像制作文件夹

wget ftp://10.26.2.58/scripts/kickstart/anaconda-ks2.cfg

制作镜像文件

mkisofs -R -J -T -v --no-emul-boot --boot-load-size 4 --boot-info-table -V "RHEL 6 x86_64 boot" -c isolinux/boot.cat -b isolinux/isolinux.bin -o /tmp/boot.iso   /tmp/myboot/

修改isolinux/isolinux.cfg文件,在需要引导的选项后面指定ks地址

append initrd=initrd.img ks=cdrom:/anaconda-ks.cfg

4.4.2 网络安装:

开机按ESC键进入引导选项

# 使用网络安装

boot: linux ip=10.30.2.1 netmask=255.255.255.0 ks=ftp://10.26.2.58/scripts/kickstart/annaconda-ks.cfg

【Linux】【Basis】【RHEL】KickStart for RHEL6.8的更多相关文章

  1. 【Linux&Unix--open/close/write/read系统调用】

    个人学习整理.如有不足之处,请不吝不吝赐教. 转载请注明:@CSU-Max 系列博文:      Linux&Unix学习第一弹 -- 文件描写叙述符与权限  Linux&Unix学习 ...

  2. 【linux之设备,分区,文件系统】

    一.设备 IDE磁盘的设备文件采用/dev/hdx来命名,分区则采用/dev/hdxy来命名,其中x表示磁盘(a是第一块磁盘,b是第二块磁盘,以此类推), y代表分区的号码(由1开始,..3以此类推) ...

  3. 【linux之挂载,Raid,LVM】

    一.挂载,卸载 挂载:将新的文件系统关联至当前根文件系统卸载:将某文件系统与当前根文件系统的关联关系移除 cat /etc/mtab 存储着已经挂载的文件系统 (跟 mount 一样) mount:显 ...

  4. 【linux之进程管理,系统监控】

    一.进程管理 前台进程:一般是指占据着标准输入和/或标准输出的进程后台进程:不占据默认开启的进程都是前台进程ctrl+C 中断ctrl+z 从前台转入后台bg 后台进程编号 让其在后台运行ls -R ...

  5. 【Linux磁盘优化管理--RAID和LVM】

    在现阶段的企业环境中,为了数据的安全性及完整性必须要有一个合理的存储方案.面对着每秒可能产生超过几TB的数据,考虑到磁盘能不能实现 热冗余,及扩容,缩容.Linux给出了RAID(磁盘阵列)以及LVM ...

  6. 【Linux 内核网络协议栈源码剖析】网络栈主要结构介绍(socket、sock、sk_buff,etc)

    原文:http://blog.csdn.net/wenqian1991/article/details/46700177 通过前面的分析,可以发现,网络协议栈中的数据处理,都是基于各类结构体,所有有关 ...

  7. 【linux之链接,函数,随机数】

    一.链接 硬链接(hard link):同一个文件使用了多个别名.新建文件是已经存在的一个别名,,当原文件删除时,新建的文件仍然可以使用.硬链接和原来的文件没有什么区别,而且共享一个inode号.通过 ...

  8. 【Linux运维-集群技术进阶】Nginx+Keepalived+Tomcat搭建高可用/负载均衡/动静分离的Webserver集群

    额.博客名字有点长.. . 前言 最终到这篇文章了,心情是有点激动的. 由于这篇文章会集中曾经博客讲到的全部Nginx功能点.包含主要的负载均衡,还有动静分离技术再加上这篇文章的重点.通过Keepal ...

  9. 5.2【Linux 内核网络协议栈源码剖析】socket 函数剖析 ☆☆☆

    深度剖析网络协议栈中的 socket 函数,可以说是把前面介绍的串联起来,将网络协议栈各层关联起来. 应用层 FTP SMTP HTTP ... 传输层 TCP UDP 网络层 IP ICMP ARP ...

  10. 【Linux下安装使用virtualenv与virtualenvwrapper】

    virtualenv virtualenv是一个可以帮助我们管理不同Python环境的绝好工具. virtualenv是一个可以在系统中建立多个不同且相互不干扰的虚拟环境. 下面的步骤将创建两个独立的 ...

随机推荐

  1. Electron结合React,在渲染进程中使用 node 模块

    Electron结合React,在渲染进程中使用 node 模块 问题 将create-react-app与electron集成在了一个项目中.但是在React中无法使用electron.当在Reac ...

  2. STC单片机控制28BYJ-48步进电机

    STC单片机4*4按键控制步进电机旋转 28BYJ-48型步进电机说明 四相永磁式的含义 28BYJ-48工作原理 让电机转起来 最简单的电机转动程序 电机转速缓慢的原因分析 便于控制转过圈数的改进程 ...

  3. HCNP Routing&Switching之BGP团体属性和团体属性过滤器

    前文我们了解了BGP的路由过滤已经as-path过滤器的使用相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15542559.html:今天我们来聊一聊 ...

  4. C# 获取PDF中的数字签名证书

    PDF中的加数字签名是对文档权威性的有效证明.我们在向PDF文档添加签名时,需要准备可信任的签名证书.同时,对已有的签名,可验证签名是否有效,也可以获取文档中的签名证书信息.下面,以C#代码示例展示如 ...

  5. Python进阶(上下文管理器与with语句)

    /*上下文管理器必须有__enter__和__exit__方法*/ class MyResource: def __enter__(self): print('链接资源') return self / ...

  6. Jetpack架构组件学习(1)——LifeCycle的使用

    原文地址:Jetpack架构组件学习(1)--LifeCycle的使用 | Stars-One的杂货小窝 要看本系列其他文章,可访问此链接Jetpack架构学习 | Stars-One的杂货小窝 最近 ...

  7. 2、使用HashOperations操作redis(Hash哈希表)

    文章来源:https://www.cnblogs.com/shiguotao-com/p/10560458.html 方法 c参数 s说明 Long delete(H key, Object... h ...

  8. 同时在多个 Git 分支上工作,老板要榨干我

    背景 上一篇文章 保持清洁的Git提交记录,三招就够了 ,大家看过后有私下留言说这是非常好用的功能,我突然想到工作中用到的另外一个 Git 功能那也是相当好用,必须全盘托出 作为程序员的我们应该都有一 ...

  9. 洛谷 P4002 - [清华集训2017]生成树计数(多项式)

    题面传送门 神题. 考虑将所有连通块缩成一个点,那么所有连好边的生成树在缩点之后一定是一个 \(n\) 个点的生成树.我们记 \(d_i\) 为第 \(i\) 个连通块缩完点之后的度数 \(-1\), ...

  10. Codeforces 1411G - No Game No Life(博弈论+生成函数+FWTxor)

    Codeforces 题面传送门 & 洛谷题面传送门 一道肥肠套路的题目. 首先这题涉及博弈论.注意到这里每一个棋子的移动方式都是独立的,因此可以考虑 SG 定理.具体来说,我们先求出每个棋子 ...