天天看点

Linux系统实现自动化安装

在介绍自动化安装系统之前让我们来回顾一下系统的启动流程,系统的启动大概分为一下几个步骤:加电自检 boot sequence(mbr)-- boot loader -->kernel(initramfs)—>rootfs  /sbin/init大概就是这么几个过程了,接下来来介绍系统的安装,安装系统虽然看起来简单,普通的安装大多数用户会选择一直下一步的安装把,但是想实现高逼格的安装还是需要简单的加工一下,好吧,开始介绍

anaconda:系统安装程序fedora 的一个开源项目

在系统启动的时候就会启动anaconda程序,它默认启动gui接口,并向内核传递text参数即可,然后启动系统安装

anaconda安装系统分成两个阶段

安装前配置阶段

键盘类型

安装过程中的余元

支持的语言

时区

选择要使用的磁盘设备

分区格式化

选择要安装的程序包

管理员密码

是否启用iptables

是否启用selinux

想必安装过操作系统的小伙伴都应该知道需要经过这么几步,没装过的小伙伴需要亲自去安装体验一下

安装阶段

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

将选定的程序包安装到指定目标磁盘

安装boot loader和initramfs

启动安装过程一般位于引导设备中,后续的anaconda及安装用到的程序包等由以下几种方式:

本地光盘

本地硬盘

ftp服务器

http服务器

nfs服务器

Linux系统实现自动化安装

如果想手动指定安装源

在启动后安装esc之后会出现boot:开头的提示符在后面输入linux askmethod选择指定的安装源

boot的引导选项,要使用引导选项请在boot:提示符后输入linux   option(以下的多种方式)

指定语言

linux keymap=gr

更新anaconda

linux updates

linux text:文本方式安装

askmethod:手动指定安装源

         repo=cdrom:device

         repo=hd:device/path

         repo=http://host/path

         repo=ftp://username:password@hosts/path

         repo=nfs:server:path

与网络相关的引导选项

ip=ipaddr

netmask=mask

gateway=gw

dns=dns ip

启用对安装系统的远程访问

linux vnc vncpassword=密码串

启用远程访问

linux  sshd=1

进入救援模式

linux rescue

kickstart文件格式

命令段:用于配置系统

  install

  firewall

  part

  lvm

程序包段:指定要安装的程序包及程序包组

    %packages:表示

    @base:使用@指定包组

    lftp:直接写程序包名

    -package

    %end:软件包结束

注意:在程序包钱加-,不安装相关包

脚本段

%pre:安装过程开始钱的预备脚本,所能执行的操作较小,它是一个首先得环境,因为其实仅有简单版的shell环境

%post:所有的软件完成之后执行的脚本,此时具有完整意义的shell环境,但并非所有命令都安装,先确保所有的程序已经安装

%end:脚本结束段

kickstart 文件的格式中的命令段中必备命令

authconfig:认证方式配置

         authconfig –usershadow –passalgo=sha512

boot loader :boot loader 的安装位置及相关配置

         boot loader –location=mbr –driveorder=sda –append=”crashkernel=auto rhgb quiet “

kerboard:设定键盘类型

lang:语言类型

part:创建分区

rootpwd:root的密码

timezone:时区

可选命令

install  or upgrade

text:文件安装界面

network

firewall

selinux

halt

poweroff

reboot

repo

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

url:指定安装源

key –skip:跳过安装号码,使用与rhel版本的操作系统

创建kickstart文件

创建kickstart文件的方式

直接手动编辑

         依据已安装好系统上的kickstart文件模版修改

使用创建工具:system-config-kickstart,建议使用/root/anaconda-ks.cfg模版生成

    1、生成默认语言,键盘类型,时区,以及root的密码,还可以指定安装后自动重启,指定是在字符界面安装操作系统,还是在图形界面安装操作系统

Linux系统实现自动化安装

   2、选择安装方式

Linux系统实现自动化安装

3、安装boot loader

Linux系统实现自动化安装

    4、分区信息,是否清除之前的mbr,清楚磁盘所有分区表,并初始化磁盘卷标

Linux系统实现自动化安装

    5、网络配置,即可以使用dhcp来获取ip地址,也能自己手动指定地址

Linux系统实现自动化安装

   6、密码文件加密方式,有md5,sha256,sha512等方式

Linux系统实现自动化安装

   7、防火墙设定,禁用或启用

Linux系统实现自动化安装

   8、显示配置,是否安装图形环境

Linux系统实现自动化安装

   9、选择要安装的软件包

Linux系统实现自动化安装

    10、安装前脚本,将自己想要设定的内容写到本初,比如更改issue文件

Linux系统实现自动化安装

    11、安装后脚本,比如给系统添加一个repo文件

Linux系统实现自动化安装

  生成后的ks.cfg文件可以通过ksvalidator命令来检查ks文件的语法错误命令

  命令用法:ksvalidator  ks.cfg

生成好的ks.cfg文件内容

#platform=x86, amd64, or intel em64t

#version=devel

# firewall configuration

firewall --disabled

# install os instead of upgrade

install

# use network installation

url --url="http://10.1.0.1/cobbler/ks_mirror/centos-6-x86_64/"

# root password

rootpw --iscrypted $1$hhtxxiki$dj/fz1tpagho37ta9k7xl/

# system authorization information

auth  --useshadow  --passalgo=sha512

# use graphical install

graphical

firstboot --disable

# system keyboard

keyboard us

# system language

lang zh_cn

# selinux configuration

selinux --enforcing

# installation logging level

logging --level=info

# system timezone

timezone  africa/abidjan

# network information

network  --bootproto=dhcp --device=et0 --onboot=on

# system bootloader configuration

bootloader --location=mbr

# clear the master boot record

zerombr

# partition clearing information

clearpart --all 

# disk partitioning information

part / --fstype="ext4" --size=10000

part /boot --fstype="ext4" --size=300

%packages

@backup-client

@base

@basic-desktop

@compat-libraries

@console-internet

@debugging

@desktop-debugging

@desktop-platform

@development

@dial-up

@directory-client

@emacs

@fonts

@general-desktop

@graphical-admin-tools

@graphics

@input-methods

@internet-applications

@internet-browser

@office-suite

@server-platform-devel

@technical-writing

@tex

git

%end

制作引导光盘

    mkdir  /linuxiso

 将ks.cfg文件拷贝到/linuxiso目录下

    cp  /media/isolinux/   /linuxiso

    vim  /linuxiso/isolinux/isolinux.cfg

 将initrd=initrd.img text ks=cdrom:/ks.cfg

   cp  /root/ks.cfg  /linuxiso/

   mkisofs:-r -j -t -v --no-emul-boot --boot-load-size 4 --boot-info-table -v "centos 6.5 x86_64 boot(可改)" -b isolinux/isolinux.bin -c isolinux/boot.cat -o /root/centos6.5.boot.iso(可改) linuxiso/

制作好光盘后,将光盘插入机器(当然这里使用的是虚拟的),调整启动次序为光盘启动,将机器连接到网络中的安装,前提是网络当中有安装源,如果没有安装源可以自己搭建一个ftp的服务器,安装vsftpd启动服务,将光盘当中的所有文件都拷贝到/var/ftp/pub目录下,然后将安装树的源写到ks.cfg文件的url  --url那一行即可,这样就可以实现自动化安装操作系统,但是需要注意的是,当你安装完成操作系统后,你的机器的启动次序还是光盘,那么它将会重复安装操作系统,在这里提醒各位的是,在操作系统安装完成之后将启动次序调整为硬盘启动

创建优盘启动

de  if=/dev/cdrom  of=/dev/sdb

继续阅读