系统自动化安装

系统自动化安装:实现同时部署多台操作系统,批量进行安装linux系统

CentOS系统安装

    系统启动流程:

      bootloader–>kernel(initaramfs)–>rootfs–>/sbin/init

anaconda:系统安装程序

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

    gui:图形窗口

MBR:boot.cat ====>类似于MBR

blob.png

stage2:isolinux/isolinux.bin(stage2)

blob.png

配置文件:/misc/cd/isolinux/isolinux.cfg 

blob.png

每个对应的菜单选项:

    加载内核:isolinuz/vmlinuz

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

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

    默认启动GUI接口

    若是显示指定使用TUI接口:向内核传递text参数即可(在光盘引导界面)

        1.按tab键,在后面增加text

        2.按ESC键:boot:linux text

blob.png

anaconda工作过程

Anaonda安装系统分成三个阶段:

安装前配置阶段

    安装过程使用的语言

    键盘类型

    安装目录存储设备

        Basic Storage:本地磁盘

        特殊设备:iSCSI    

    设定主机名

    配置网络接口

    时区

    管理员密码

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

    创建一个普通用户

    选定要安装的程序包

安装阶段

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

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

    安装bootloader和initramfs

首次启动

    iptables

    selinux    

    core dump    

系统安装

启动安装过程一般应位于引导设备;后续的anaconda及其安装用到的程序包等可来自下面几种方式

    本地光盘

    本地硬盘

    ftp server:yum repository    

    http server:yum repostory

    nfs server

如果想手动安装指定安装源    

    boot:linu askmethod

blob.png

根据以上选项,可选择不同的安装源

ancconda的配置方式:

    1.交互式配置方式

    2.通过读取事先给定的配置文件自动完成配置

        按特定语法给出的配置选项

            kickstart

安装boot引导选项:boot

text:文本安装方式

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

与网络相关的引导选项:

    ip=IPADDR

    netmask=MASK

    gateway=GW

    dns=DNS_SERVER_IP

    ifname=NAME:MAC_ADDR

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

    vnc

    vncpassword=“PASSWORD”

指明kickstart文件的位置: ks= 

    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

    NFS server:ks=nfs:host :/ path/to/ KICKSTART_FILE

启动紧急救援模式:

    rescure

官方文档 :

    《Installation Guide》  

kickstart文件的格式

命令段:指明各种安装前配置,如键盘类型等;

程序包段:指明要安装的程序包组成或程序包,不安装的程序包等;

    %packages

    @group_name

    package

    -package

    %end

脚本段:

    %pre:安装前脚本

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

    %post:安装后脚本

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

命令段中的命令:

    必备命令:

        authconfig:认证方式配置

            authconfig –useshadow –passalgo=sha512

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

            bootloader –location=mbr –driveorder=sda 

            -append="crashkernel=auto  rhgb quiet"

        keyboard:设定键盘类型

        lang:语言类型

        part:创建分区

        rootpw:指明root密码

        timezone:时区

        

可选命令:

    install OR upgrade    

    text:文本安装界面

    network:网络

    firewall:防火墙

    selinux

    halt:关机

    poweroff:断电关机

    reboot:重启

    repo:

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

     url:指明安装源

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

创建kickstart文件的方式

  1. 直接手动编辑:                           

     依据某模板修改(家目录下的anaconda.cfg,安装系统时生成的,记录了安装时的选项)

[root@localhost ~]# cat anaconda-ks.cfg 
# Kickstart file automatically generated by anaconda.

#version=DEVEL
install
url --url=http://10.1.0.1/cobbler/ks_mirror/6/
lang en_US.UTF-8
keyboard us
network --onboot yes --device eth0 --bootproto dhcp --noipv6
rootpw  --iscrypted $6$CGsqab6d$Cd.PnnWtlL5XZAyr9J2zoMqyJH1QodcDp1pQp0uZ1f0Cq4eq9.TMkSQU6IfpvYZEYc32.lmF0lKuQwavnC49a0
# 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"
# Clear the Master Boot Record
#zerombr
# 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://10.1.0.1/cobbler/ks_mirror/6/ --cost=100

%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
@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+iPlDwHY81md430yiNf9w== root@server.magelinux.com
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 '10.1.0.1  server.magedu.com server' >> /etc/hosts

# yum repo

%end
  1. 可使用创建工具:system-config-kickstart

     依据某模板修改并生成新配置

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

    #ksvalidator /PATH/TO/KICKSTART_FILE

实例:

  1. 首先需要安装一个图形界面使用的命令:

yum install system-config-kickstart

2.切换到图形界面运行此命令,界面如下

blob.png

3.Basic Configuration 选项设置

blob.png

4.Installation Method设置(我选择网络安装)

blob.png

5.Boot Loader Options 选项设置(不弄那么复杂了)

blob.png

6.分区信息设置(按自己要求设置)

blob.png

7.网络设置

blob.png

8.Authentication设置

blob.png

9.firewall 防火墙设置

blob.png

10.Display Configuration设置

blob.png

11.Package Selection  包设置(选择需要的安装即可)

blob.png

12.开机前脚本没什么内容可写,所有选择了开机后脚本,设置如下

blob.png

13.保存至root命令下ks.cfg文件,内容如下

