Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 5 Aug 2024 18:12:38 +0200
From:      Harry Schmalzbauer <freebsd@omnilan.de>
To:        freebsd-current@freebsd.org
Cc:        virtualization@FreeBSD.org
Subject:   RFC: rc(8) script for bhyve(8) on FreeBSD
Message-ID:  <178d585e-2ce0-4b69-a017-8af7f9b78a57@omnilan.de>

index | next in thread | raw e-mail

[-- Attachment #1 --]
Hello,

two years elapsed since I last deployed a FreeBSD machine that utilizd 
bhyve(8), which already had bhyve_config(5) support back then.

I was astonished that I still couldn't find bhyve in /etc/rc.d in 
14.1-stable as of last week.
Since I utilize ng_bridge(8) and do some more things differently than 
vm-bhyve / iocage and the like, I wanted to have something straight 
forward, capable of making use of the wonderful bhyve_config(5) feature, 
for use cases where /usr/share/examples/bhyve/vmrun.sh isn't suitable.

Please find attached my first approch, which currently covers the 
following features:

- auto-preload FreeBSD guest using bhyveload(8) in case config file 
doesn't define lpc.bootrom
- Allows referencing %(youname_somevar) in config file if defined as 
bhyve_youname_somevar in rc.conf(5).
   (For example:
     bhyve_vmdisk_default_pool="myppol2"
     bhyve_vmdisk_default_dataset="bhyveVOL/sys"
     and
pci.0.3.0.path=/dev/zvol/%(vmdisk_default_pool)/%(vmdisk_default_dataset)/%(name) 
in bhyve_config(5) file
   )
- Adaptive handling of start/stop requests depending on 'AUTO' 'ALL' or 
specific list of VM names, depending on the non-bhyve_cfg(5) 'autostart' 
option.
- Hopefully balanced amount of messages about what's going on, to be 
user friendly but not spamming.

There's a lot of room for improvements (selectable pre-jail/post-jail 
order, bootdisk detection, priority handling, a useful 'status' 
implementation, style) and for sure some bugs, but this version works 
well for my current setup.
Happy to contribute if useful for others, feedback welcome.

-harry



[-- Attachment #2 --]
7zXZִF!t/kd]\v>Eِ"2=*!T<͒KOd1z -/3_n̞ߒ[J+{ϤGȬ'
q;wC6p7Кn+*)Z܆{ڗ
Lfe-T8p"'gQ>	xڥ˅l5[sTc*RS\Tg
gbp4@YJvz>-	"N1+} HѨkJPY"bgó٘ylU]^,sO,e\uHBЇqbώٗ
A9.?EB
iR6apb-m˒aOL"y7'-7pyzUգR.,gu_!Luytl'`g(uC'!8tuE~5s`<I27bWD(l "_!ieaIU89YtT
%︧2~-EʸBjt
GPg{hq~E­Ս߃>\7石H6Rs|#ZMǷ^q'TRbP	Bp'%fYf#+x"<eד{#[GL͎NImPVݢ]ztR/WK
 %)EN{mi6vwkټjmU}W4BYGuߑGplTFyՎSCpsW驚c4Mp-%|!ZhcP"2Dh,H]$'Ѻ|4DY7ʦ˧ҧtg\SecPm:z54EZCrEdnȘ=Uce+	YGV!TJ 
