系统安装--无人职守


CentOS 系统安装

无人职守安装是anaconda接受kickstart配置文件,代替了人的交互式设置实现了无人安装。


anaconda是什么?kickstart是什么?

你知道当你把光驱里加载iso系统,启动后为什么会出现如下这个界面吗?

        图1 

这就是系统安装程序anaconda提供的图形配置界面


anaconda是怎样横空出世的呢?

bootloader --> kernel(initrd(rootfs)) --> anaconda

开机后bootloader把内核加载到内存中,并以只读挂载临时根文件系统rootfs。接着anaconda成为运行在内核之上的第一个应用程序。

再细一点:你的光盘是如何启动了anaconda?

光盘的引导程序MBR:boot.cat 的stage1引出如下:

Stage2:isolinux/isolinux.bin 打印出图形安装界面

配置文件:isolinux/isolinux.cfg

每个对应的菜单选项在isolinux.cfg中有定义

加载内核:isolinux/vmlinuz

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

                    图3

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

 注意:上述内容一般位于引导设备,例如可通过光盘、U盘或网络等;

后续的anacona及其安装用到的程序包等可以来自于程序包仓库,此仓库的位置可以为:

本地光盘

本地硬盘

ftp server

http server

nfs server



 如果想手动指定安装仓库:按ESC  boot: linux method 注:method是指安装方法


          安装引导选项:

boot:

text:文本安装方式

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

与网络相关的引导选项:

ip=IPADDR

netmask=MASK

gateway=GW

dns=DNS_SERVER_IP

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

vnc

vncpassword='PASSWORD'

启动紧急救援模式:

rescue

装载额外驱动:

dd






总结:

anaconda安装前配置阶段分两类

交互式配置 即为手动安装

提供配置文件kickstart(自动配置)

安装阶段

首次启动

anaconda启动后,如果我们给它提供了kickstart文件,那么就可以自动安装。如果不提供我们可以选择label开启手动安装。



我们来了解下anaconda的工作过程:

安装前配置阶段

安装过程使用的语言;

键盘类型

安装目标存储设备

Basic Storage:本地磁盘

Special Storage: iSCSI

设定主机名

配置网络接口

时区

管理员密码

设定分区方式及MBR的安装位置;

创建一个普通用户;

选定要安装的程序包;

安装阶段

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

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

安装bootloader;

首次启动

iptables

selinux

core dump 



kickstart详解

anaconda从哪里读取kickstart?

安装引导选项:

ks:指明kickstart文件的位置;

DVD drive:      ks=cdrom:/PATH/TO/KICKSTART_FILE

Hard Drive:    ks=hd:/DEVICE/PATH/TO/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




俯瞰kickstart文件的格式

命令段:

    指定各种安装前配置选项,如键盘类型等;

    必备命令

    可选命令


程序包段:

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

%packages     起始

@group_name

package

-package

%end          结束


脚本段:

     %pre:安装前脚本    运行环境:运行安装介质上的微型Linux系统环境;运行的命令有限

     %post:安装后脚本   运行环境:安装完成的系统;




let me逐条看看kickstart的含义


命令段中的必备命令:

1.authconfig:认证方式配置

    authconfig  --enableshadow  --passalgo=sha512


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

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


3.keyboard:设置键盘类型

    keyboard us


4.lang:语言类型

   lang  zh_CN.UTF-8


5.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



6.rootpw:管理员密码

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

  

扩展:生成加密密码的方式:

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


7.timezone:时区

     timezone  Asia/Shanghai



可选命令:

  1.  install  OR  upgrade:安装或升级;

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

  3.  network:配置网络接口

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

  5.  firewall:防火墙 

  6.  firewall  --disabled

  7.  selinux:SELinux

  8.  selinux --disabled

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

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

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

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

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




定制kickstart文件:

# yum install  system-config-kickstart

# system-config-kickstart

检查语法错误:

# ksvalidator





       创建光盘镜像:

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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章