系统自动化安装

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

相关推荐

  • sed之高级命令的解析

                sed工作机制中另一个逻辑空间用于作为模式空间的好帮手,就是叫保持空间(hold space),在模式空间中处理一行内容会继续处理下一行,那么对于处理过的行可能还有其他处理,因此可以先把处理好的数据存放在hold s…

    Linux干货 2016-08-08
  • httpd功能配置之访问控制

       httpd服务可以实现对资源访问控制,可以根据IP地址和用户两种方式进行控制。    一、用户认证控制      1、在站点根目录下创建一个目录及一个页面文件      2、修改/var/httpd/conf/httpd.conf文件   &n…

    Linux干货 2016-03-11
  • 马哥教育网络班21期-第四周课程练习

    Do one thing at a time,and do well. 小僧近期忙的去尿尿的时间都要挤出来…..! 无人能理解 zZzz 复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 编辑/etc/group文件,添加组hadoop。 手动编辑/etc/pass…

    Linux干货 2016-07-29
  • Linux手动编译源代码文件

    一、简介     Linux系统上程序包安装的方式多种多样,一般来说可通过rpm包安装、yum在线安装等方式实现。但有时候为了实现某种功能,而这种功能在通常情况下又不是太常用或是因为其他原因,不能通过yum下载安装或在网上没有找到rpm包,只是找到了程序安装包的源代码的话,这种情况下我们就可以对源代码直接进行编译安装,以便解决这种临时需求…

    Linux干货 2015-09-26
  • 第五周作业

    1、显示/boot/grub/grub.conf中以至少一个空白字符开头的行; [root@centos6 ~]# grep "^[[:space:]]\+" /boot/grub/grub.conf         &…

    Linux干货 2017-01-16

评论列表(1条)

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

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