系统自动化安装

系统自动化安装:实现同时部署多台操作系统,批量进行安装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
下一篇 2016-09-22

相关推荐

  • M20-1权限作业

    1、当用户xiaoming对/testdir 目录无执行权限时,意味着无法做哪些操作? [root@centos7 testdir]# ls -ld /testdir/ drwxr-xrw-. 3 root root 27 Aug  5 0…

    Linux干货 2016-08-05
  • Storm集群安装详解

    storm有两种操作模式: 本地模式和远程模式。 本地模式:你可以在你的本地机器上开发测试你的topology, 一切都在你的本地机器上模拟出来;  远端模式:你提交的topology会在一个集群的机器上执行。 本文以Twitter Storm官方Wiki为基础,详细描述如何快速搭建一个Storm集群,其中,项目实践中遇到的问题及经验总结,在相应章…

    Linux干货 2015-04-04
  • 22期第四周课程练习

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 [root@localhost tuser1]# cp   -r    /etc/skel/   /ho…

    Linux干货 2016-09-08
  • iptables入门到进阶

    netfilter/iptables:        netfilter是存在于内核中的一个防火墙框架,用来管理网络数据包,netfilter在IP数据包处理流程中的5个关键位置放置了5个钩子(hook)函数,当数据包流经相应的位置时,相应的钩子函数会被调用,每个对应的钩子上有对应的表,表中有对应的…

    Linux干货 2017-05-02
  • HAproxy实战

    HAproxy实验一 1、实验要求: (1) 动静分离discuzx,动静都要基于负载均衡实现; (2) 进一步测试在haproxy和后端主机之间添加varnish缓存(见实验二步骤); (3) 给出拓扑设计; (4) haproxy的设定要求: (a) 启动stats; (b) 自定义403、502和503的错误页; (c) 各组后端主机选择合适的调度方法…

    Linux干货 2016-11-15
  • btrfs文件系统介绍

    btrfs文件系统介绍 简介        Btrfs(B-tree,ButterFS ,Better FS通常念成Butter FS),由Oracle于2007年宣布并进行中的COW(copy-on-write式)文件系统。继ext3/4文件系统之后linux又有了比较强大的文件系统(btrfs文件系统),btrfs…

    系统运维 2016-04-27

评论列表(1条)

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

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