kickstart auto install system

举报
JBo 发表于 2021/08/12 09:14:07 2021/08/12
【摘要】 kickstart auto install 一、 centos HTTP web file 二、 DHCP install servers. 三、 Install tftp servers. 四、引导代码 五、编辑引导配置文件 六、 install kickstart 七、 测试: kickstart auto install无人值守自动化安装系统的必要条件机器要有一个支持pxe(网络引...

kickstart auto install


无人值守自动化安装系统的必要条件
机器要有一个支持pxe(网络引导)的网卡 
网络中必须存在相应的服务器

dhcp服务器:分配IP和指定下载引导代码的地址信息
tftp服务器: 提供引导代码的下载、提供安装向导的内核和驱动镜像文件
安装源服务器: 可以是ftp,http,nfs的形式提供,提供安装所需要的所有文件(来自系统光盘)
没有dhcp功能的隔离网络—> 用于测试网络安装的机器 
静态IP 
无人值守的原理:
设定机器使用网卡进行引导

开机,bois决定使用网卡引导,让网卡广播一个dhcp的请求数据包,期望dhcp服务器给本机分配一个IP(网络通信需要的IP信息/

掩码等)并且告诉本机从哪个ip对应tftp服务器去下载引导代码

引导代码下载完毕之后,bios就把执行权限交给了引导代码,引导代码开始执行

引导代码执行之后: 读取引导配置文件去tftp服务器下载安装系统向导界面(其实也是一个专用的操作系统)所需要的内核和驱动镜像

引导程序的任务已经完成了,现在开始去执行内核(安装向导界面系统的内核),并且加载相应的驱动

可以在执行内核的时候传递一个ks的内核参数,告诉内核去根据该参数指定的配置文件,自动完成剩下安装步骤

在安装系统的过程中,所需要所有程序、文件都是来自网络中的服务器(ftp,http,nfs)
TOOL:
此实验目前是在 centos 6.7 x64 上测试。

材料: centos 6 / dhcp / tftp / http

PC:

KS IP: 192.168.110.2
Client ip is none … / wait KS dhcp install centos system.

一、 centos HTTP web file

# mkdir  -p /var/www/html/os
# mount /dev/cdrom /var/www/html/os
# vim /etc/fstab

/path/to/centos6.7.iso /var/www/html/os/ iso9660 defaults,ro,loop 0 0
# mkdir -p /var/www/html/os
# mount /path/to/centos6.7.iso /mnt
# cp -a /mnt/* /var/www/html/os
# vim /etc/yum.repos.d/centos-source.repo

[Base]
name=Base
baseurl=file:///var/www/html/os
gpgcheck=0
enabled=1
# yum install httpd -y  

OR:
# yum reinstall httpd -y
# chkconfig httpd on

确保selinux是关闭的

# getenforce 
# setenforce 0

setenforce: SELinux is disabled

# service httpd restart

测试: http://192.168.110.2/os

test okay.

二、 DHCP install servers.

# yum install dhcp -y
# cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample  /etc/dhcp/dhcpd.conf
# vim /etc/dhcp/dhcpd.conf

option domain-name “www.jbboo.com”;
default-lease-time 600;
max-lease-time 7200;
添加以下两行

allow booting;

allow bootp; log-facility local7;

subnet 192.168.110.0 netmask 255.255.255.0 {
    range 192.168.110.100 192.168.110.200;
next-server 192.168.110.2;


    #指定tftp服务器的ip,就是kickstart本机的
filename “pxelinux.0”;

    #指定引导代码文件的名字
    option routers 192.168.110.1;
}
# chkconfig dhcpd on
# service dhcpd start

三、 Install tftp servers.

# yum install tftp-server  xinetd -y
# vim /etc/xinetd.d/tftp 
service tftp
  {
        socket_type             = dgram
        protocol                = udp
        wait                    = yes
        user                    = root
        server                  = /usr/sbin/in.tftpd
        server_args             = -s /var/lib/tftpboot
disable = no

        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
}
# chkconfig xinetd on
# service xinetd restart
# lsof -i:69
  • COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
  • xinetd 2385 root 5u IPv4 12615 0t0 UDP *:tftp

四、引导代码

部署tftp上的引导代码以及引导配置文件

# yum install syslinux  -y
# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
# cp /var/www/html/os/isolinux/*  /var/lib/tftpboot/
# ls /var/lib/tftpboot

boot.cat

>> initrd.img(安装向导的驱动)
memtest       
splash.jpg    
vmlinuz(安装向导的内核)
boot.msg   
isolinux.bin  
pxelinux.0    
TRANS.TBL
grub.conf  
isolinux.cfg  
pxelinux.cfg  
vesamenu.c32

# mkdir /var/lib/tftpboot/pxelinux.cfg
# cp /var/lib/tftpboot/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default

五、编辑引导配置文件

 label mylinux
     # label mylinux与其他条目区分开
     menu label ^Kickstar install centos6
     # menu显示的条目的名字 centos6
     menu default
     # menu 把其他label条目下的menu default注释掉
     kernel vmlinuz
     append initrd=initrd.img ks=http://192.168.110.2/ks/ct6.cfg
     # ks告诉安装向导的内核,去哪里下载无人值守安装脚本	

编辑kickstar配置文件 确定执行创建配置文件的工具的系统已经配置好相应系统的yum源

六、 install kickstart

# yum install system-config-kickstart  pykickstart -y
# mkdir /var/www/html/ks
# system-config-kickstart

生成配置文件之后,把配置文件保存服务器上,保证可以通过http://192.168.110.2/ks/os6.cfg获得

or export so6.cfg contents:

    # basic configuration
    install
    lang zh_CN
    keyboard us
    timezone Asia/Chongqing
    rootpw --iscrypted $1$MBmhHOa1$U/HipMT.BB4Y17tQZgJPW0
 
    # Display configuration
    text
    skipx
 
    # Authentication
    authconfig --enabledshadow --enablemd5
    
    # Installation method
    url --url="http://192.168.31.10/os/ct5"
    logging --level=info
    reboot
    
    # Boot Loader Options
    bootloader --location=mbr
    
    # Partition Information
    zerombr
    clearpart --all --initlabel
    part /boot --fstype="ext3" --size=100
    part / --fstype="ext3" --size=5000
    part swap --fstype="swap" --size=512
    
    # Network Configuration
    network --onboot=yes --bootproto=dhcp --device=eth0 --noipv6 --hostname minimal
    
    # Firewall Configuration
    firewall --disabled
    selinux --disabled
    
    # Package Selection
        %packages
        audit-libs
        basesystem
        bash
        binutils
        bzip2
        bzip2-libs
        centos-release
        centos-release-notes
        chkconfig
        coreutils
        cpio
        cracklib
        cracklib-dicts
        crontabs
        cyrus-sasl-lib
        db4
        device-mapper
        device-mapper-event
	device-mapper-multipath
	dhclient
	diffutils
	dmraid
	dmraid-events
	e2fsprogs
	e2fsprogs-libs
	elfutils-libelf
	ethtool
	expat
	filesystem
	findutils
	fipscheck
	fipscheck-lib
	gawk
	gdbm
	glib2
	glibc
	glibc-common
	grep
	grub
	gzip
	hmaccalc
	info
	initscripts
	iproute
	iputils
	iscsi-initiator-utils
	kbd
	kernel
	keyutils-libs
	kpartx
	krb5-libs
	less
	libacl
	libattr
	libcap
	libgcc
	libselinux
	libsepol
	libstdc++
	libsysfs
	libtermcap
	libuser
	libutempter
	libxml2
	logrotate
	lvm2
	m2crypto
	MAKEDEV
	mcstrans
	mingetty
	mkinitrd
	mktemp
	module-init-tools
	nano
	nash
	ncurses
	net-tools
	nspr
	nss
	openldap
	openssh
	openssh-clients
	openssh-server
	openssl
	pam
	passwd
	pcre
	popt
	procps
	psmisc
	python
	python-elementtree
	python-iniparse
	python-libs
	python-sqlite
	python-urlgrabber
	readline
	redhat-logos
	rootfiles
	rpm
	rpm-libs
	rpm-python
	sed
	setup
	sgpio
	shadow-utils
	sqlite
	sysklogd
	SysVinit
	tar
	tcp_wrappers
	termcap
	tzdata
	udev
	usermode
	util-linux
	vim-minimal
	vixie-cron
	wget
	which
	yum
	yum-fastestmirror
	yum-metadata-parser
	zlib
	-atk
	-audit-libs-python
	-authconfig
	-binutils
	-bitstream-vera-fonts
	-cairo
	-checkpolicy
	-cryptsetup-luks
	-cups-libs
	-dbus
	-dbus-glib
	-dbus-libs
	-dhcpv6-client
	-dmidecode
	-ecryptfs-utils
	-ed
	-file
	-fontconfig
	-freetype
	-gnu-efi
	-gnutls
	-gtk2
	-hal
	-hdparm
	-hicolor-icon-theme
	-hwdata
	-keyutils
	-kudzu
	-libgcrypt
	-libgpg-error
	-libhugetlbfs
	-libjpeg
	-libpng
	-libselinux-python
	-libselinux-utils
	-libsemanage
	-libtiff
	-libusb
	-libvolume_id
	-libX11
	-libXau
	-libXcursor
	-libXdmcp
	-libXext
	-libXfixes
	-libXft
	-libXi
	-libXinerama
	-libXrandr
	-libXrender
	-newt
	-pango
	-pciutils
	-pm-utils
	-policycoreutils
	-prelink
	-rsyslog
	-selinux-policy
	-selinux-policy-targeted
	-setools
	-setserial
	-slang
	-sysfsutils
	-tcl
	-trousers
	-udftools
	-xorg-x11-filesystem
        @base
        -abrt-plugin-mailx
        -abrt-plugin-sosreport
        %end

七、 测试:

启动一个处于同一个网段的客户机去测试 Client: … wait KS dhcp install centos system.

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。