Linux的自动化安装实现

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

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

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

anaconda安装系统分成两个阶段

安装前配置阶段

键盘类型

安装过程中的余元

支持的语言

时区

选择要使用的磁盘设备

分区格式化

选择要安装的程序包

管理员密码

是否启用iptables

是否启用selinux

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

 

安装阶段

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

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

安装boot loaderinitramfs

 

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

本地光盘

本地硬盘

ftp服务器

http服务器

nfs服务器

2.jpg

如果想手动指定安装源

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

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

指定语言

linux keymap=gr

 

更新anaconda

linux updates

linux text:文本方式安装

 

askmethod:手动指定安装源

         repo=cdromdevice

         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:创建分区

rootpwdroot的密码

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的密码,还可以指定安装后自动重启,指定是在字符界面安装操作系统,还是在图形界面安装操作系统

    2.jpg

 

   2、选择安装方式

    1.jpg

 

3、安装boot loader

    3.jpg

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

    5.jpg

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

    6.jpg

    

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

   7.jpg

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

   8.jpg

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

    9.jpg

   9、选择要安装的软件包

    10.jpg

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

    11.jpg

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

    12.jpg

  生成后的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

 

 

 

 

 

原创文章,作者:fszxxxks,如若转载,请注明出处:http://www.178linux.com/46785

(0)
fszxxxksfszxxxks
上一篇 2016-09-19 13:48
下一篇 2016-09-19 13:48

相关推荐

  • ntp时间服务器

    前言   ntp(Network Time protocol)是网络时间协议,是用来使网络中的各个计算机时间同步的一种协议。 ntp配置  1)ntp是由ntp软件提供,如果没有可以使用yum进行安装  2)ntp配置文件介绍:/etc/ntp.conf   利用restrict来管理权限控制;语法格式:restric…

    Linux干货 2015-06-24
  • Linux GNU AWK使用

                                    Linux GNU AWK使用 本章内容: awk介绍 awk基本用法 awk变量 awk格式化 awk操作符 awk条件判断…

    系统运维 2016-10-01
  • RHCE系列之备份工具—-镜像备份Rsync

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://nolinux.blog.51cto.com/4824967/1431426     我一哥们最近在搞备份,需要用到rsync。因此,鄙人就简单总结了下rsync,也就有了这篇博文,希望对51…

    Linux干货 2016-08-15
  • Linux的文件系统架构基础

    前言     当今计算机操作系统来说常见功能主要有:进程调度、内存管理、文件系统管理、网络协议栈支持、驱动程序管理、安全功能等。所有对于我们来讲学习Linux文件系统也是一个十分重要的知识,也是学习Linux的必备基础知识,学习好Linux的文件系统知识也是为接下来学习Linux的其他知识奠定良好的基础 关键词  &n…

    Linux干货 2015-04-16
  • httpd服务之虚拟主机、访问控制、https配置详解

    前言 上文讲解了http协议及httpd的一些特性,是学习web服务需要掌握的一些基础知识,接下来让我们进一步了解httpd相关功能的配置,本文讲解的是虚拟主机,访问控制及https等功能的配置。 httpd之虚拟主机 虚拟主机共分为三种模式:基于IP、基于端口、基于主机名(FQDN) 实验环境介绍 开始之前,先介绍一下httpd在CentOS6.6版本及文…

    Linux干货 2015-04-14
  • 加密和解密技术基础(01) ~ 105分钟

    加密和解密技术基础(01) ~ 105分钟 讲课思路: 互联网通信机制 –> 网络协议模式(osi,tcp/ip模型) –> 数据通信安全  à 数据加密 –> 加密算法 –> OpenSSL是什么 à SSL通信原理 –> CA –> OpenSSL命令用法 à CA 自签及签证演示 1.1 &nbs…

    Linux干货 2016-09-19