无人值守安装linux7,kickstart无人值守安装CentOS7

1.光盘(ISO文件,光盘的镜像文件) à每一台物理机都得给一个光驱,如果用外置光驱的话,每台机器都需要插一下

2.U盘:ISO镜像刻录到U盘à需要每台机器都需要插一下

3.并行安装à网络安装

批量自动安装

实现原理:将手动安装的所有的详细步骤记录到一个文件中,然后有一种软件通过读取这个文件就可以实现自动化安装系统

bea751f1bb98825075f8f21155e6c5f5.png

1cbf7adbcc8ed5311f1e736062f9e855.png

kickstart是一种无人值守的安装方式。它的工作原理是在安装过程中记录人工干预填写的各种参数,并生成一个名为ks.cfg的文件。

PXE向DHCP发送请求--DHCP服务器提供信息--PXE客户端请求下载启动文件--TFTP响应客户端请求并传送文件--PXE请求下载自动应答文件

环境准备

[root@oldboylnb ~]# cat /etc/redhat-release

CentOS Linux release 7.4.1708 (Core)

[root@oldboylnb ~]# uname -r

3.10.0-693.el7.x86_64

[root@oldboylnb ~]# getenforce

Disabled

[root@oldboylnb ~]# systemctl status firewalld.service

● firewalld.service - firewalld - dynamic firewall daemon

Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)

Active: inactive (dead)

Docs: man:firewalld(1)

[root@oldboylnb ~]# hostname -I

10.0.0.201 172.16.1.201

kickstart无人值守部署

安装DHCP服务

DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)通常被应用在大型的局域网络环境中,主要作用是集中的管理、分配IP地址,使网络环境中的主机动态的获得IP地址、网关地址、DNS服务器地址等信息,并能够提升地址的使用率。DHCP服务

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

Installed:

dhcp.x86_64 12:4.2.5-58.el7.centos

修改dhcp配置文件

cat >>/etc/dhcp/dhcpd.conf<

subnet  172.16.1.0 netmask 255.255.255.0 {  #服务端本机IP

range 172.16.1.100 172.16.1.199;   # 可分配的起始IP-结束IP

option subnet-mask 255.255.255.0;  # 设定netmask

default-lease-time 21600;          # 设置默认的IP租用期限

max-lease-time 43200;            # 设置最大的IP租用期限

next-server 172.16.1.201;          # 告知客户端TFTP服务器的ip

filename "/pxelinux.0";             # 告知客户端从TFTP根目录下载pxelinux.0文件

}

EOF

启动服务

[root@oldboylnb ~]# systemctl start dhcpd

[root@oldboylnb ~]# systemctl status dhcpd

● dhcpd.service - DHCPv4 Server Daemon

Loaded: loaded (/usr/lib/systemd/system/dhcpd.service; disabled; vendor preset: disabled)

Active: active (running) since Mon 2018-01-08 09:35:15 CST; 11s ago

Docs: man:dhcpd(8)

man:dhcpd.conf(5)

Main PID: 1398 (dhcpd)

Status: "Dispatching packets..."

CGroup: /system.slice/dhcpd.service

└─1398 /usr/sbin/dhcpd -f -cf /etc/dhcp/dhcpd.conf -user dhcpd -group dhcpd --no-pid

Jan 08 09:35:15 oldboylnb dhcpd[1398]: Sending on   LPF/eth1/00:0c:29:52:4d:f5/172.16.1.0/24

Jan 08 09:35:15 oldboylnb dhcpd[1398]:

Jan 08 09:35:15 oldboylnb dhcpd[1398]: No subnet declaration for eth0 (10.0.0.201).

Jan 08 09:35:15 oldboylnb dhcpd[1398]: ** Ignoring requests on eth0.  If this is not what

Jan 08 09:35:15 oldboylnb dhcpd[1398]:    you want, please write a subnet declaration

Jan 08 09:35:15 oldboylnb dhcpd[1398]:    in your dhcpd.conf file for the network segment

Jan 08 09:35:15 oldboylnb dhcpd[1398]:    to which interface eth0 is attached. **

Jan 08 09:35:15 oldboylnb dhcpd[1398]:

Jan 08 09:35:15 oldboylnb dhcpd[1398]: Sending on   Socket/fallback/fallback-net

