anaconda:kickstart定制自动化安装镜像

一、anaconda程序

   1.anacondaCentOS系列的安装程序,基于内核启动来实现定制自动安装操作

         实现流程:

             --> 启动设备(光盘、u盘模拟出的第一个扇区、网络引导加载器)上的bootloader

             --> 启动设备中的kernel(initrd(rootfs))装载到内存中,不需做根切换,把内存当做硬盘

             --> anaconda当做sbin下的init,借助此程序完成定制自动化安装

   2.anaconda两个界面

      tui:基于cureses的文本配置窗口

      gui:图形界面

       注意:

            1)CentOS 7上光盘启动默认界面是图形界面,需要至少512MB内存空间;

            2)若需要显式指定启动TUI接口:向启动内核传递一个参数"text"即可;

      按下ESC键,之后会有一个boot提示符,在boot提示符之后输入:linux text

   3.CentOS光盘安装过程启动流程

        通过光盘启动引导安装时候,cdrom/isolinux/会当做启动分区,相当于一个boot分区,此过程一般位于引导设备,例如可通过光盘、U盘或网络等;后续的anacona及其安装用到的程序包等可以来自于程序包仓库,此仓库的位置可以为:本地光盘本地硬盘ftp serverhttp servernfs server

        如果想手动指定安装仓库:按下ESC、在boot下输入linuxmethod

           [root@localhost cdrom]# ll  /media/cdrom/isolinux/ 

wKiom1aHklvygqARAATw0B5_oho838.jpg

        (1)MBR:cdrom/isolinux/boot.cat光盘上的引导加载器,相当于Bootloader

        (2)Stage2:isolinux/isolinux.bin配置文件:isolinux/isolinux.cfg

       每个对应的菜单选项:[root@localhostisolinux]# cat isolinux.cfg

   加载内核:isolinux/vmlinuz

  向内核传递参数:append  initrd=initrd.img

wKioL1aHko-DGKouAAEyXR4eGgY238.jpg

        (3)splash.png:启动装载时的背景图片

        (4)装载根文件系统,并启动anaconda

   4.anaconda的工作过程阶段

      (1)安装前配置阶段

  安装过程使用的语言 ---> 键盘类型---> 安装目标存储设备 ---> 设定主机名 ---> 配置网络接口 --->

 时区 ---> 管理员密码---> 设定分区方式及MBR的安装位置 --->创建一个普通用户 ---> 选定要安装的程序

      (2)安装阶段

    在目标磁盘创建分区并执行格式化;

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

   安装bootloader;

      (3)首次启动会要求配置 (此部分操作非必须完成)

             1)系统安装完成之后禁用防火墙操作

CentOS6:

#service iptables  stop

#chkconfig  iptables  off

CentOS7:

#systemctl  stop  firewalld.service

#systemctl  disable  firewalld.service

             2)系统安装完成后禁用SELinux:

    方法一:配置文件,编辑/etc/sysconfig/selinux或/etc/selinux/config文件,

                     修改SELINUX参数的值为下面其中之一,改为permissive或者disabled

wKioL1aHkpPRq72xAAIT-_QvP0I620.jpg

    方法二:命令立即生效方式

            # getenforce

           # setenforce  0

             3)core dump核心转储,内核崩溃时将内存中所有数据创建映像文件保存在磁盘上可取出分析崩溃原因

    5.anaconda的配置方式:

      (1)交互式配置方式:基于图形化界面

      (2)kickstart文件配置文件方式:

  支持通过读取配置文件中事先定义好的配置项自动完成配置;遵循特定的语法格式

        安装引导命令提示符boot下可进行输入选项来配置

  1)text:文本安装方式

  2)method:手动指定使用的安装方法

  3)与网络相关的引导选项:

ip=IPADDR

netmask=MASK

gateway=GW

dns=DNS_SERVER_IP

   4)远程访问功能相关的引导选项:

vnc

vncpassword='PASSWORD'

  5)rescue启动紧急救援模式:

  6)dd装载额外驱动:

 

 

 

二、kickstart文件配置

   1.kickstart:在/root目录上有一个模板样式的anaconda-ks.cfg配置文件

       [root@localhost /]# cat /root/anaconda-ks.cfg

wKiom1aHknORRxj_AADollzODMc362.jpg

   2.boot命令行下安装引导时候可以通过不同方式加载ks.cfg文件

            ks:指明kickstart文件的位置;ks=**表示

DVDdrive: ks=cdrom:/PATH/TO/KICKSTART_FILE

HardDrive: ks=hd:/DEVICE/PATH/TO/KICKSTART_FILE

HTTPServer: ks=http://HOST[:PORT]/PATH/TO/KICKSTART_FILE

