Linux通过脚本文件自动创建虚拟机
虚拟机的建立前面的文章讲了几种常用的建立方法,但是若是大规模的建立虚拟机就显得十分麻烦,因此可以通过kickstart在服务器建立ks.fg文件和建立脚本文件来进行虚拟机的自动安装
- kickstart
KickStart:是一种无人职守安装方式。KickStart的工作原理是通过记录典型的安装过程中所需人工干预填写的各种参 数,并生成一个名为ks.cfg的文件;在其后的安装过程中(不只局限于生成KickStart安装文件的机器)当出现要求填写参数的情况时,安装程序会首先去查找KickStart生成的文件,当找到合适的参数时,就采用找到的参数,当没有找到合适的参数时,才需要安装者手工干预。这样,如果KickStart文件涵盖了安装过程中出现的所有需要填写的参数时,安装者完全可以只告诉安装程序从何处取ks.cfg文件,然后去忙自己的事情。等安装完毕,安装程序会根据ks.cfg中设置的重启选项来重启系统,并结束安装。
1. 先安装:system-config-kickstart 软件
在shell
中执行:
yum install system-config-kickstart -y
[root@foundation151 ~]#
yum install system-config-kickstart.noarch
Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-
: manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Resolving Dependencies
–> Running transaction check
~ ~ ~
~ ~ ~
Install 1 Package (+5 Dependent packages)Total download size: 1.7 M
Installed size: 6.4 M
Is this ok [y/d/N]: y
Downloading packages:
Total 4.2 MB/s | 1.7 MB 00:00
Running transaction check
Running transaction test
Transaction test succeeded
~ ~ ~
~ ~ ~
Complete!
下载完成后执行:
system-config-kickstart
2.进行图形界面的选择
基本配置(basic configuration)
进行如下项目的选择 :1.default language 默认语言
2.keyboard:键盘
3.time zong:时区
4.root passwrod:超级用户密码
5.confirm password:确认密码
注:
勾选的encrypt root password 表示在查看ks.cfg
文件时,里面的密码内容是否为明码
高级配置(adcanced configuration)1.target architecture : 处理器类型
2.reboot systemctl after installation :是否安装后重启机器
3.perform installation in text mode (graphical is default):文本模式下执行安装(图形默认)安装方法(installation method)
进行如下项目的选择 :1.perform new installation:建立新安装
2.installation source:安装源选择
3.HTTP1.HTTP Server :http服务端IP
2.HTTP Directory:目录引导加载程序选项(boot loader options)
进行如下项目的选择 :1.install new boot loader:安装新的引导加载程序
2.install boot loader on master boot record(MBR):在主引导记录上安装引导加载程序- 分区信息(partition information)
进行如下项目的选择 :
1.clear master boot record:明确主引导记录
2.remove all existing partitions:删除所有现有的分区
3.initialize the disk label:初始化磁盘标签
选择add:对
/boot,sawp,/
分区进行划分
/boot:200M
swap:500M
剩下的均给/
- 网络配置(network configuration)
进行如下项目的选择 :
add network device:添加网络设备
1.network device :网络设备eth0
2.network type:网络类型 dhcp
- 防火墙配置
进行如下项目的选择 :
1.SElinux(Security-Enhanced Linux,安全增强式Linux)
disable:关闭
2.Security level:安全级别
disable firewall:开机不启动防火墙
显示配置(display configuration)
进行如下项目的选择 :1.install a graphical environment:安装一个图形环境
2.on first boot,setup agent is disable:在第一次启动时,设置代理不启动- 进行保存
保存到:
/var/www/html/
选择file —->save as
3.编辑/var/www/html/ks.cfg
vim /var/www/html/ks.cfg
内容如下:
36 part / --fstype="xfs" --grow --size=1
37 # Packages selection
38 %packages
39 @base
40 lftp
41 %end
编辑完毕后可通过:ksvalidator ks.cfg 检测是否有语法错误
配图:
4.编辑脚本,建立虚拟机
touch /mnt/vm_create.sh #创建脚本文件
chmod +x /mnt/vm_create.sh #对文件赋予执行权限
vim /mnt/vm_create.sh #编辑文件
编辑内容如下 :
#!/bin/bash #非注释,翻译,表示由/bin/bash为父进程
virt-install \ #虚拟机建立
--name $1 \ #虚拟机名
--ram 1024 \ #随机存储大小
--cpus 1 \ #CPU个数
--disk /var/lib/libvirt/images/$1.qcow2,size=8,bus=virtio \ #硬盘文件所在地,类型,大小,bus硬盘类型
--location http://172.25.151.250/rhel7.2 \ #本地选项
--network source=br0,model=virtio \ #网络源,模式
--extra-args "ks=http://172.25.151.250/ks.cfg" & #虚拟机建立选项
编辑完毕,执行
sh /mnt/vm_create.sh lin #lin 为虚拟机名称
进行虚拟机建立
如下图所示的情况,为操作正确,静待安装成功