JavaEE鸿蒙应用开发HTML&JS+前端Python+大数据开发人工智能开发AI+设计软件测试新媒体+短视频直播运营产品经理集成电路应用开发(含嵌入式)Linux云计算+运维开发C/C++拍摄剪辑+短视频制作PMP项目管理认证电商运营Go语言与区块链大数据PHP工程师Android+物联网iOS.NET

运维自动化之系统预备工具kickstart网络部署

来源:黑马程序员

浏览11281人

2019.09.05

一、了解kickstart

what's kickstart

kickstart 是使用一个标准的站点为一些机器安装统一配置的linux操作系统。

KickStart是一种无人职守安装方式。KickStart的工作原理是通过记录典型的安装过程中所需人工干预填写的各种参数,并生成一个名为ks.cfg的文件;在其后的安装过程中(不只局限于生成KickStart安装文件的机器)当出现要求填写参数的情况时,安装程序会首先去查找KickStart生成的文件,当找到合适的参数时,就采用找到的参数,当没有找到合适的参数时,才需要安装者手工干预。这样,如果KickStart文件涵盖了安装过程中出现的所有需要填写的参数时,安装者完全可以只告诉安装程序从何处取ks.cfg文件,然后去忙自己的事情。等安装完毕,安装程序会根据ks.cfg中设置的重启选项来重启系统,并结束安装。

kickstart的配置文件的获得方式:

手动写入

使用GUI system-config-kickstart 工具

使用标准的Red Hat安装程序Anaconda 

anaconda-ks.cfg文件

每次Red Hat linux系统安装完毕后,Anaconda将会在ROOT家目录下生成一个anaconda-ks.cfg文件,使用它可以完成相同设置的自动安装,也可以用system-config-kickstart工具进行编辑该文件进行修改。对anaconda-ks.cfg文件修改可以生成自己需要的系统安装自应答文件。

kickstart文件

kickstart文件可以包含系统安装所有需要的交互,也包含系统安装前需要执行的脚本及系统安装后执行的脚本。

kickstart部署实验图

1567672854684678.png

kickstart安装步骤

1.客户端机器(PC)通过以下方式启动:

    CD/DVD

    USB device

Network using PXE

2.为客户端机器选择提供IP获取方式

       static       手动输入

Dynamic    DHCP服务器

3.客户端读取TFTP服务器的文件

 pxelinux.0文件

default文件

读取default文件后根据其要求加载menu.c32 or vesamenu.c32文件,向用户提供选择界面,

用户选择自动安装后,继续加载vmlinuz内核文件及initrd.img镜像文件,最后加载kickstart文件,计算机自动运行和读kickstart file,定位软件包安装树(FTP、NFS、HTTP),软件包安装树可以由光盘或网络提供。

4.开始安装

定位成功后开始下载所需的软件包,开始安装。当安装过程中一些根据kickstart文件设置进行请求信息出现错误或信息丢失,安装过程将会暂停并出现提示或根据附件信息安装。


二.开始部署

1.配置YUM服务器.

安装以下软件包

# yum -y install dhcpdtftp-* xinetd-* vsftpdpykickstart-*

配置DHCP服务器并启动服务

# vim /etc/dhcpd/dhcpd.conf

option domain-name-servers 192.168.18.254;

default-lease-time 600;

max-lease-time 7200;

subnet 192.168.18.0 netmask 255.255.255.0 {

  range 192.168.18.100 192.168.18.200;

  option routers 192.168.18.1;

filename "pxelinux.0";         #告诉客户端连接TFTP服务器加载pxelinux.0文件

  next-server "192.168.18.254";  #告诉客户端TFTP服务器地址

}

# /etc/init.d/dhcpd restart


2.修改TFTP服务器

# vim /etc/xinetd.d/tftp

service tftp

