Linux无人值守安装

前言

    通常情况下,我们安装Linux操作系统的时候需要从光盘启动,通过系统光盘bootloader启动安装程序,进入交互式安装模式,由用户配置安装选项,如磁盘分区、选择安装包等操作;安装完毕后重启结束安装。在生产环境中,成百上千台服务器需要安装操作系统的时候如果也采用交互式安装模式,无疑是极其低效的。本文主要介绍批量自动部署安装Linux操作系统。

服务器端环境部署:

    DHCP(Dynamic Host Configuration Protocol):动态主机配置协议,为客户端分配IP地址。

    tftp-server(Trivial File Transfer Protocol):简单文件传输协议,为客户端提供bootloader、kernel及其他引导文件

    xinetd(eXtended InterNET services daemon):超级守护进程,tftp服务依赖于此进程

    kickstart文件:自动安装配置文件

    httpd:为客户端提供安装源及kickstart安装文件

    引导文件:可从系统安装光盘提取。

一、安装配置DHCP服务

    安装dhcp

[root@qin ~]# yum -y install dhcp

    修改dhcp配置文件

[root@qin ~]# cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf
[root@qin ~]# vim /etc/dhcp/dhcpd.conf 
default-lease-time 28800;                    #默认租约时间
max-lease-time 86400;                        #最大租约时间
log-facility local7;
subnet 192.168.19.0 netmask 255.255.255.0 {  #提供dhcp服务的子网
  range 192.168.19.100 192.168.19.110;       #可分配地址范围
  option domain-name "qin.org";              #指定搜索域
  option domain-name-servers 114.114.114.114, 8.8.8.8;        #指定域名
  option routers 192.168.19.1;                                #指定网关
  next-server 192.168.19.23;                                  #指定tftp服务器
  filename "pxelinux.0";                                      #指定pxe引导文件
}

    启动dhcp服务

[root@qin ~]# service dhcpd configtest        #检查配置文件错误
Syntax: OK
[root@qin ~]# service dhcpd start
Starting dhcpd:                                            [  OK  ]
[root@localhost ~]# ss -unl|grep :67
UNCONN     0      0                         *:67                       *:*
[root@qin ~]# chkconfig dhcpd on

二、安装配置tftp-server。

    安装

[root@qin ~]# yum -y install tftp-server

    为客户端提供引导文件

