可通过三种路径实现银河麒麟系统与vagrant协同:一、定制导入现有麒麟虚拟机为box;二、用packer自动化构建标准box;三、通过vagrant-libvirt+iso直接无人值守安装。

如果您希望在开发环境中快速构建、复用和销毁银河麒麟操作系统的虚拟机实例,但发现Vagrant官方box仓库中缺少适配麒麟OS的预编译镜像,则可能是由于国产操作系统生态尚未完全集成至Vagrant社区标准分发体系。以下是实现银河麒麟系统与Vagrant协同工作的多种可行路径:
一、基于现有Linux Box定制化导入麒麟系统
该方法利用Vagrant对通用Linux box的兼容性,将已安装完成的银河麒麟虚拟机导出为OVF/OVA格式,再封装为Vagrant可识别的box文件,适用于已有稳定麒麟虚拟机环境的用户。
1、在VMware Workstation中完成银河麒麟服务器V11的完整安装并配置基础网络、SSH服务及root密码。
2、确保虚拟机中已启用SSH服务:执行 systemctl is-active sshd 验证返回 active;若未启用,运行 systemctl enable --now sshd 启动并设为开机自启。
3、关闭虚拟机,在VMware中右键该虚拟机 → 选择“导出为OVF”,保存为 kylin-server-v11.ovf 及关联的 .vmdk 文件。
4、使用 vagrant package 命令将OVF转换为box:vagrant package --base "kylin-server-v11" --output kylin-server-v11.box(需提前通过 VMware 的 ovftool 或第三方工具将OVF转为VirtualBox/Vagrant兼容格式)。
5、添加本地box:vagrant box add kylin/server-v11 kylin-server-v11.box。
二、使用Packer自动化构建麒麟Vagrant Box
该方法通过HashiCorp Packer工具,依据JSON模板自动下载麒麟ISO、启动虚拟机、执行无人值守安装脚本并打包为标准Vagrant box,适合需要批量生成或CI/CD集成的场景。
1、安装Packer(版本≥1.10.0)及对应builder插件(如 vmware-iso 或 virtualbox-iso)。
2、创建 kylin-server-v11.json 模板,其中 iso_url 指向已下载的 Kylin-Server-V11-Release-20250922-x86_64.iso,boot_command 包含自动选择Install Kylin Linux、设置语言、跳过媒体检测等参数序列。
3、编写 preseed.cfg 或 kickstart ks.cfg 文件,定义分区方案(LVM+ext4)、网络配置(DHCP)、root密码哈希(使用openssl passwd -6)、SSH密钥注入及必要软件包(openssh-server、curl、wget)。
4、执行构建命令:packer build kylin-server-v11.json,成功后输出 kylin-server-v11.box。
5、验证并添加box:vagrant box add --name kylin/server-v11 --provider vmware_desktop kylin-server-v11.box(若使用VMware provider)。
三、通过Vagrant + libvirt(KVM)直接挂载ISO启动安装
该方法绕过预构建box流程,利用Vagrant-libvirt插件直接控制KVM虚拟机,以ISO镜像为安装源,在首次up时触发交互式或自动安装流程,适用于无现成box且偏好轻量级开源虚拟化栈的用户。
1、安装libvirt、qemu-kvm及 vagrant-libvirt 插件:vagrant plugin install vagrant-libvirt。
2、创建Vagrantfile,指定 provider 为 libvirt,并在 config.vm.provider :libvirt 块中设置:config.vm.synced_folder ".", "/vagrant", disabled: true(禁用默认共享目录,避免安装冲突)。
3、在 provider 配置中添加 ISO 相关参数:iso_url: "./Kylin-Server-V11-Release-20250922-x86_64.iso",并配置 install: true 与 install_command 执行自动安装指令序列。
4、准备 kickstart 文件 ks.cfg 并置于同级目录,在 Vagrantfile 中通过 :ks => "ks.cfg" 参数传递给安装器。
5、运行 vagrant up --provider=libvirt,Vagrant将自动创建KVM实例、挂载ISO、加载kickstart并开始无人值守安装。











