Liunx中的无人职守安装脚本kickstart

1.kickstart自动安装脚本的作用

       在企业安装多台操作系统时,面临的问题是,当安装Linux操作系统时,安装过程需要回答许多有关设定的问题,这些问题必须手动选择,否则无法安装,当只安装1台liunx系统,手动选择设定工作量比较轻松,当安装多台liunx,这些设定需要重复多次,这些重复设定效率低下,如何解决上述问题? 用文件来记录所有安装过程中需要回答的问题,并让所有需要重复多次安装的主机自动读取,以上解决方案中记录系统安装过程中所有问题答案的文件叫kickstart脚本。

2.实验环境的搭建

(1)配置主机node1的IP为172.25.254.20

火墙关闭:systemctl disable --now firewalld     

  selinux关闭  用setenforce 0 可临时解决问题

开启httpd资源共享服务,需安装httpd服务, 

dnf  install httpd

systenctl enable --now httpd

操作如下

去虚拟化虚拟下载_去虚拟化虚拟下载

去虚拟化虚拟下载_安装过程_02

(2)编写yum文件

首先创建目录  /var/www/html/westos_8 

然后挂载文件 mount /dev/cdrom    /var/www/html/westos_8 

编写/etc/yum.repos.d/westos.repo     将其中的baseurl改写为http://172.25.254.20/var/www/html/westos_8/

操作如下:

去虚拟化虚拟下载_系统安装_03

去虚拟化虚拟下载_去虚拟化虚拟下载_04

       上述实验环境的搭建,是为了资源共享,在安装操作系统时,每个被安装的操作系统都要有安装资源,如果使用镜像安装,每个安装的系统都要加载一个镜像,这样会浪费存储,通过网络来共享资源,让安装系统的主机能通过网络访问的方式被共享的资源,这样就可以解决多台主机需要多个镜像安装的问题。

3.kickstart自动安装脚本的制作

在rhel7中提供自动安装脚本的制作,在rhel8中已经把图形的工具取消,并添加到rhn网络中,在rhel8中如果无法用rhn网络制作kickstart,那么可以使用模版生成

(1)通过模版生成kickstart文件

         在已经安装的rhel8系统中 /root/anaconda-ks.cf就是安装当前系统时回答的所有问题的答案,生成的kickstart文件为kickstart模版。

  (2)将 /root/anaconda-ks.cf文件复制到/var/www/html/westos.cfg 中,然后   vim    /var/www/html/westos.cfg  编辑文件内容,

根据自己需求修改文件内容,文件修改内容如下

去虚拟化虚拟下载_安装过程_05

去虚拟化虚拟下载_去虚拟化虚拟下载_06

去虚拟化虚拟下载_html_07

去虚拟化虚拟下载_安装过程_08

#version=RHEL8

 ignoredisk --only-use=sda                                                                    ##只是用我们系统中的第一块硬盘

#Partition clearing information

clearpart --all --initlabel --drives=sda                                                    ##把sda硬盘的所有内容删掉

# Use graphical install

#graphical                                                                                              ##安装过程开启图形

text                                                                                                         ##安装过程不开图形

repo --name="AppStream" --baseurl=http://172.25.254.20/westos_8/AppStream   ##软件安装资源              

# Use netsource installation media

url --url="http://172.25.254.20/ westos_8"                                            ##系统安装资源

# Keyboard layouts keyboard --vckeymap=us --xlayouts='us'             ##键盘布局为美式键盘

# System language

lang en_US.UTF-8 --addsupport=zh_CN.UTF-8                                     ##系统支持的语言

# Network information

network  --bootproto=dhcp --device=ens160 --onboot=on --ipv6=auto --noactivate  ##网卡设定

network  --hostname=localhost.localdomain                                         ##主机名设定

# Root password

rootpw --plaintext westos

authselect --enableshadow --passalgo=sha512                                    ##系统默认开启的加密认证方式

# X Window System configuration information

#xconfig  --startxonboot                                                                       ##安装完成后开机启动图形

skipx                                                                                                       ##安装完成后开机不启动图形

# Run the Setup Agent on first boot

firstboot --disable                                                                                 ##首次启动初始化禁止

# System services

services --disabled="chronyd,firewalld" --enabled="sshd"                 ##在开机时开启或关闭的服务

# System timezone

