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

  • 相关阅读:
    013.ES6 -对象字面量增强型写法
    012. ES6
    011. ES6 语法
    10. 9. Vue 计算属性的setter和getter 以及 计算属性的缓存讲解
    4. Spring MVC 数据响应方式
    3. SpringMVC 组件解析
    9. Vue 计算属性
    【洛谷 2984】给巧克力
    【洛谷 1821】捉迷藏 Hide and Seek
    【洛谷 1821】银牛派对Silver Cow Party
  • 原文地址:https://www.cnblogs.com/liangjindong/p/9080985.html
Copyright © 2011-2022 走看看