zoukankan      html  css  js  c++  java
  • KickStart自动化安装Linux

    anaconda: 系统安装程序

    工作模式

    gui:图形窗口

    tui: 基于图形库curses的文本窗口

    安装程序启动过程

    • MBR:isolinux/boot.cat
    • stage2: isolinux/isolinux.bin
    • 配置文件:isolinux/isolinux.cfg

    每个对应的菜单选项:
    加载内核:isolinuz/vmlinuz 向内核传递参数:append initrd=initrd.img ...

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

    默认启动GUI接口

    若是显式指定使用TUI接口:向内核传递text参数即可

    (1)按tab键,在后面增加text
    (2)按ESC键:boot: linux text

    anaconda工作过程

    Anaconda安装系统分成三个阶段:

    1、安装前配置阶段

    安装过程使用的语言
        键盘类型
        安装目标存储设备:本地磁盘或特殊设备
    设定主机名
    配置网络接口
    时区
    管理员密码
    设定分区方式及MBR的安装位置
    创建一个普通用户
    选定要安装的程序包

    2、安装阶段

    在目标磁盘创建分区,执行格式化操作等

    将选定的程序包安装至目标位置

    安装bootloader和initramfs

     

    3、图形模式首次启动

    iptables

    selinux

    core dump 

    单机安装

    在之前我们安装单机Linux,一般是用图形界面安装,使用的安装工具是anaconda,安装完成之后在/root目录下会生成一个anaconda.cfg文件,这个文件是对整体安装的一个总结,包括网络设置,键盘设置,分区情况等。这个文件的第一行说明此文件是按照Kickstart格式生成的

    # Kickstart file automatically generated by anaconda.

    自动安装

    在实际的工作环境中,服务器数量非常多,这样就引入了自动化安装工具Kickstart,可以通过预先配置安装策略,完成一键安装。

    安装kickstart rpm

    yum install system-config-kickstart

    制作安装策略文件

    1、在带有图形界面功能的SSH客户端如xmanager中启动kickstart

    system-config-kickstart

    2、基本配置(Basic configuration)

    3、配置安装方法(Installation Method)

    安装方法指通过什么途径获取Linux安装源文件。这里选择CD-ROM,后续可以根据需要手动更改配置文件去适配不同的安装方法,

    4、bootload配置(BootLoader Options)

    在红色的框内,可以指定更改Kernel的参数

    5、磁盘分区(Partition Information)

    6、网络配置(Network Configuration)

    可以选择动态分配如果网络内有DHCP服务器,也可以选择静态指定

    7、防火墙策略配置()

    8、图形参数配置(Display Configuration)

    9、选择要安装的包(Package Configuration)、预安装脚本设置(Pre-installation Script)

    根据自已的要求设定

    10、后执行脚本设置(Post-installation Script)

    11、最后一步,保存ks.cfg到指定的目录

    注意:在CentOS7上运行system-config-kickstart,默认package项目不可选


    解决方案:把/etc/yum.repos.d下的*.repo的第一项目更改为

    [development]

    重新执行system-config-kickstart

    自动安装实战

    1、制作自动安装光盘(包括两个安装选项最小化安装和图形化安装)

    1.1 把光盘上的所有文件copy到/data目录下,并且改名为centos6

    cp -rv /misc/cd/ /data/centos6

    1.2 创建目录,编辑ks.cfg

    mkdir ksdir

    copy /root/ks.cfg /data/centos6/ksdir

    制作两个cfg:

    ks6_mini.cfg

    ks6_desktop.cfg

    区别是ks6_desktop.cfg增加了@kde-desktop的安装包

    1.3 备份/data/centos6/repodata下的xml文件为包组信息


    cp 43d8fd068164b0f042845474d6a22262798b9f0d1f49ad1bf9f95b953089777d-c6-x86_64-comps.xml /root/

    1.4 清空/data/centos6/repodata

            rm -fr  *

    1.5把xml文件copy back

    cp /root/43d8fd068164b0f042845474d6a22262798b9f0d1f49ad1bf9f95b953089777d-c6-x86_64-comps.xml .

    1.6 生成新的repodata

    在/data/centos6目录下

    createrepo -g repodata/43d8fd068164b0f042845474d6a22262798b9f0d1f49ad1bf9f95b953089777d-c6-x86_64-comps.xml .(此处有一点,代表当前目录 )

     1.7 删除所有的TRANS.TBL

    find -name TRANS.TBL -exec rm {} ;

    1.8 编辑启动显示

    isolinux.cfg

    label desktop
    menu label Install an ^desktop system
    kernel vmlinuz
    append initrd=initrd.img ks=cdrom:/ksdir/ks6_desktop.cfg
    label mini
    menu label Install an ^mini system
    kernel vmlinuz
    append initrd=initrd.img ks=cdrom:/ksdir/ks6_mini.cfg
    label local
    menu default(建议把menu defalut设置在这里,防止硬盘上有系统在安装倒记时结束时,新安装系统覆盖硬盘的系统,导致数据丢失)
    menu label Boot from ^local drive
    localboot 0xffff

    1.9 制作光盘

    mkisofs -R -J -T -v --no-emul-boot --boot-load-size 4 --boot-info-table -V "CentOS 6.9 x86_64 boot" -b isolinux/isolinux.bin -c isolinux/boot.cat -o /root/CentOS-6.9-x86-64-Everythingbootable.iso /data/centos6/

    1.10 新建虚拟机,硬盘至少大于ks文件分区的最小值,从新制作的光盘启动

    1.11 进入启动界面

    1.12 选择前两选任意一项,安装

    2、制作引导光盘和U盘

    要求:此关盘和U盘只起引导作用,所以本身比较小,可以通过修改

    ks6_mini.cfg

    ks6_desktop.cfg

    url --url="http://172.20.0.1/centos/6" 指向http的安装源

    2.1  copy光盘isolinux目录到本机/data/myiso

    2.2  创建ksdir文件,编写ks6_mini.cfg,ks6_desktop.cfg

    2.3  编辑ks6_desktop.cfg如上

    2.4  制作启动光盘

    mkisofs -R -J -T -v --no-emul-boot --boot-load-size 4 --boot-info-table -V "CentOS 6.9 x86_64 boot" -b isolinux/isolinux.bin -c isolinux/boot.cat -o /root/boot.iso /data/myiso/

    2.5 安装新的虚拟机

    从boot.iso启动

    2.6 做可以启动的USB

    isohybrid boot.iso

    dd if=boot.iso of=/dev/sdb(此处是用挂载一块新的虚拟机硬盘实验的)

    3、制作LVM分区的模板

    part /boot --fstype="ext4" --size=200 (boot分区无法识别LVM)

    volgroup vg_centos69 --pesize=4096 pv.008002

    logvol /data --fstype=ext4 --name=lv_data --vgname=vg_centos69 --size=50248
    logvol / --fstype=ext4 --name=lv_root --vgname=vg_centos69 --size=100000
    logvol swap --name=lv_swap --vgname=vg_centos69 --size=2048

     

    ks文件中加入在boot分区之后:

    part pv.008002 --grow --size=200

    测试,用此ks配置文件生成boot.iso,新建虚拟机,从boot.iso启动,安装成功

    NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
    sda 8:0 0 200G 0 disk
    ├─sda1 8:1 0 200M 0 part /boot
    └─sda2 8:2 0 199.8G 0 part
    ├─vg_centos69-lv_root (dm-0) 253:0 0 97.7G 0 lvm /
    ├─vg_centos69-lv_swap (dm-1) 253:1 0 2G 0 lvm [SWAP]
    └─vg_centos69-lv_data (dm-2) 253:2 0 49.1G 0 lvm /data

  • 相关阅读:
    HTML基础之HTML标签-html header(meta,title) html body(p,br,h,form,div,span,input,lable)
    day5_非空即真非零即真
    day5_不能循环删除list-深拷贝、浅拷贝(import copy)
    day5_函数返回值
    day4_局部变量和全局变量
    day5_函数的参数
    python字符串与列表的相互转换
    python自动化返回:no tests were fount Empty test suite
    读取Excel数据封装
    测试工程题
  • 原文地址:https://www.cnblogs.com/liangjindong/p/9080985.html
Copyright © 2011-2022 走看看