timezone Asia/Shanghai --isUtc --nontp                              ##系统时区,启用utc计时方式,不其同ntp时间同步

#user --name=westos --password=$6$W8HmY8FoDLmjcv65$Xo.SIxQ4rAWK19QBUvXP1et1us191K5w6GlIZvyEMaKx1FBK6EFTiwHC0X5DiktBfJzRsC --iscrypted --gecos="westos"

# Disk partitioning information

part / --fstype="xfs" --ondisk=sda --grow --size=1                        ##让/分 区使用全部空闲磁盘空间

part /boot --fstype="xfs" --ondisk=sda --size=200                        ##/boot 分区大小为200M

part swap --fstype="swap" --ondisk=sda --size=500                     ##swap 分区大小为500M

 %packages

@base                       ##安装软件组base

httpd                         ##安装单个软件httpd

%end 

#%pre                        ##系统安装前自动执行的脚本

#%end

%post                        ##系统安装后自动执行的脚本

cat >> /etc/yum.repos.d/westos.repo <<EOF

[AppStream]

name=AppStream

baseurl=http://172.25.254.20/westos_8/AppStream

gpgcheck=0 

 [BaseOS]

name=BaseOS

baseurl=http://172.25.254.20/westos_8/BaseOS

gpgcheck=0

EOF

%end

修改好文件之后 需要检测文件的语法 此时要安装 dnf  install pykickstart.noarch   

然后通过  kisvalidator   /var/www/html/westos.cfg  检验是否有语法错误。

去虚拟化虚拟下载_系统安装_09

4.根据修改的文件 重新创建新的虚拟机 运行kickrestart脚本

安装过程简单。需要实验操作。

测试:

(1)需要配置好DHCP服务,配置操作流程前面内容有体现,让被安装的主机可以获得ip来访问网络资源及kickstart文件

(2)在配置好系统硬件后,开启虚拟机,进入安装界面,按TAB键,然后输入ks=http://172.25.254.20/westos.cfg

去虚拟化虚拟下载_html_10

(3)点击enter 直接进入自动化安装界面 

去虚拟化虚拟下载_系统安装_11

5.在虚拟机中用运行kickrestart脚本安装虚拟机 

(1)虚拟机中的虚拟化工具

   kvm的安装条件条件:inter cpu  vmx;     amd  cpu   svm      两者中有一个即可     用命令 cat  /proc/cpuinfo  可查看信息

去虚拟化虚拟下载_去虚拟化虚拟下载_12

   (2)kvm虚拟化安装: 安装3个插件 :  dnf  group install “Virtualization Client” -y      dnf  group install “Virtualization Tools” -y

                                                          dnf  group install “Virtualization Hypervisor” -y

    注意开机前要将下面3个选项打开

  

去虚拟化虚拟下载_去虚拟化虚拟下载_13

(3)KVM虚拟化相关信息

    服务名称:libvirtd

    虚拟化内核:qemu

(4)在虚拟机中用运行kickrestart脚本安装虚拟机 

a) 在虚拟机中打开工具

    

去虚拟化虚拟下载_html_14

b)点击新建虚拟机

去虚拟化虚拟下载_安装过程_15

c)选择kickstart脚本文件安装 

注意:安装前先检测挂载情况 DHCP服务开启情况,需要将 /var/www/html/westos.cfg 文件中的sda改成vda

d)开始安装

去虚拟化虚拟下载_系统安装_16

点击进入之后,有几种模式可选,当选择NAT模式时安装会出问题,需要设置网桥模式(br0)

两种模式的原理图:

NAT模式

去虚拟化虚拟下载_安装过程_17

br0模式

去虚拟化虚拟下载_去虚拟化虚拟下载_18

首先运用bridge link list 查看有没有br0,建立br0过程如下:

编写两个文件

去虚拟化虚拟下载_html_19

重启服务: nmcli connection reload  下面情况表示网桥建立成功

去虚拟化虚拟下载_html_20

进入安装环境

去虚拟化虚拟下载_安装过程_21

给定内存至少2个G

去虚拟化虚拟下载_系统安装_22

去虚拟化虚拟下载_去虚拟化虚拟下载_23

选择配置好的br0

去虚拟化虚拟下载_去虚拟化虚拟下载_24

点击完成后进入系统安装,运行KICKstart脚本 自动安装。

安装好的界面如下图:

去虚拟化虚拟下载_系统安装_25