blob.png

[root@localhost ~]# cat 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/6"
# Root password
rootpw --iscrypted $1$vvw.7lmZ$vHhd8RrB4hePFMNIPOPqe.
# System authorization information
auth  --useshadow  --passalgo=sha512
# Use text mode install
text
firstboot --disable
# System keyboard
keyboard us
# System language
lang en_US
# SELinux configuration
selinux --enforcing
# Installation logging level
logging --level=info
# Reboot after installation
reboot
# System timezone
timezone  Asia/Shanghai
# Network information
network  --bootproto=static --device=eth0 --gateway=10.1.0.1 --ip=10.1.252.135 --nameserver=8.8.8.8 --netmask=255.255.0.0 --onboot=on
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel 
# Disk partitioning information
part /boot --fstype="ext4" --size=500
part / --fstype="ext4" --size=100000
part swap --fstype="swap" --size=2048

%post
useradd qiuwei
echo 123456 |passwd --stdin qiuwei
echo  pingxiongshishabi >> /etc/issue
mkdir /etc/yum.repos.d/bak
mv /etc/yum.repos.d/*.repo   /etc/yum.repos.d/bak
cat > /etc/yum.repos.d/*.repo <<EOF
[base]
baseurl=http://10.1.0.1/cobbler/ks_mirror/6
gpgcheck=0
EOF
%end

%packages
@base
@basic-desktop
@ftp-server

%end

14.因为没有服务器,在我的另一个centos7系统上安装一个vsftpd,当作服务器

使用yum或者rpm都可以,装好后启动vsftpd服务

centos7

blob.png

15.将刚才生成的ks.cfg文件复制到centos7系统上

centos 6上执行命令

blob.png 

centos 7上的结果

blob.png

16.reboot重启,进入到光盘引导界面,键入ESC或者tab,

输入boot :linux ks=ftp://10.1.249.150/pub ==>(centos 7上的ks.cfg的路径 )

设置ks路径,然后回车运行,等待即可,画面如下,为防火墙没关

blob.png

在centos7上关闭防火墙,还是不可以,找了好久,应该是文件的权限有问题,之前的权限是600,我改成666了再次执行

就没问题,可以执行了,之后就是等待安装了,安装后会自动重启,

案例成功,当然因为模块方面不太了解,所有基本上是参照centos6上的boot目下的.config文件做的,等以后深入了解了,

可以自己做一个!

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

(0)
qiuweiqiuwei
上一篇 2016-09-22 10:04
下一篇 2016-09-22 10:04

相关推荐

  • Linux终端类型

    前言 终端是一个很重要的外设,用过终端设备的人都知道如果设备类型不对就会有乱字符,也可用仿真终端软件如netterm试验一下,Linux的终端信息放在 /usr/share/terminfo下,在这个目录的子目录v下就有许多的如vt100,vt102,vt200等,看一下就知道了。 终端类型的区别与概念 1、 pty(虚拟终端): 但是如果我们远程telne…

    Linux干货 2016-10-14
  • 与正则表达式的第一次亲密接触

    Linux文本处理三剑客 grep:文本过滤(模式:psttern)工具 grep,egrep,fgrep (不支持正则表达式搜索) sed:stream editor,文本编辑工具 awk:Linux上的实现gawk,文本报告生成器 下面就先谈一谈:grep及正则表达式;egrep及扩展的正则表达式 grep grep:Goobal search REgu…

    Linux干货 2017-04-06
  • linux用户管理实战

     1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登陆多次,则只显示一次即可。 [root@localhost ~]# who |cut -d ‘ ‘ -f1 |sort -u  2、取出最后登陆到当前系统的用户的相关信息。 [root@localhost ~]# who |tail -1  3、取出当前系统上被用户当做…

    2018-02-08
  • 第二周博客作业

      '经过了两周的学习,对Linux有了更深的认识,学习到了很多的新知识,在此进行总结。一、Linux上的文件管理类命令都有哪些,其常用的使用方法及相关示例演示。答:Linux常用的文件管理类命令主要有以下几个:  cp,mv,rm,mkdir,rmdir,install,touch;  cp命令:  作用是拷贝文件或文件夹,其用法为:  cp […

    Linux干货 2016-12-12
  • 文件压缩与归档工具

          1、compress/uncompress  .Z 格式                  compress [-d…

    Linux干货 2016-08-22
  • 正则表达式基础

    一、正则表达式: 元字符是用来阐释字符表达式意义的字符,简言之,就是用来描述字符的字符。 正则表达式RE(Regular Expression)是由一串字符和元字符构成的字符串。 正则表达式的主要功能是文本查询和字符串操作,它可以匹配文本的一个字符或字符集合。实际上正则表达式完成了数据的过滤,将不满足正则表达式定义的数据拒绝掉,剩下与正则表达式匹配的数据。 …

    Linux干货 2017-06-04

评论列表(1条)

  • 马哥教育
    马哥教育 2016-09-23 11:08

    作为中小公司的运维,经常会遇到一些机械式的重复工作,例如:有时公司同时上线几十甚至上百台服务器,而且需要我们在短时间内完成系统安装。KICKSTART无人值守安装对我们来说是一个重要能力了。