ȶj!ern0TA3h.b}çHPͨ~mbC=Á
탩@s0yqY7]+ʲ_cZϸj	P%\iD	wj<WטOh:Of”|ce|_dk::djJ'iU)ueϔ1x
MAY~Wi{
ԸN-[i\xwkuDMPRiiSsHogG-z
+f;W5׈;X_:?izGtC,*/ynXfqc8@.`
sATRȬ]LKʛXtCn@8c=
_(։G^0'|/
a-b5xw 7v/
0-Z8jmZ`^@RhÚS
P2{
^2֍P[f~T΍(27jo\Y~k!rge
f/5vh\e:J6	SPwOɈI<	Hҹv5at9sE7w4Qؙa2R
g
_,pY\m+(-4k4^-R+Rv.:XC9vԞ	O
4IrWĉz6	:A	7YIBHD)Soi(0wCXp|j'i:հV&| :=|ڒ`T8BJA#ۙezSL34=ǚƄ{qAVޣ$MƭjX8p<= +[-Kf̱'E	"~: "t.tJfB]]mhC ЀiI&i <D3h/
%~xh)$o%FdzfhC9;##jmav(Kq$TO˪["
P
vpޡ#0)_WD.ݻ"
vaY4(/?#<֧=Y}KLHޕpŏvCgJدmʚ
".NLϾ7<
,Zd!\(8Դ)RFhbma$ď
aJNd8&JQ$ҿ3?˰L݋NyQ`i4O
4I94Rn«OFz6o|ymg<R
~	 )T7O;xxkq/(+5(OGLX"tÞ(pSG\D^6BXV3H7*D
OlO(PZ[S|2	)5c`p)ɕ`Un+AC~L hp'`jy}zSRF	pi
$zҳؓ@\3f	|jvV9pS0;|x1H#FxJ(P:M>cg*_<Ǡb"*3ONZNOku\#wc+2$5dlE@#w5PvE*t'zYݣzun0휡[,ɲءs?b0޶Q!,cH[wini;u;yl_0
<mfRzEWyq,oBt^H.Td
17([:t)PEѣ'`foq)y+dl1C!^8l2zG*;nT\8^Oo[J<MY"
DMEc@nlyw_ܡa7}֤g4!9h|$"p^ifǡ)5ع&2GuH.by$qD(+ܩ_H&ִ*+0"^=5Du(j/p~ʮwF4Y2*R’i
eQW%h}6$8W˷&jIUWz[EPXQ.174B=z+D!n_3l-)yVH$o?fL)ThZt{MpL)XE
JPJq߀ĻDɊSulWaaRxd8bd)
R=|J'nLJdHRmAPbBVr3Wʦ?m=\AtfN952uZ:,W0W
G׎<d<eF}@/6L6$s Qs͆簯j
i~>H9|BOw~}P&&Qlk-"g@H$eFbX,
l*LĄ燓)Tbk2dj2.LjJ#(5ݚ%߼s*!و
βi()3.AʶȊ<6Ms1bJ[pLi%\e=]5[߻̪gzkr#Ҩ\Tx-;+ȏ,p׍\wH$/dfbnO:41gZ.Tm4x6)wՎaꇤ	1)Ws*X-1n@؅
Wc;*nWEyEtB1)`jU6qt ce%q+2d)蝽W6!	0'74.^R+dHck5t^ǘ?J8m~sxL7tʡ,r\WV"˵
[A
㎕6szj݋L7?k*z#S.Ma}hwʗss
>ZmЍ
u
My2q*B+t45>Cq{33*{N]|f<_ӂƟ\N#2^],'%J>v1u'h.IݪYFe}HT?)!;d.|
&Aa~/0JaYLPmX9<8g՞5猺<VK[rIc,ܸ+dW	aܤ!oGuux;QjDS/C܉ќ",gHN	dov.=T^c}~d$K©}2gtpIeQdl[X9qݻ#[?^dd_%1X|j4>sjGwѲ*(Gžs-sQF`&	wlҠY2nKh2š͙LW(,A4aQ~3_SՂ:LGbxo&9;xn=2o'[rfW#(%Wi_X7>R9S9v!Үoiǰ BX=&[<%I"KDv	 |b/J0>~IG'Q7X^w8|Hi!hKgZ@Ayߺ-(ML%B>U[7Okn%*?g9q)ɼr1| t2:)$YKh)^5GWW&`8Z};Si~1>R9aC*y>7
"v0Įlĥ?
ĉOK,bA{n`-LREZ&>ѺJE,k1S?eVFY(u/&d"!(½wWRT6}]x)XykQpjsWeO	ėY'"G>Vff!٢=pD бY&.TwHʱk,~JM5fqK\C2nf_CjM:/m?b/H#DI!*sp
H]m	pz.Ī[q[3{|A/
Ԛr_E[dX4_Ů;@Œ5I׼aߏ@cmq(ُ-~RϙNG/rraT'8DrJ
΀`mT>YX	#T anScWqzn"ɕb(RP<ũ+,vAbIRm6iUT~h	W
YSnEGi0V(I䊥v]Co	?bj#5:'/j]'8ze}R~tє<$IhTx~|K꾧<RX|iiXw}*L]@H(`q';:˜%܇2D#o]` {9Ҷ( 'qI?8ŐE+2o!ܣ9,zA86w<
$	-M~`J++-ϿV3.L}hPlX
9eqXu׽gj6\$r:
lS;EəF?{K'K-ԋ:ovw8=t,lj9ːr.䔈*FKsHRMFJ&JDRcnpPE|Г9ˀ7R2(	`#u?^@B6NZ_n}ɇ1}%s\ŝFY64i-ax36%Ck_ʇM6@29XoAmƨ,Ң')%~aP,\@q_p+SnnRWJ N}N}Lt|Rڟ/s:XT2r	raZ"
cF6L)IKޣIb^?Q=z*tp}-0 #5pA(8YD<i|,pu*@IټٻUxhEOlOᝏZTHK8,rVڨ	z`rkM([m>
r`}{3Z-/@4Jc!nE1^Z)q]1\zm,M
y1)G>('_[88
-<fwz~7AͼLC<~ՄEK0Z襦KoOD!p֮RV^R5?@'b
o1޴*-MWV0rhN^~=0{񚐙tpeSNQnΊ}Z6I0^G[|ߍ}S$yFX+u&'	?xԶX8!7YĝeӁx'MoTrHIL9<
/2|/hF6#^
`"/_M(vO]BJΛW$oWjYŊ\-2I6&!lCn_RE|^I+4;ssJSv\N ^)-Ǜ2N2KB)Gk6i	/J=#sRSL}&'ylqRG<TFj1
.')'<&I.g-މt3CHNx^ƽu?DTkq>J	BTx2=y"DUccapǘU 
$tY֡y݃M<¸/d`羼;J/6ćg
hgqa﬛+'/JpBLO2&»OQ챝vU)8DNO/LPmTz}S&Y5H1	J0VpA8*]DqaVT<'yH0k̃vuuܰLAR`uKr0O샟8r̕R<)Mi	n/iA+dӑfv.	!JT#-u_'|كS#5IHcQbLx1ix
D\5@֞hɘ?5/숻7JX]2F"j
p MiJyխ"[0]obھ;iBD'7$Mg!Ru2=5Z^w*UR)(;5I<)Qk"`vkk	14ry\]bn|("'%rWHJ\X>^HM<@<$[#21v	pSl#$;̕B\gYZ
help

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?178d585e-2ce0-4b69-a017-8af7f9b78a57>