0x02 virt-install + kickstart 实现脚本化无人执守安装虚拟机
virt-install 由python编写的一个脚本。 (在redhat 企业版中 它是 virt-install.noarch 这个包)可以实现 脚本自动化安装。
一、virt-install 命令安装的简单例子
#!/bin/bash
virt-install \
--name test \ 安装虚拟机名
--ram 1024 \ 分配内存大小
--location http://172.25.254.70/public/red7.0 \ 安装源
--file /var/lib/libvirt/p_w_picpaths/tes.img \ 硬盘位置
--file-size 8 \ 文件大小 G
##这样就可以实现本地脚本安装。。
#建立 vnc 连接 就可以实现 远程 安装
--vncport=7000 \ ###开启vnc端口
--vnc \ ###开启vnc
--vnclisten=172.25.254.1 ###端口开启的ip
最后 vncviewer 172.25.254.1:7000 链接虚拟机图形
但是这样还是不能实现 无人执守 安装 虚拟机。。因此就必须借助于 kickstart。。
kickstart 能够 完成 安装过程中 所有需要 手动添加设置的参数,运行kickstart 最终会生成一个 ks.cfg的文件
最终 virt-install + kickstart shell 脚本 示例
#!/bin/bash
virt-install \
--name test \ 安装虚拟机名
--ram 1024 \ 分配内存大小
--location http://172.25.254.70/public/red7.0 \ 安装源
--file /var/lib/libvirt/p_w_picpaths/tes.img \ 硬盘位置
--file-size 8 \ 文件大小 G
--extra-args ks=http://172.25.254.70/ks.cfg ks.cfg 文件位置
# --vncport=7000 \ ###开启vnc端口
# --vnc \ ###开启vnc
# --vnclisten=172.25.254.1 ###端口开启的ip
因为可以 kickstart 实现了 无人执守 所以不用 vnc 来 完成 安装设置。。
友情提供:virt-install常用参数
-n --name= 客户端虚拟机名称
-r --ram= 客户端虚拟机分配的内存
-u --uuid= 客户端UUID 默认不写时,系统会自动生成
--vcpus= 客户端的vcpu个数
-v --hvm 全虚拟化
-p --paravirt 半虚拟化
-l --location=localdir 安装源,有本地、nfs、http、ftp几种,多用于ks网络安装
--vnc 使用vnc ,另有--vnclient=监听的IP --vncport =VNC监听的端口
-c --cdrom= 光驱 安装途径
--disk= 使用不同选项作为磁盘使用安装介质
-w NETWORK, --network=NETWORK 连接客户机到主机网络
-s --file-size= 使用磁盘映像的大小 单位为GB
-f --file= 作为磁盘映像使用的文件
--cpuset=设置哪个物理CPU能够被虚拟机使用
--os-type=OS_TYPE 针对一类操作系统优化虚拟机配置(例如:‘linux’,‘windows’)
--os-variant=OS_VARIANT 针对特定操作系统变体(例如’rhel6’, ’winxp’,'win2k3')进一步优化虚拟机配置
--host-device=HOSTDEV 附加一个物理主机设备到客户机。HOSTDEV是随着libvirt使用的一个节点设备名(具体设备如’virsh nodedev-list’的显示的结果)
--accelerate KVM或KQEMU内核加速,这个选项是推荐最好加上。如果KVM和KQEMU都支持,KVM加速器优先使用。
-x EXTRA, --extra-args=EXTRA 当执行从"--location"选项指定位置的客户机安装时,附加内核命令行参数到安装程序
--nographics "virt-install" 将默认使用--vnc选项,使用nographics指定没有控制台被分配给客户机