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. 组件通信之全局事件总线 & 消息订阅发布

    全局事件总线 介绍 一种组件间通信的方式,适用于任意组件间通信. 在使用全局事件总线之前需要一些知识准备 所有组件实例的原型对象的原型对象就是 Vue 的原型对象,即VueComponent.prot ...

  2. S2-002漏洞分析

    漏洞概述 Struts2-002是一个 XSS 漏洞,该漏洞发生在 <s:url> 和 <s:a>标签中,未对标签内字符进行转义,当标签的属性 includeParams=al ...

  3. Java 源码如何分析?

    如何阅读源码?万事开头难,源码从哪里开始看?我也是刚对源码的阅读研究不深,但是可以谈谈自己的源码阅读感受. 刚开始吧,只是对某些代码的实现原理感到好奇,好奇是怎么实现这种功能,实现这种效果的,对其背后 ...

  4. c++学习笔记(九)

    引用(reference) 概念 引用变量是一个别名,也就是说,它是某个已存在变量的另一个名字. 一旦把引用初始化为某个变量,就可以使用该引用名称或变量名称来指向变量. 用法 变量名称是变量附属在内存 ...

  5. FZU ICPC 2020 寒假训练 6 —— 字符串处理

    P1603 斯诺登的密码 题目描述 2013年X月X日,俄罗斯办理了斯诺登的护照,于是他混迹于一架开往委内瑞拉的飞机.但是,这件事情太不周密了,因为FBI的间谍早已获悉他的具体位置--但这不是最重要的 ...

  6. Java的脚本机制、编译器API

    学习 xxl-job 定时任务时了解到基于 JVM 的 Grovvy 脚本语言.搭建 Jenkins 时知道了编译API 1. Java 脚本机制 Java 的脚本 API 可以让我们调用 JavaS ...

  7. [loj3180]天桥

    考虑将所有交点作为关键点来建图跑最短路,但图上的关键点数量最坏为$o(nm)$,需要优化 当$s=0$且$g=n-1$的部分分,有以下结论: 1.对于一段天桥$([l,r],y)$,不会从$(r,y) ...

  8. 【CSS】水平居中和垂直居中

    水平居中和垂直居中 2019-11-12  15:35:37  by冲冲 1.水平居中 (1)父级元素是行内元素,子级元素是行内元素,子级元素水平居中 ① 设置父级元素为块级元素 display:bl ...

  9. 【JavaSE】类与类的关系--UML

    类(对象/接口)之间的关系 -- UML类图展现 2019-07-14  14:37:19  by冲冲 在面向对象程序设计时,类与类之间的关系主要分为:继承,实现,依赖,关联,聚合,组合等6种关系. ...

  10. C/C++ Qt 给ListWidget增加右键菜单

    在上一篇博文<C/C++ Qt ListWidget 列表框组件应用>中介绍了ListWidget组件的基本使用技巧,本次将给ListWidget组件增加一个右键菜单,当用户在ListWi ...