我正在使用 Salt 为公司配置物理和虚拟机。如果我也能使用 Salt (Salt-Virt) 来管理主机上运行的各种虚拟机,那就太好了,因为虚拟机的数量/复杂性正在快速增长。
我现在的情况如下:
- 按照本指南,将软件包更改为 Ubuntu 而不是 RHL:http://docs.saltstack.com/en/latest/topics/tutorials/cloud_controller.html
- 物理机和虚拟机均运行 Ubuntu Server
- 我可以运行
salt-run virt.init test1 2 512 salt://BASE.img
命令将机器部署到主机。 - 该图像在 minion 上显示
/srv/salt-images/test1/
为 .qcow2
但主机(虚拟机管理程序)似乎不知道虚拟机的存在。我没有从 master 或 minion 上的 Salt 收到任何错误。
- 在主机上,
virsh list
返回一个空列表 - 在 Salt Master 上,
salt-run virt.start test1
返回错误:Failed to find vm test1 to start
有人让 Salt-Virt 在 Ubuntu 上运行过吗?我错过了什么?
答案1
我找到了解决方案。步骤如下:
- 两台机器,M1 和 M2
- 在 M1 上:
- 安装 salt master
- 将虚拟硬盘移至此机器,将其放置在
/srv/salt
- 对我来说,这是
/srv/salt/base.vdi
- 对我来说,这是
- 将虚拟机文件转换为qcow2格式
- 对我来说,这是
qemu-img -f vdi -O qcow2 base.vdi base.qcow2
- 对我来说,这是
- 在 M2 上:
- 安装 salt minion
- 安装 libvirt-bin
- 安装 python-libvirt
- 配置桥接网络接口
br0
- 这很重要,因为这是 salt-virt 连接虚拟机的默认接口名称
太棒了。机器现在应该可以运行了。
在主服务器上,运行salt "*" virt.init <name_of_vm> <num_cores_for_vm> <mb_of_ram_for_vm> <path_to_image>
对我来说,这是salt "*" virt.init test_vm 2 512 salt://base.qcow2
机器应以 M2 速度旋转。
salt-run virt.query
在 salt master 上进行测试