[root@qin ~]# mkdir /media/cdrom                    #引导文件可从系统安装光盘拷贝
[root@qin ~]# mount /dev/cdrom /media/cdrom
[root@qin ~]# cp /media/cdrom/images/pxeboot/{initrd.img,vmlinuz} /var/lib/tftpboot/
[root@qin ~]# cp /media/cdrom/isolinux/{boot.msg,splash.jpg,vesamenu.c32} /var/lib/tftpboot/
[root@qin ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@qin ~]# cp /media/cdrom/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
[root@qin ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
label linux
  menu label ^Install or upgrade an existing system
  menu default
  kernel vmlinuz
  append initrd=initrd.img ks=http://192.168.19.23/ks.cfg    #指定kickstart文件路径
[root@qin ~]# yum -y install syslinux               #pxe引导文件由此包提供
[root@qin ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[root@qin ~]# tree /var/lib/tftpboot/               #检查内核及引导文件是否完整
/var/lib/tftpboot/
├── boot.msg
├── initrd.img
├── pxelinux.0
├── pxelinux.cfg
│   └── default
├── splash.jpg
├── vesamenu.c32
└── vmlinuz

1 directory, 7 files

    启动tftp-server

[root@qin ~]# chkconfig tftp on
[root@qin ~]# service xinetd start
Starting xinetd:                                           [  OK  ]
[root@qin ~]# ss -unl|grep :69
UNCONN     0      0                         *:69                       *:*

三、kickstart文件生成

[root@qin ~]# yum -y groupinstall "X Window System" "Desktop"    #kickstart文件创建依赖与图形桌面
[root@qin ~]# yum -y install system-config-kickstart

    在图形桌面执行system-config-kickstart命令,根据需要选择或填写相关信息即可。

ks.png

    保存退出后会生成一个配置文件,可以根据需要再次修改。

firewall --disabled
selinux --disabled
install
url --url="http://192.168.19.23/centos6"        #指定网络安装路径
repo --name="CentOS"  --baseurl=http://192.168.19.23/centos6 --cost=100    #指定安装源地址
rootpw --iscrypted $1$RWj/3$0JlND19WoyIh3cIx1zdCE0        #密码字符串也可以通过grub-md5-crypt命令生成
auth  --useshadow  --passalgo=sha512
text                 #文本界面安装,默认为graphics
keyboard us
lang en_US
skipx
logging --level=info
reboot
timezone  Asia/Chongqing
network  --bootproto=dhcp --device=eth0 --onboot=on
bootloader --location=mbr
zerombr            #清空mbr
clearpart --all  
part pv.01 --grow --size=1            #配置逻辑卷,system-config-kickstart不支持逻辑卷,需要直接修改配置文件
part /boot --fstype=ext4 --size=500
volgroup VolGroup --pesize=4096 pv.01
logvol / --fstype=ext4 --name=lv_root --vgname=VolGroup --grow --size=1024 --maxsize=8192
logvol swap --name=lv_swap --vgname=VolGroup --grow --size=1984 --maxsize=1984

%packages        #指定安装包或包组,包组以@打头
@base
@development
@server-platform-devel
%end

%pre        #安装前执行脚本,此处未指定
%end

%post       #安装后执行脚本
groupadd -g 1001 qin
useradd -u 1001 -g 1001 qin
%end

四、安装配置httpd。

    安装

[root@qin ~]# yum -y install httpd

    配置

[root@qin ~]# mkdir /var/www/html/centos6
[root@qin ~]# mount /dev/cdrom /media/cdrom
[root@qin ~]# mount --bind /media/cdrom /var/www/html/centos6        #绑定光盘镜像到httpd工作目录作为安装源供客户端使用
[root@qin ~]# cp /root/ks.cfg /var/www/html/            #把此前生成的kickstart文件放到http工作目录供客户端调用

    启动

[root@qin ~]# service httpd start
[root@qin ~]# chkconfig httpd on

客户端配置

    1、修改bios设置,从网卡启动

network.png

dhcp.png

    2、选择第一项,可以直接回车执行自动安装;亦可以按TAB键手动修改需要读取的kickstart文件

ks1.png

    3、开始安装

install.png

    4、安装完验证是否与kickstart文件一致

ip.png

id.png

lvm.png

   

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

(1)
秦
上一篇 2015-05-14 14:06
下一篇 2015-05-18 17:32

相关推荐

  • 新的旅途

    三月末的北京已经让人感觉有些炎热,这是我第一次来北京。对我而言这是我人生的另一个起点,押上了我所有骄傲承载着我的梦想对未来所有的期望。这是一场豪赌,新的旅途,从今天开始。

    2018-03-26
  • keepalive高可用haproxy实现URL资源的动静分离

    keepalive高可用haproxy实现动静分离URL资源 实现要点: (1) 动静分离discuzx,动静都要基于负载均衡实现; (2) 进一步测试在haproxy和后端主机之间添加varnish缓存; (3) 给出拓扑设计; (4) haproxy的设定要求:     (a…

    Linux干货 2016-11-12
  • 马哥教育网络班N22期+第9周课程练习

    1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现; #!/bin/bashnolo_user=0login_user=0while read user;do    bash_type=$(e…

    Linux干货 2016-10-21
  • linux命令的使用格式

    Linux命令的一般格式为: [root@node1 ~]#command [选项] [参数] 1、ifconfig 设备 参数 参数: up:启动指定设备 down:关闭指定设备 arp:指定设备是否支持ARP协议 -a:显示全部接口信息 例如:[root@node1 ~]#ifconfig eth0 up #启动eth0网卡 2、echo打印 &nbsp…

    Linux干货 2016-09-17
  • 在CentOS中获取命令帮助

    在CentOS中获取命令帮助    在使用和学习CentOS系统中,当我们遇上不熟悉的命令却又需要了解它的详细用法的时候,我们需要获取帮助。除了借助他人和搜索引擎之外,自己通过查看系统帮助文档来解决问题是很重要的。下面就来介绍如何获取帮助以及简单的解决思路:    一、如何获取命令帮助 Linux提供多层次的命令帮助:…

    Linux干货 2016-07-27
  • 马哥教育网络班22期+第七周课程练习

    1、创建一个10G分区,并格式为ext4文件系统(1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl(2) 挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳 # fdisk /dev/sdb <<EOF> n> p> 1> &g…

    Linux干货 2016-11-28

评论列表(1条)

  • stanley
    stanley 2015-05-18 17:27

    有qa过程吗?虚拟化机器能正常安装吗?一个网络同时有多个dhcp服务会出什么问题吗?