{

socket_type= dgram

protocol= udp

wait= yes

user= root

server= /usr/sbin/in.tftpd

server_args= -s /tftpboot  #TFTP服务器的根目录

disable= no            #启用TFTP服务器

per_source= 11

cps= 100 2

flags= IPv4

}

# /etc/init.d/xinetd restart

为TFTP服务器准备文件

# mount /dev/cdrom /mnt

# cp /usr/share/syslinux/pxelinux.0 /tftpboot/

# cp /usr/share/syslinux/menu.c32 /tftpboot/

# cp /usr/share/syslinux/reboot.c32 /tftpboot/

# cp /mnt/isolinux/vmlinuz /tftpboot/

# cp /mnt/isolinux/initrd.img /tftpboot/

# mkdir/tftpboot/pxelinux.cfg

# cp/mnt/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default

# chmod 644 /tftpboot/pxelinux.cfg/default

创建default文件,权限要求400

# vim /tftpboot/pxelinux.cfg/default

default menu.c32

#prompt 1

timeout 600

MENU TITLE welcome to ITcast.

label local

  menu label Boot from ^local drive

localboot 0xffff

MENU SEPARATOR

label linux

  menu label ^Install or upgrade an existing system for ks

  menu default

  kernel vmlinuz

append initrd=initrd.imgks=ftp://192.168.18.254/ks.cfg


MENU SEPARATOR

label vesa

  menu label Install system with ^basic video driver

  kernel vmlinuz

  append initrd=initrd.imgxdriver=vesanomodeset


3.设置kickstart文件

system-config-kickstart  oranaconda-ks.cfg

# cp anaconda-ks.cfg /var/ftp/ks.cfg

# vim /var/ftp/ks.cfg

#version=DEVEL

# Firewall configuration

firewall --disabled

# Install OS instead of upgrade

install

# Use network installation

url --url="ftp://192.168.18.254/pub"

repo --name="Red Hat Enterprise Linux" --baseurl=ftp://192.168.18.254/pub --cost=100

key vfast

# Root password

rootpw --plaintext 111111

# Network information

network  --bootproto=dhcp --device=eth0 --onboot=on

# System authorization information

auth  --useshadow  --passalgo=sha512 --enablefingerprint

# Use text mode install

text

firstboot --disable

# System keyboard

keyboard us

# System language

langen_US

# SELinux configuration

selinux --disabled

# Installation logging level

logging --level=info

# Reboot after installation

reboot

# System timezone

timezone  Asia/Shanghai

# System bootloader configuration

bootloader --append="crashkernel=auto rhgb quiet" --location=mbr --driveorder="sda"

# Partition clearing information

clearpart --all --initlabel --drives=sda

# Disk partitioning information

part /boot --fstype="ext4" --size=200

part swap --size=2000

part / --fstype="ext4" --grow --maxsize=10000 --size=10000

%packages

@base

@basic-desktop

@chinese-support

@core

@debugging

@desktop-debugging

@desktop-platform

@development

@directory-client

@fonts

@general-desktop

@graphical-admin-tools

@input-methods

@internet-browser

@java-platform

@legacy-x

@network-file-system-client

@perl-runtime

@print-client

@remote-desktop-clients

@server-platform

@server-policy

@x11

abrt-gui

certmonger

genisoimage

jpackage-utils

krb5-workstation

libXmu

mtools

nscd

nss-pam-ldapd

oddjob

pam_krb5

pam_ldap

pax

perl-DBD-SQLite

python-dmidecode

sgpio

wodim

%end


4.启动FTP服务器

# /etc/init.d/vsftpd start

准备安装包

# mount /dev/cdrom /var/ftp/pub


三.测试

新建虚拟机--->网络启动-->Test

开机后,计算机通过DHCP获得IP地址,如图:

1567672926288269.png

获得到IP地址后,连接TFTP服务器

 1567672961135012.png

从TFTP下载启动代码并启动机器

 1567672976171395.png

开始自动安装

1567673004773969.jpg

安装成功后登陆

 1567673039232371.jpg

ok安装完成