FTPServer: ks=ftp://HOST[:PORT]/PATH/TO/KICKSTART_FILE

HTTPSServer:  ks=https://HOST[:PORT]/PATH/TO/KICKSTART_FILE

   3.kickstart文件的格式

# Kickstart file  automatically generated by anaconda.


#version=DEVEL


install

url  --url=http://172.16.0.1/cobbler/ks_mirror/CentOS-6.7-x86_64/

lang  en_US.UTF-8 

keyboard us

network --onboot  yes --device eth0 --bootproto dhcp --noipv6

rootpw  --iscrypted  $6$CGsqab6d$Cd.PnnWtlL5XZAyr9J2zoMqyJH1QodcDp1pQp0uZ1f0Cq4eq9.TMkSQU6IfpvYZEYc32.lmF0lKuQwavnC49

# Reboot after  installation

reboot

firewall  --disabled

authconfig  --useshadow  --passalgo=sha512

selinux --disabled

timezone  Asia/Shanghai

bootloader  --location=mbr --driveorder=sda --append="crashkernel=auto  crashkernel=auto rhgb rhgb quiet quiet"

# The following is  the partition information you requested

# Note that any  partitions you deleted are not expressed

# here so unless  you clear all partitions first, this is

# not guaranteed  to work

#clearpart --all

#part /boot  --fstype=ext4 --size=200

#part pv.008002  --size=61440

#volgroup vg0  --pesize=8192 pv.008002

#logvol /  --fstype=ext4 --name=root --vgname=vg0 --size=20480

#logvol swap  --name=swap --vgname=vg0 --size=2048

#logvol /usr  --fstype=ext4 --name=usr --vgname=vg0 --size=10240

#logvol /var  --fstype=ext4 --name=var --vgname=vg0 --size=20480

repo  --name="CentOS"   --baseurl=http://172.16.0.1/cobbler/ks_mirror/CentOS-6.7-x86_64/  --cost=100

安装或升级(可选upgrade)

指明安装时候使用的仓库

语言段、编码格式

设定键盘类型

 

管理员密码

 

 

 

 

认证方式配置

Selinux是否启动

指定时区

定义bootloader相关配置

 

[分区布局和使用方式]

 

 

 

清除磁盘分区

放置分区、文件类型、大小

创建物理卷[pv.ID]

创建卷组

创建逻辑卷

 

 

指明安装时候使用的仓库

cost:开销

%packages

@Base

@Core

@base

@basic-desktop

@chinese-support

@client-mgmt-tools

@core

@desktop-platform

@fonts

@general-desktop

@graphical-admin-tools

@legacy-x

@network-file-system-client

@perl-runtime

@remote-desktop-clients

@x11

lftp

tree

%end

程序包段:

 

 

 

 

中文支持包

 

 

 

 

 

 

 

 

 

 

 

 

%post

echo -e 'Mage  Education Learning Services\nhttp://www.magedu.com\n' >> /etc/issue

sed -i  '1,$s@id:[0-9]:initdefault:@id:3:initdefault:@g' /etc/inittab

[ ! -d /root/.ssh  ] && mkdir /root/.ssh && chmod og=--- /root/.ssh

cat >>  /root/.ssh/authorized_keys << EOF

ssh-rsa  AAAAB3NzaC1yc2EAAAABIwAAAQEAlmq1z0G/7wbGuSUewfXlFnwzqCg/myqTi/AwP8LP+JJ49xzIKMzpeWXHD8RWIf5RlDzo+6N7uPK5O22x/QtMosi0egz4shavEJeUkO0EH+KygXXgBIGuMWmAsL+yzbgWXT9H3zdzXi/qWcrBeBv2nYB5mpYSf7o0xqdhCst1MTfcYLD8qxvkwC8RiqBA/1u9N6jeDFbHO+UzZYYCr9zgk9uz4Rrhb9BU7c1GhjUCgRwBDAuo47IHw/OT6KS9lb8lT2R/ujVoDARy/eOhw8cAFXo+QcvzNSW2qKf/Qo21uR/wz2u9SRV0lvUDNSvC2PYtR+iPlDwHY81md430yiNf9=  [email protected]

EOF

ClientName=`ifconfig  eth0 | awk '/inet addr:/{print $2}' | awk -F. '{print $NF}'`

sed -i  "s@HOSTNAME=.*@HOSTNAME=client$ClientName.magelinux.com@g"  /etc/sysconfig/networks

# set hosts

echo  '172.16.0.1  server.magelinux.com  server' >> /etc/hosts

# yum repo

%end

