kickstart

运维自动化发展历程及技术应用

安装程序
    CentOS系统安装
        系统启动流程:
            bootloader-->kernel(initramfs)-->rootfs-->/sbin/init
        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安装系统分成三个阶段:
    安装前配置阶段
        安装过程使用的语言
        键盘类型
        安装目标存储设备
            Basic Storage:本地磁盘
            特殊设备:iSCSI
        设定主机名
        配置网络接口
        时区
        管理员密码
        设定分区方式及MBR的安装位置
        创建一个普通用户
        选定要安装的程序包
    安装阶段
        在目标磁盘创建分区,执行格式化操作等
        将选定的程序包安装至目标位置
        安装bootloader和initramfs
    图形模式首次启动
        iptables
        selinux
        core dump

系统安装
    启动安装过程一般应位于引导设备;后续的anaconda及其安装用到的程序包等可来自下面几种方式:
        本地光盘
        本地硬盘
        NFS
        URL:
            ftp server: yum repository

            http server: yum repostory



    如果想手动指定安装源:

            boot: linux askmethod

    anaconda的配置方式:

            (1) 交互式配置方式
            (2) 通过读取事先给定的配置文件自动完成配置
                按特定语法给出的配置选项
                        kickstart文件
    安装boot引导选项:
            boot:        因为存放的是引导所以,不能使用逻辑卷的方式
            text: 文本安装方式
            askmethod: 手动指定使用的安装方法
    与网络相关的引导选项:
            ip=IPADDR
            netmask=MASK
            gateway=GW
            dns=DNS_SERVER_IP
            ifname=NAME:MAC_ADDR
    与远程访问功能相关的引导选项:
            vnc
            vncpassword='PASSWORD'
    指明kickstart文件的位置: ks=
            DVD drive: ks=cdrom:/PATH/TO/KICKSTART_FILE
            Hard drive: ks=hd:device:/directory/KICKSTART_FILE
            HTTP server: ks=http://host:port/path/to/KICKSTART_FILE
            FTP server: ks=ftp://host:port/path/to/KICKSTART_FILE
            HTTPS server: ks=https://host:port/path/to/KICKSTART_FILE
            NFS server:ks=nfs:host:/path/to/KICKSTART_FILE
    启动紧急救援模式:
            rescue     页面按 tab建  然后后添加rescue可以进入救援模式

在此界面按在esc会跳转到boot见面

    官方文档:《Installation Guide》

kickstart文件的格式
    命令段:指明各种安装前配置,如键盘类型等
    程序包段:指明要安装的程序包组或程序包,不安装的程序包等
            %packages
            @group_name
            package
            -package
            %end
    脚本段:
            %pre: 安装前脚本
        运行环境:运行于安装介质上的微型Linux环境
            %post: 安装后脚本
        运行环境:安装完成的系统
    命令段中的命令:
        必备命令
            authconfig: 认证方式配置
            authconfig --useshadow --passalgo=sha512
            bootloader:bootloader的安装位置及相关配置
            bootloader --location=mbr --driveorder=sda –
            append="crashkernel=auto rhgb quiet"
            keyboard: 设定键盘类型
            lang: 语言类型
            part: 创建分区
            rootpw: 指明root的密码
            timezone: 时区
        可选命令
            install OR upgrade
            text: 文本安装界面
            network
            firewall
            selinux
            halt
            poweroff
            reboot
            repo
            user:安装完成后为系统创建新用户
            url: 指明安装源
            key –skip 跳过安装号码,适用于rhel版本

kickstart文件创建
    创建kickstart文件的方式
        直接手动编辑
            依据某模板修改
        可使用创建工具:system-config-kickstart
            依据某模板修改并生成新配置
            /root/anaconda-ks.cfg
    检查ks文件的语法错误:ksvalidator
        ksvalidator /PATH/TO/KICKSTART_FILE

centos6 kickstart URL创建过程
    需先安装 system-config-kickstart包

然后再图形界面输入systemctl-config-kickstart就会生成可选择图形界面



可以配置kernel参数,最好好设置跳过selinux检测

分区必须将几个常用的分区分配好,否者在创建时会有报错

执行完后,点file-->save 会自动生成一个应答文件

生成后,将空系统,挂上光盘输出,系统盘必须与要安装的系统的版本对应,否者会有报错

如果网络和配置文件都没有问题的话,就会自动开始安装系统了

centos7 kickstart URL创建过程
      centost7 kickstart 制作方法与 centos6制作的方法类似,但要注意的是安装时光盘的应道必须是同版本的才行
            且centos7 选址kickstart 时候需注意,package selection 默认是服无法选择的       


        但是 只需要将yum的base源名称改为development即可



目前,还存在一个问题 自动安装的centos7会有一个授权问题,安装好7之后会自动要求需要按顺序输入 1--2--c--c

    如果有能解决此问题的朋友,可以留言,谢谢

系统光盘中isolinux目录列表
    isolinux.bin:光盘引导程序,在mkisofs的选项中需要明确给出文件路径,这个文件属于SYSLINUX项目
    isolinux.cfg:isolinux.bin的配置文件,当光盘启动后(即运行isolinux.bin),会自动去找isolinux.cfg文件
    vesamenu.c32:是光盘启动后的安装图形界面,也属于SYSLINUX项目,menu.c32版本是纯文本的菜单
    Memtest:内存检测,这是一个独立的程序
    splash.jgp:光盘启动界面的背景图
    vmlinuz是内核映像
    initrd.img是ramfs (先cpio,再gzip压缩)

制作引导光盘和U盘
    创建引导光盘:
        mkdir –pv /app/myiso
        cp -r /misc/cd/isolinux/ /app/myiso/
        vim /app/myiso/isolinux/isolinux.cfg
            initrd=initrd.img text ks=cdrom:/myks.cfg
        cp /root/myks.cfg /app/myiso/
        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 /app/myiso/
        注意:以上相对路径都是相对于光盘的根,和工作目录无关
    创建U盘启动盘
        dd if=/dev/sr0 of=/dev/sdb

mkisofs选项
    -o 指定映像文件的名称。
    -b 指定在制作可开机光盘时所需的开机映像文件。
    -c 制作可开机光盘时,会将开机映像文件中的 no-eltorito-catalog 全部内容作成一个文件。
    -no-emul-boot 非模拟模式启动。
    -boot-load-size 4 设置载入部分的数量
    -boot-info-table 在启动的图像中现实信息
    -R 或 -rock 使用 Rock RidgeExtensions
    -J 或 -joliet 使用 Joliet 格式的目录与文件名称
    -v 或 -verbose 执行时显示详细的信息
    -T 或 -translation-table 建立文件名的转换表,适用于不支持 Rock Ridge Extensions 的系统上

猜你喜欢

转载自blog.csdn.net/shi7876061/article/details/80648029