Jan 08 09:35:15 oldboylnb systemd[1]: Started DHCPv4 Server Daemon.

查看日志

[root@oldboylnb ~]#  tail -20  /var/log/messages

Jan  8 09:35:15 oldboylnb dhcpd: Listening on LPF/eth1/00:0c:29:52:4d:f5/172.16.1.0/24

Jan  8 09:35:15 oldboylnb dhcpd: Sending on   LPF/eth1/00:0c:29:52:4d:f5/172.16.1.0/24

Jan  8 09:35:15 oldboylnb dhcpd:

Jan  8 09:35:15 oldboylnb dhcpd: No subnet declaration for eth0 (10.0.0.201).

Jan  8 09:35:15 oldboylnb dhcpd: ** Ignoring requests on eth0.  If this is not what

Jan  8 09:35:15 oldboylnb dhcpd:   you want, please write a subnet declaration

Jan  8 09:35:15 oldboylnb dhcpd:   in your dhcpd.conf file for the network segment

Jan  8 09:35:15 oldboylnb dhcpd:   to which interface eth0 is attached. **

Jan  8 09:35:15 oldboylnb dhcpd:

Jan  8 09:35:15 oldboylnb dhcpd: Sending on   Socket/fallback/fallback-net

Jan  8 09:35:15 oldboylnb systemd: Started DHCPv4 Server Daemon.

安装TFTP服务

TFTP(Trivial File Transfer Protocol,简单文件传输协议)是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。端口号为69

下载并启动tftp

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

Installed:

tftp-server.x86_64 0:5.2-13.el7

[root@oldboylnb ~]# systemctl start tftp.socket

[root@oldboylnb ~]# systemctl status tftp.socket

● tftp.socket - Tftp Server Activation Socket

Loaded: loaded (/usr/lib/systemd/system/tftp.socket; disabled; vendor preset: disabled)

Active: active (listening) since Mon 2018-01-08 09:53:27 CST; 36s ago

Listen: [::]:69 (Datagram)

Jan 08 09:53:27 oldboylnb systemd[1]: Listening on Tftp Server Activation Socket.

Jan 08 09:53:27 oldboylnb systemd[1]: Starting Tftp Server Activation Socket.

请求下载启动文件syslinux

syslinux是一个功能强大的引导加载程序,而且兼容各种介质。SYSLINUX是一个小型的Linux操作系统,它的目的是简化首次安装Linux的时间,并建立修护或其它特殊用途的启动盘。

[root@oldboylnb tftpboot]# yum install -y syslinux

Installed:

syslinux.x86_64 0:4.05-13.el7

Dependency Installed:

mtools.x86_64 0:4.0.18-5.el7

[root@oldboylnb tftpboot]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

[root@oldboylnb tftpboot]# ll

total 28

-rw-r--r-- 1 root root 26764 Jan  8 10:14 pxelinux.0

新建一个pxelinux.cfg目录,存放客户端的配置文件

[root@oldboylnb /]# mkdir -p /var/www/html/CentOS7

[root@oldboylnb /]# mount /dev/cdrom /var/www/html/CentOS7

mount: /dev/sr0 is write-protected, mounting read-only

[root@oldboylnb CentOS7]# \cp -a isolinux/* /var/lib/tftpboot/[root@oldboylnb /]#mkdir -p /var/lib/tftpboot/pxelinux.cfg

[root@oldboylnb isolinux]# pwd

/var/www/html/CentOS7/isolinux

[root@oldboylnb isolinux]# cp isolinux.cfg  /var/lib/tftpboot/pxelinux.cfg/default

cp: overwrite ‘/var/lib/tftpboot/pxelinux.cfg/default’? y

安装httpd服务

[root@oldboylnb isolinux]# yum -y install httpd

查看网页

e91099d8fef598a0ceb38c4f5a6fbb25.png

修改default文件

[root@oldboylnb isolinux]# vim /var/lib/tftpboot/pxelinux.cfg/default

append initrd=initrd.img method=http://172.16.1.201/CentOS7/

append initrd=initrd.img inst.repo=http://172.16.1.201/CentOS7/   2选1

7722e1f03278a97dec7d324c8d6345f7.png