脚本段:此处只有结束脚本段

     (1)命令段:指定各种安装前配置选项,如键盘类型等;分为必备命令可选命令两类

          1)必备命令:

       authconfig:认证方式配置

  authconfig  --enableshadow  --passalgo=sha512

       bootloader:定义bootloader的安装位置及相关配置

  bootloader  --location=mbr  --driveorder=sda  --append="crashkernel=auto rhgbquiet"

       keyboard:设置键盘类型keyboard us

       lang:语言类型

                  part:分区布局;

  part  /boot --fstype=ext4  --size=500

  part  pv.008002 --size=51200

        分区相关的其它指令

  clearpart:清除分区

clearpart  --none --drives=sda:清空磁盘分区;

  volgroup:创建卷组

volgroup  myvg --pesize=4096  pv.008002

  logvol:创建逻辑卷

logvol  /home --fstype=ext4  --name=lv_home  --vgname=myvg --size=5120

       rootpw:管理员密码

  rootpw   --iscrypted $6$4Yh15kMGDWOPtbbW   $SGax4DsZwDAz4201.O97WvaqVJfHcISsSQEokZH054juNnoBmO/rmmA7H8ZsD08.fM.Z3Br/67Uffod1ZbE0s.

         生成加密密码的方式:

~]#openssl  passwd  -1 -salt `openssl rand -hex 4`

      timezone:时区timezone Asia/Shanghai

          2)可选命令:

    install  OR upgrade:安装或升级;

    text:安装界面类型,text为tui,默认为GUI

    network:配置网络接口

network  --onboot yes --device eth0  --bootprotodhcp  --noipv6

    firewall:防火墙

firewall  --disabled

    selinux:SELinux

selinux--disabled

    halt、poweroff或reboot:安装完成之后的行为;

    repo:指明安装时使用的repository;

repo  --name="CentOS"   --baseurl=cdrom:sr0  --cost=100

    url:指明安装时使用的repository,但为url格式;

url--url=http://172.16.0.1/cobbler/ks_mirror/CentOS-6.7-x86_64/        

     (2)程序包段:

    指明要安装程序包,以及包组,也包括不安装的程序包;

   %packages:程序包开始标志

   @group_name:安装的包组名

   package:指明安装的包

   -package:指明不安装的包,但时依赖关系可能会装

   %end:程序包结束标志

   (3)脚本段:

%pre:安装前脚本

运行环境:运行安装介质上的微型Linux系统环境;

%post:安装后脚本

运行环境:安装完成的系统;

 

 

 

三、kickstart脚本配置文件创建

   1.安装system-config-kickstart程序包

         该程序包可以生成图形化界面来通过选项配置的方式后自动生成ks.cfg脚本

          # yum install  system-config-kickstart

wKioL1aHkpvRbhRGAAOoKBW8-78208.jpg

   2.打开system-config-kickstart程序包,配置ks.cfg文件

在此步骤可以选择导入/root/anaconda-ks.cfg作为模板来进行修改操作完成配置

# system-config-kickstart

wKiom1aHkoCy9qseAAKxnjmLiPI965.jpg

   3.检查ks.cfg脚本的语法错误:# ksvalidator

当有问题的时候会自动报错

 

 

 

四、anaconda启动光盘镜像创建和打包

注意:此处为简要介绍制作anaconda的一个流程简介操作,内核和部分配置文件在官方镜像信息上进行修改操作,非全部手动手动操作

   1.创建一个目录,放置所要打包制作镜像内容

#mkdir  /centos_xd

   2.isolinux制作

        1)挂载光盘镜像:# mount -r /dev/cdrom /media/cdrom 

        2)复制光盘上isolinux至打包目录:# cp -r /media/cdrom/isolinux//centos_xd/

        3)复制ks.cfg至打包目录:# cp anaconda-ks.cfg  /centos_xd/

 ks.cfg0文件可以直接放置在/centos_xd目录下,也可以放置在/centos_xd/isolinux/

        4)给复制isolinux目录增加写权限 # chmod +w  *

        5)修改isolinux部分内容:

可以更改背景图片splah.jpg(只能使用14位色)

可以更改配置文件isolinux.cfg

… ...

   3.镜像打包制作

        ~]# mkisofs -R-J -T -v --no-emul-boot --boot-load-size 4   --boot-info-table -V "CentOS 6 x86_64boot" -c isolinux/boot.cat -b isolinux/isolinux.bin -o  /root/boot.iso   /centos_xd/

-V :显示的镜像名称

-c:指定模拟的MBR,引导加载器isolinux/boot.cat文件

-b:指明Stage2:isolinux/isolinux.bin

-o:创建完成后保存位置和文件名


本文出自 “许鼎的博客” 博客,转载请与作者联系!

你可能感兴趣的:(mkisofs,kickstart,naconda)