Linux 基础用法(十三) ———— 自动部署虚拟机脚本、DHCP、HTTP、将服务添加到防火墙规则

上一节总结以下有关于虚拟机的创建、快照、重装以及管理,这一节总结利用脚本来自动安装linux主机以及DHCP服务

一、Kickstart

1、kickstart是一个主机安装脚本生成器,通过图形化的界面选择安装主机的配置,之后自动生成 ks.cfg格式的脚本,再结合上一节学的自动安装虚拟机的知识,完成通过脚本自动安装linux主机的目标

2、安装kickstart
如果没有安装就通过yum search kickstart 查找安装
Linux 基础用法(十三) ———— 自动部署虚拟机脚本、DHCP、HTTP、将服务添加到防火墙规则
然后通过 system-config-kickstart 命令调取kickstart的界面图形,之后根据选项安装
Linux 基础用法(十三) ———— 自动部署虚拟机脚本、DHCP、HTTP、将服务添加到防火墙规则

Linux 基础用法(十三) ———— 自动部署虚拟机脚本、DHCP、HTTP、将服务添加到防火墙规则

Linux 基础用法(十三) ———— 自动部署虚拟机脚本、DHCP、HTTP、将服务添加到防火墙规则

Linux 基础用法(十三) ———— 自动部署虚拟机脚本、DHCP、HTTP、将服务添加到防火墙规则

Linux 基础用法(十三) ———— 自动部署虚拟机脚本、DHCP、HTTP、将服务添加到防火墙规则

Linux 基础用法(十三) ———— 自动部署虚拟机脚本、DHCP、HTTP、将服务添加到防火墙规则

Linux 基础用法(十三) ———— 自动部署虚拟机脚本、DHCP、HTTP、将服务添加到防火墙规则

Linux 基础用法(十三) ———— 自动部署虚拟机脚本、DHCP、HTTP、将服务添加到防火墙规则

这是每个类型的意思
Linux 基础用法(十三) ———— 自动部署虚拟机脚本、DHCP、HTTP、将服务添加到防火墙规则

package selection 无法选择,我们需要编辑ks.cfg文件添加上我们所需的包和服务
pre-installation script 安装前执行脚本
post-installation script 安装后执行脚本

然后保存下来,因为咱们选择的安装路径是http的,所以建议直接保存再/var/www/html 下,就可以直接通过url访问了
如果没有保存再这个地址,就得用 cp 的命令,将它复制到这个目录下,只能用复制

3、编辑ks.cfg
Linux 基础用法(十三) ———— 自动部署虚拟机脚本、DHCP、HTTP、将服务添加到防火墙规则
因为packages的无法选择,所以我们需要再ks.cfg中添加底40-43行的代码
如果是添加服务,直接填写服务,如:lftp
如果是添加包,需要再前面加上 ‘ @ ‘号,如:@base
最后以%end结尾

这是ks文件的参数解析
Linux 基础用法(十三) ———— 自动部署虚拟机脚本、DHCP、HTTP、将服务添加到防火墙规则

4、ksvalidator命令
通过这个命令可以帮助审核ks文件的格式,但不能审核配置的内容

Linux 基础用法(十三) ———— 自动部署虚拟机脚本、DHCP、HTTP、将服务添加到防火墙规则

Linux 基础用法(十三) ———— 自动部署虚拟机脚本、DHCP、HTTP、将服务添加到防火墙规则
他就会自动审核出格式出现的问题,只能审核格式

5、安装虚拟机
再上一节的脚本基础上增加如下代码
Linux 基础用法(十三) ———— 自动部署虚拟机脚本、DHCP、HTTP、将服务添加到防火墙规则
规范一点就是这样
Linux 基础用法(十三) ———— 自动部署虚拟机脚本、DHCP、HTTP、将服务添加到防火墙规则
这里将系统的读取方式(location)改变了,同时增加了需要读取脚本的功能(extra-args)
这些都以通过man virt-install 来查看相应的参数

然后运行,等待就可以了
Linux 基础用法(十三) ———— 自动部署虚拟机脚本、DHCP、HTTP、将服务添加到防火墙规则

注意:
如果选择DHCP,一定要打开DHCP的服务,同时配置正确
如果提示无法打开ks.cfg,先查看HTTP服务是正常,然后查看配置文件
配置文件包括建立的虚拟机的脚本,KS的脚本

拓展:
如何控制创建出来的虚拟机DHCP的地址段?
设想:修改本机桥接地址

二、HTTP服务基础

1、通过YUM安装http服务
Linux 基础用法(十三) ———— 自动部署虚拟机脚本、DHCP、HTTP、将服务添加到防火墙规则
Linux 基础用法(十三) ———— 自动部署虚拟机脚本、DHCP、HTTP、将服务添加到防火墙规则
2、建立新的目录,将硬盘挂载到目录上,使得能够通过url访问下载数据
Linux 基础用法(十三) ———— 自动部署虚拟机脚本、DHCP、HTTP、将服务添加到防火墙规则
Linux 基础用法(十三) ———— 自动部署虚拟机脚本、DHCP、HTTP、将服务添加到防火墙规则

这么做的目的是为了告诉kickstart脚本来这里读取硬盘和脚本
http的目录再 /var/www/html 下
http相当于一个共享的空间

三、DHCP服务

1、通过yum安装dhcp服务
2、拷贝dhcp配置文件并修改
Linux 基础用法(十三) ———— 自动部署虚拟机脚本、DHCP、HTTP、将服务添加到防火墙规则

Linux 基础用法(十三) ———— 自动部署虚拟机脚本、DHCP、HTTP、将服务添加到防火墙规则

Linux 基础用法(十三) ———— 自动部署虚拟机脚本、DHCP、HTTP、将服务添加到防火墙规则
3、查看DHCP分配的地址
Linux 基础用法(十三) ———— 自动部署虚拟机脚本、DHCP、HTTP、将服务添加到防火墙规则

四、添加防火墙规则

1、添加http和dhcp服务
Linux 基础用法(十三) ———— 自动部署虚拟机脚本、DHCP、HTTP、将服务添加到防火墙规则

五、总结

想要在真机自动部署虚拟机需要以下几点:
1、http、dhcp服务
2、创建虚拟机的脚本或者图形化界面读取安装盘信息(virt install)
3、创建自动读取安装盘信息的脚本(kickstart)
4、防火墙允许策略
5、一块安装盘(读取方式可以是cdrom、http等)