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. mybatis之结果集的映射方式

    查询的几种情况 // 1)查询单行数据返回单个对象 public Employee getEmployeeById(Integer id ); // 2) 查询多行数据返回对象的集合 public L ...

  2. 组件通过props属性传值

    组件之间的传值 组件是一个单独功能模块的封装,有属于自己的data和methods,一个组件的 data 选项必须是一个函数 为什么必须是函数:因为只有当data是函数时,不同实例调用同一个组件时才会 ...

  3. mybatis插入数据时处理为null的属性

    在做项目的时候,数据库中的所有字段被设置为全都不能为null,但是在我们开发过程中,插入一些记录的时候,实体类中的一些字段如果页面没有传入,则默认就会被设置为null,这样的话,在执行插入语句的时候, ...

  4. 如何实现异步 connect

    写过网络程序的同学,应该都知道 connect 函数,在 socket 开始读写操作之前,先要进行连接,也即 TCP 的三次握手 , 这个过程就是在 connect 函数中完成的, connect 函 ...

  5. 菜鸡的Java笔记 简单JAVA 类的开发原则以及具体实现

    /*  现在要求定义一个雇员信息类 在这个类之中包含有雇员编号 姓名 职位 基本工资 佣金等信息    对于此时给定要求实际上就是描述一类事物,而这样的程序类在在java之中可以将其称为简单java类 ...

  6. 还有这种好事!netty自带http2的编码解码器framecodec

    目录 简介 Http2FrameCodec Http2Frame.Http2FrameStream和Http2StreamFrame Http2FrameCodec的构造 Stream的生命周期 流控 ...

  7. shell常用集锦

    该文整理一些常用的shell用法,及语法,并非介绍如何使用 变量 变量可分为两类:环境变量ENV(全局)和局部变量. bash环境变量 变量名 含义 _= 上一条命令的最后一个参数 BASH_VERS ...

  8. Java LinkedList小记

    1. 基本用法 LinkedList实现了List.Deque.Queue接口,可以按照队列.栈和双端队列的方式进行操作.LinkedList有两个构造方法,一个是默认构造,另一个接受Collecti ...

  9. 「日志」Navicat统计的行数竟然和表实际行数不一致

    背景 近期为了保障线上数据库的稳定性,我决定针对一些大表的历史数据有计划地进行备份迁移,但是呢,发现一个奇特的现象,Navicat统计行数和表自身count统计数竟然不一致!?0.0 Navicat ...

  10. CF1368E Ski Accidents

    读懂题是第一要素. 考虑把点集分割为:\(A,B,C\) 首先把所有入度为\(0\)的点加入\(A\) 然后对所有入边只来自\(A\)的点加入\(B\) 然后对所有入边只来自\(B\)的点加入\(C\ ...