CBSD介绍
CBSD是为FreeBSD jail子系统、bhyve、QEMU/NVMM和Xen编写的管理层。该项目定位为一个综合解决方案的单一集成工具,用于使用预定义的软件集以最少的配置快速构建和部署计算机虚拟环境。
虽然CBSD没有提供额外的操作系统级功能,但它极大地简化了原本需要用户通过命令行界面(CLI)手动执行数十甚至数百个命令的复杂过程。CBSD的存在正是为了解决这一繁琐任务,让人能够更高效、更便捷地管理您的虚拟化环境,而非陷入无休止的命令行操作中。
官网:CBSD — FreeBSD Jail and Bhyve Management Tools
进入管理界面
在FreeBSD 宿主机里面,使用cbsd bconfig命令进入管理界面
cbsd bconfig
选择需要管理的bhyve主机,按确认即可。
首先vm_efi 这里一定要设为 uefi ,否则不能使用vnc管理。
然后菜单选择bhyve_vnc_options ,即可进入vnc设置子菜单。
VNC设置
设置VNC监听端口vm_vnc_port:
vm_vnc_port设为0 ,则CBSD自动设定可以使用的端口号
vm_vnc_port设为1,则CBSD不打开VNC的端口
vm_vnc_port设为其它数值,就把该数值作为VNC服务的端口号。
设置VNC密码
可以在管理界面设置vnc密码,也可以在配置文件里设置vnc密码。
VNC的密码在文件:~cbsd/etc/defaults/vnc.conf
个人密码文件在:~cbsd/etc/vnc.conf
(这里应该是初始配置的默认密码,建好的bhyve虚拟机的vnc密码应该存放在虚拟机存档目录,类似/usr/jails/vm/bub12/bhyve.conf)
修改创建虚拟机时的默认密码
比如将/usr/jails 设为cbsd根目录,那么文件默认配置文件 /usr/jails/etc/defaults/vnc.conf ,其中设置密码为:
default_vnc_password="cbsd"
不建议修改默认配置文件,如果需要修改,我们可以使用etc/vnc.conf文件,比如我们touch一个文件
/usr/jails/etc/vnc.conf
文件中加入密码:
default_vnc_password=
'test'
也可以使用命令直接生成:
echo default_vnc_password='test' > /usr/jails/etc/vnc.conf
在虚拟机存盘文件中修改密码
修改虚拟机存档文件目录里的配置文件:/usr/jails/vm/bub12/bhyve.conf
vm_vnc_port='5901'
vnc_password="123"
设置bhyve_vnc_tcp_bind侦听ip
为了安全,默认只支持127.0.0.1 本地地址登录vnc,可以设置bhyve_vnc_tcp_bind参数,将其设为0.0.0.0, 这样就能支持网络登录了。
关于CBSD bhyve 虚拟机的配置文件
发现CBSD的配置文件在如下三个地方:
其一在/usr/local/cbsd/etc
其二在 /usr/jails/etc/
其三在 /usr/jails/vm/bub12
根据手册,感觉/usr/local/cbsd/etc是创建虚拟机时调用的参数存档,/usr/jails/vm/bub12 是单独bub12这个虚拟机的存档文件所在。
进行测试,在/usr/local/cbsd/etc加入vnc.conf文件 ,文件内容:
default_vnc_password=
'test'
远程登录,还是密码错误(后来知道这些文件的区别,并且设置生效需要重启虚拟机)
调试操作
因为刚开始怎么设置都不生效,于是尝试给vnc换端口
给vnc换一个端口,比如5901
到cbsd bhyve设置菜单里,设置vnc端口为5901,密码为123 。
但是退出菜单后发现端口并没有更新,还是5900
tcp4 0 0 *.5900 *.* LISTEN
pf防火墙打开5901端口
首先到/etc/pf.conf文件里,防火墙放开5901
tcp_services = "{ ssh, smtp, domain, www, pop3, auth, pop3s,443,5900, 5901 }"
重启pf服务,重启命令:
service pf restart
尝试重启bhyve 虚拟主机
cbsd brestart bub12
重启后,打印出监听5901端口和密码,问题解决。
查看bhyve虚拟机配置文件
事实证明,前面的配置文件都没有起作用。经过查找,发现bub12这台虚拟机的配置文件在这里:
/usr/jails/vm/bub12/bhyve.conf
里面有vnc端口、口令等信息
vm_vnc_port='5901'
bhyve_generate_acpi='1'
bhyve_wire_memory='0'
bhyve_rts_keeps_utc='0'
bhyve_force_msi_irq='0'
bhyve_x2apic_mode='0'
bhyve_mptable_gen='1'
bhyve_ignore_msr_acc='0'
cd_vnc_wait="1"
bhyve_vnc_resolution="1024x768"
bhyve_vnc_tcp_bind="0.0.0.0"
vnc_password="123"
总结:
CBSD里修改bhyve的VNC 端口和密码,需要重启bhyve虚拟机。
配置文件在bhyve虚拟机的存档目录里,即:/usr/jails/vm/bub12/bhyve.conf
调试
到VNC里修改配置,设为5901端口,但是退出后发现端口并没有监听。
这样证明配置并没有起作用,那么修改口令应该也没有起作用。
tcp4 0 0 *.5900 *.* LISTEN
重启cbsd bhyve服务:
cbsd brestart bub12
cbsd brestart bub12
Send SIGTERM to bub12. Soft timeout is 30 sec. 13 seconds left [................Send SIGTERM to bub12. Soft timeout is 30 sec. 12 seconds left [................Send SIGTERM to bub12. Soft timeout is 30 sec. 11 seconds left [................Send SIGTERM to bub12. Soft timeout is 30 sec. 10 seconds left [................Send SIGTERM to bub12. Soft timeout is 30 sec. 9 seconds left [.................Send SIGTERM to bub12. Soft timeout is 30 sec. 8 seconds left [.................Send SIGTERM to bub12. Soft timeout is 30 sec. 7 seconds left [.................Send SIGTERM to bub12. Soft timeout is 30 sec. 6 seconds left [.................Send SIGTERM to bub12. Soft timeout is 30 sec. 5 seconds left [.................Send SIGTERM to bub12. Soft timeout is 30 sec. 4 seconds left [.................Send SIGTERM to bub12. Soft timeout is 30 sec. 3 seconds left [.................Send SIGTERM to bub12. Soft timeout is 30 sec. 2 seconds left [.................Send SIGTERM to bub12. Soft timeout is 30 sec. 1 seconds left [.................Send SIGTERM to bub12. Soft timeout is 30 sec. 0 seconds left [..............................]
bstop done in 16 seconds
VRDP is enabled. VNC bind/port: 192.168.1.5:5901
For attach VM console, use: vncviewer 192.168.1.5:5901
Resolution: 1024x768.
VNC pass: 123
Warning!!! You are running a system with open VNC port to the world wich is not secure
Please use IP filter or balancer with password to restrict VNC port access
Or change vnc_bind params to 127.0.0.1 and reboot VM after maintenance work
bhyve renice: 1
Waiting for PID.
PID: 87023
CBSD setup: bhyve ipfw counters num: 103/104
bstart done in 7 seconds
发现监听端口变了,口令也打出来了。
事实证明改完口令、端口这些参数,需要重启bhyve 虚拟机才能生效。