本地自动化安装CentOS系统

以下的截图主要是用来说明自动化运维发展的阶段

第一阶段:全人肉阶段,此时是处于无流程规范的约束,所有的运维工作都是靠人去一步步执行,这将大大降低工作的效率,也容易带来误操作

第二阶段:工具化阶段,制定了规范制度,此时是通过编写脚本等工具来代替运维的大部分重复性工作。但是工具没有一个统一的管理平台

第三阶段:平台化阶段,此时通过完善规范来提高运维的效率,降低运维的误操作,平台在这个阶段完成,通过统一的平台,对机器进行管理,实现了企业化的平台统一管理

第四阶段:自驱动阶段,通过流程进行驱动,制度是关键,制度已经完善,系统出了问题,能够自己解决。

本地自动化安装CentOS系统

本文将介绍自动化运维的第一步,即实现自动化安装系统。本文将介绍两个方面的自动化安装:

1. 半自动化安装:通过光盘引导系统系统,然后手动指定kickstart文件,安装包源为系统的光盘或者是网络(这里包的路径是在kickstart文件里指定),安装过程由kickstart文件设定。

2. 本地自动化安装,通过自己生成一个本地的光盘文件,刻录在光盘或者U盘里,实现本地自动化安装,制作方法是:拷贝一份光盘的所有资料到本地路径,如/root/fulliso目录下,把kickstart文件放在该目录下,生成新的包依赖关系的文件,然后再通过命令mkisofs生成光盘文件。如果需要U盘启动,只需要通过dd命令将新生成的iso文件刻录到U盘里即可实现U盘启动

接下来,我们将介绍安装启动过程,安装需要的文件的内容,以及每个自动化安装方式的实现步骤

2 安装程序和相关文件介绍

2.1 系统启动流程如下

bootloader-->kernel(initramfs)-->rootfs-->/sbin/init

系统安装完成后,在启动时,先开机自检,读取硬盘的第一扇区MBR,加载bootloader,即第一阶段,还有1.5.和2阶段。根据配置文件,找到kernel(vmlinuz)和initramfs(临时根文件系统),由initramfs加载小linux系统,然后把控制权交给了rootfs,然后加载/sbin/init,按脚本命令执行相关脚本,完成启动的过程

2.2 系统安装程序:anaconda

在安装过程中我们需要借助的anaconda这个安装程序来实现,该程序有两种安装界面

1.gui:图形窗口

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

anaconda的配置方式:

(1) 交互式配置方式

(2) 通过读取事先给定的配置文件自动完成配置:按特定语法给出的配置选项,改配置文件叫kickstart文件,这个文件可以手动编写,也可以通过图形化工具system-config-kickstart来生成。我们既然要实现自动化的安装,自然anaconda的配置方式就要选择该方式,不能是图形化,否则就实现不了自动化的安装

默认我们通过光盘来安装的时候,装载根文件系统,并启动anaconda,可以对这个配置方式进行选择,当光盘启动到菜单页面的时候,默认启动GUI接口,若是要指定使用TUI接口:向内核传递text参数即可。

(1)按tab键,在后面增加 text

(2)按ESC键:boot: linux  text

在全自动化安装中,我们是直接在ks文件中设置了该方式为text。

anaconda工作过程

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

a 安装前配置阶段

安装过程使用的语言

键盘类型

安装目标存储设备

Basic Storage:本地磁盘

特殊设备:iSCSI

设定主机名

配置网络接口

时区

管理员密码

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

创建一个普通用户

选定要安装的程序包

b 安装阶段

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

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

安装bootloader和initramfs

c 图形模式首次启动

进行以下的配置

iptables

selinux

core dump

2.3 光盘部分文件介绍

isolinux/boot.cat:这个文件作用是类型MBR(Main Boot Record),负责磁盘操作系统(DOS)对磁盘进行读写时分区合法性的判别、分区引导信息的定位,启动的stage1.

isolinux/isolinux.bin,负责光盘的stage2,也是二进制文件,作用类似grub的第二阶段

isolinuz/vmlinuz:是linux的内核,相当于是一个小的linux系统

isolinuz/initrd.img,一般被用来临时的引导硬件到实际内核vmlinuz能够接管并继续引导的状态

isolinux/isolinux.cfg:这个是光盘启动时的菜单文件,菜单的风格是文件vesamenu.c32.在isolinux.cfg里有调用,该文件里还指定了内核isolinuz/vmlinuz和isolinuz/initrd.img的路径,向内核传递参数:append initrd=initrd.img,这段参数可以自己定制,如在后面加text,就会实现字符界面安装,这个用于自动化安装,不适合于手动安装,鼠标点不了的。字符界面一般用于自动化安装。

在isolinux.cfg文件中指明kickstart文件的位置,有以下几个路径进行调用该文件,写法如下

1

2

3

4

5

6

 

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

NFSserver:ks=nfs:host:/path/to/KICKSTART_FILE

 

2.4 kickstart文件

kickstart文件创建

有两个方法:

1 直接手动编写:依据某模板修改

2:.可使用创建工具:system-config-kickstart,依据某模板修改并自动生成新配置anaconda-ks.cfg,这个软件是在桌面端的环境下才能启用

.检查ks文件的语法错误:ksvalidator

1

 

ksvalidator  /PATH/TO/KICKSTART_FILE

 

kickstart 文件的格式如下

kickstart文件的格式

anaconda-ks.cfg的格式如下分为 命令段,程序包段,脚本段三段

.命令段:

指明各种安装前配置,如键盘类型等

命令段中的命令:

.必备命令

authconfig:认证方式配置

authconfig--useshadow--passalgo=sha512

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

bootloader--location=mbr--driveorder=sda–

append="crashkernel=autorhgbquiet"

keyboard:设定键盘类型

lang:语言类型

part:创建分区

rootpw:指明root的密码

timezone:时区

.可选命令

install OR upgrade

text:文本安装界面

network

firewall

selinux

halt

poweroff

reboot

repo

user:安装完成后为系统创建新用户

url:指明安装源

key –skip跳过安装号码,适用于rhel版本

.程序包段:

指明要安装的程序包组或程序包,不安装的程序包等

程序包段指安装了哪些包,

@开头的是包组

不是@的是一般的包

--减号,是指把包组中的某个包去掉

例子如下

%packages

@group_name

package

-package

%end

注意,桌面包组,desktop默认是GNOME包组,如果桌面端安装不成功,安装一下xorg-x11-server-Xorg这个包,桌面端依赖这个包

.脚本段:

脚本段分为安装前和安装后脚本段

%pre:安装前脚本,安装操作系统前,初始化环境

运行环境:运行于安装介质上的微型Linux环境

%post:安装后脚本,系统都安装完成后才执行脚本

格式如下

%post

脚本

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/13417.html