手动网络安装

新建一台空白虚拟机,也不要挂载ISO镜像,创建2个网卡,打开电源。LAN区段172.16.1.0/24

79d068fcf772a4b9c694f4c6402b4870.png

51f4f0804d72669b7092646fbaf46bd1.png

dfb2a2125b6d442aaf3c4951e3f9825f.png

bb08d76877d69c0413bb09ab196bac66.png

自动安装

创建ks.cfg文件

[root@oldboyedu ks_config]# cat CentOS7-ks.cfg

# Kickstart Configurator for CentOS 7 by yao zhang

install                               告知安装程序,这是一次全新安装,而不是升级upgrade

url --url=http://172.16.1.201/CentOS7/     通过FTP或HTTP从远程服务器上的安装树中安装

text                                 使用文本模式安装

lang en_US.UTF-8                     设置在安装过程中使用的语言以及系统的缺省语言

keyboard us                          设置系统键盘类型

zerombr                             清除mbr引导信息

bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet" 系统引导相关配置

指定引导记录被写入的位置.有效的值如下:mbr(缺省),partition(在包含内核的分区的第一个扇区安装引导装载程序)或none(不安装引导装载程序)

--driveorder,指定在BIOS引导顺序中居首的驱动器

--append=,指定内核参数.要指定多个参数,使用空格分隔它们

network  --bootproto=static --device=eth0 --gateway=10.0.0.254 --ip=10.0.0.202 --nameserver=223.5.5.5 --netmask=255.255.255.0 –activate  为通过网络的kickstart安装以及所安装的系统配置联网信息

--bootproto=[dhcp/bootp/static]中的一种,缺省值是dhcp。bootp和dhcp被认为是相同的。

static方法要求在kickstart文件里输入所有的网络信息。

network  --bootproto=static --device=eth1 --ip=172.16.1.202 --netmask=255.255.255.0 --activate

network  --hostname=Cobbler

#network --bootproto=dhcp --device=eth1 --onboot=yes --noipv6 --hostname=CentOS7

--ip=,要安装的机器的IP地址

--gateway=,IP地址格式的默认网关

--netmask=,安装的系统的子网掩码

--hostname=,安装的系统的主机名

--onboot=,是否在引导时启用该设备

--noipv6=,禁用此设备的IPv6

--nameserver=,配置dns解析

timezone --utc Asia/Shanghai                 设置系统时区

authconfig --enableshadow --passalgo=sha512   系统认证信息

rootpw  --iscrypted    root密码$6$X20eRtuZhkHznTb4$dK0BJByOSAWSDD8jccLVFz0CscijS9ldMWwpoCw/ZEjYw2BTQYGWlgKsn945fFTjRC658UXjuocwJbAjVI5D6/

clearpart --all –initlabel   清空分区

--all 从系统中清除所有分区,--initlable 初始化磁盘标签

part /boot --fstype xfs --size 1024

part swap --size 1024

part / --fstype xfs --size 1 –grow

--fstype=,为分区设置文件系统类型.有效的类型为ext2,ext3,swap和vfat

--asprimary,强迫把分区分配为主分区,否则提示分区失败

--size=,以MB为单位的分区最小值.在此处指定一个整数值,如500.不要在数字后面加MB

--grow,告诉分区使用所有可用空间(若有),或使用设置的最大值

firstboot –disable                 负责协助配置redhat一些重要的信息

selinux –disabled                 关闭selinux

firewall –disabled                 关闭防火墙

logging --level=info                   设置日志级别

reboot        设定安装完成后重启,此选项必须存在,不然kickstart显示一条消息,并等待用户按任意键后才重新引导,也可以选择halt关机

%packages

@^minimal

@compat-libraries

@debugging

@development

tree

nmap

sysstat

lrzsz

dos2unix

telnet

wget

vim

bash-completion

%end

[root@oldboyedu ks_config]# cat  /var/lib/tftpboot/pxelinux.cfg/default

default ks

prompt 0

label ks

kernel vmlinuz

append initrd=initrd.img ks=http://172.16.1.201/ks_config/CentOS7-ks.cfg net.ifnames=0 biosdevname=0 ksdevice=eth1

772c8aa83cbf00b25d5f7ce145ea5d2f.png

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值