From owner-freebsd-emulation@FreeBSD.ORG Tue Apr 12 19:15:41 2011 Return-Path: Delivered-To: freebsd-emulation@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B9B1C106566C for ; Tue, 12 Apr 2011 19:15:41 +0000 (UTC) (envelope-from tobias.oberstein@tavendo.de) Received: from EXHUB020-1.exch020.serverdata.net (exhub020-1.exch020.serverdata.net [206.225.164.28]) by mx1.freebsd.org (Postfix) with ESMTP id 6C7198FC0C for ; Tue, 12 Apr 2011 19:15:40 +0000 (UTC) Received: from EXVMBX020-12.exch020.serverdata.net ([169.254.3.111]) by EXHUB020-1.exch020.serverdata.net ([206.225.164.28]) with mapi; Tue, 12 Apr 2011 12:15:01 -0700 From: Tobias Oberstein To: "freebsd-emulation@freebsd.org" Date: Tue, 12 Apr 2011 12:15:37 -0700 Thread-Topic: rc.d script for running multiple VirtualBox VMs from /etc/rc.conf Thread-Index: Acv5Q7czafX+Kwl7QwWlIYOzgsH65w== Message-ID: <634914A010D0B943A035D226786325D422B76F91CA@EXVMBX020-12.exch020.serverdata.net> Accept-Language: de-DE, en-US Content-Language: de-DE X-MS-Has-Attach: yes X-MS-TNEF-Correlator: acceptlanguage: de-DE, en-US Content-Type: multipart/mixed; boundary="_002_634914A010D0B943A035D226786325D422B76F91CAEXVMBX02012ex_" MIME-Version: 1.0 Subject: rc.d script for running multiple VirtualBox VMs from /etc/rc.conf X-BeenThere: freebsd-emulation@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Development of Emulators of other operating systems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 12 Apr 2011 19:15:41 -0000 --_002_634914A010D0B943A035D226786325D422B76F91CAEXVMBX02012ex_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable I wanted to configure multiple VirtualBox VMs to startup automatically at b= oot time and generally be a nice citizen to the FreeBSD way of starting up = stuff. Using that rc.d script (see attached) you can configure starting up multipl= e VirtualBox VMs from /etc/rc.conf: ## VirtualBox VMs vboxvm_enable=3D"YES" vboxvm_machines=3D"vm1 vm2" ## VM1 vboxvm_vm1_enable=3D"YES" vboxvm_vm1_name=3D"vm1" vboxvm_vm1_user=3D"vbox_vm1" vboxvm_vm1_log=3D"vboxvm.log" vboxvm_vm1_vncport=3D"5901" vboxvm_vm1_vncpassword=3D"secret1" ## VM2 vboxvm_vm2_enable=3D"YES" vboxvm_vm2_name=3D"vm2" vboxvm_vm2_user=3D"vbox_vm2" vboxvm_vm2_log=3D"vboxvm.log" vboxvm_vm2_vncport=3D"5902" vboxvm_vm2_vncpassword=3D"secret2" =3D=3D The script must be put to /usr/local/etc/rc.d/vboxvm and understands three commands: start, stop and status. You can use it on all VMs configured (and enabled) $ /usr/local/etc/rc.d/vboxvm status VBox machine 'vm1' is running. VBox machine 'vm2' is running. or on a specific VM $ /usr/local/etc/rc.d/vboxvm stop vm1 =3D=3D The parameters: vboxvm__enable =3D> mandatory : enable/disable the VM vboxvm__name =3D> mandatory : VirtualBox name of the VM vboxvm__user =3D> mandatory : the Unix user under which the VM will be run (using VBoxHe= adless) vboxvm__log =3D> optional : log file when VBoxHeadless runs the VM vboxvm__vncport =3D> optional : when given, VBoxHeadless with active VNC server embedded vboxvm__vncpassword =3D> optional : when VNC is active, a password =3D=3D bugs/limits: 1) the restart/rcvar commands do now work 2) when the system shuts down, it doesnt wait for "stop" to finish graceful= shutdown of VMs I'm new to writing rc.d on FreeBSD, so if someone knows how to fix those, I= 'd be interested. =3D=3D credits: the script skeleton was shamelessly stolen from /usr/local/etc/rc.= d/apache22 ;) cheers, Tobias --_002_634914A010D0B943A035D226786325D422B76F91CAEXVMBX02012ex_ Content-Type: text/plain; name="vboxvm.txt" Content-Description: vboxvm.txt Content-Disposition: attachment; filename="vboxvm.txt"; size=2999; creation-date="Tue, 12 Apr 2011 11:51:34 GMT"; modification-date="Tue, 12 Apr 2011 11:51:34 GMT" Content-Transfer-Encoding: base64 IyEvYmluL3NoCgojIFBST1ZJREU6IHZib3h2bQojIFJFUVVJUkU6IExPR0lOCiMgS0VZV09SRDog c2h1dGRvd24KCi4gL2V0Yy9yYy5zdWJyCgpuYW1lPSJ2Ym94dm0iCnJjdmFyPWBzZXRfcmN2YXJg Cgpsb2FkX3JjX2NvbmZpZyAkbmFtZQoKaWYgWyAtbiAiJDIiIF07IHRoZW4KCW1hY2hpbmU9IiQy IgoJaWYgWyAieCR7dmJveHZtX21hY2hpbmVzfSIgIT0gIngiIF07IHRoZW4KCQlldmFsIHZib3h2 bV9uYW1lPSJcJHt2Ym94dm1fJHttYWNoaW5lfV9uYW1lOi19IgoJCWlmIFsgIngke3Zib3h2bV9u YW1lfSIgPSAieCIgXTsgdGhlbgoJCQllY2hvICJZb3UgbXVzdCBkZWZpbmUgYSBWTSBuYW1lICh2 Ym94dm1fJHttYWNoaW5lfV9uYW1lKSIKCQkJZXhpdCAxCgkJZmkKCQlldmFsIHZib3h2bV91c2Vy PSJcJHt2Ym94dm1fJHttYWNoaW5lfV91c2VyOi19IgoJCWlmIFsgIngke3Zib3h2bV91c2VyfSIg PSAieCIgXTsgdGhlbgoJCQllY2hvICJZb3UgbXVzdCBkZWZpbmUgYSBWTSBleGVjdXRpb24gdXNl ciAodmJveHZtXyR7bWFjaGluZX1fdXNlcikiCgkJCWV4aXQgMQoJCWZpCgkJZXZhbCB2Ym94dm1f bG9nPSJcJHt2Ym94dm1fJHttYWNoaW5lfV9sb2c6LSR7dmJveHZtX25hbWV9LmxvZ30iCgkJZXZh bCB2Ym94dm1fdm5jcG9ydD0iXCR7dmJveHZtXyR7bWFjaGluZX1fdm5jcG9ydDotfSIKCQlldmFs IHZib3h2bV92bmNwYXNzd29yZD0iXCR7dmJveHZtXyR7bWFjaGluZX1fdm5jcGFzc3dvcmQ6LX0i CgkJaWYgWyAieCR7dmJveHZtX3ZuY3BvcnR9IiA9ICJ4IiAtYSAieCR7dmJveHZtX3ZuY3Bhc3N3 b3JkfSIgIT0gIngiIF07IHRoZW4KCQkJZWNobyAiV2FybmluZzogVk5DIHBhc3N3b3JkLCBidXQg bm8gVk5DIHBvcnQgc3BlY2lmaWVkIGZvciBtYWNoaW5lICcke21hY2hpbmV9JyAtIFZOQyB3aWxs IGJlIGRpc2FibGVkLiIKCQlmaQoJZWxzZQoJCWVjaG8gIiQwOiBleHRyYSBhcmd1bWVudCBpZ25v cmVkIgoJZmkKZWxzZQoJaWYgWyAieCR7dmJveHZtX21hY2hpbmVzfSIgIT0gIngiIC1hICJ4JDEi ICE9ICJ4IiBdOyB0aGVuCgkJZm9yIG1hY2hpbmUgaW4gJHt2Ym94dm1fbWFjaGluZXN9OyBkbwoJ CQlldmFsIF9lbmFibGU9Ilwke3Zib3h2bV8ke21hY2hpbmV9X2VuYWJsZX0iCgkJCWNhc2UgIngk e19lbmFibGU6LSR7dmJveHZtX2VuYWJsZX19IiBpbgoJCQl4fHhbTm5dW09vXXx4W05uXVtPb11b Tm5dW0VlXSkKICAgICAgICAgICAgZWNobyAiVkJveCBtYWNoaW5lICcke21hY2hpbmV9JyBza2lw cGVkIChkaXNhYmxlZCkuIgoJCQkJY29udGludWUKCQkJCTs7CgkJCXhbWXldW0VlXVtTc10pCgkJ CQk7OwoJCQkqKQoJCQkJaWYgdGVzdCAteiAiJF9lbmFibGUiOyB0aGVuCgkJCQkJX3Zhcj12Ym94 dm1fZW5hYmxlCgkJCQllbHNlCgkJCQkJX3Zhcj12Ym94dm1fIiR7bWFjaGluZX0iX2VuYWJsZQoJ CQkJZmkKCQkJCWVjaG8gIkJhZCB2YWx1ZSIgXAoJCQkJICAgICInJHtfZW5hYmxlOi0ke3Zib3h2 bV9lbmFibGV9fSciIFwKCQkJCSAgICAiZm9yICR7X3Zhcn0uICIgXAoJCQkJICAgICJWQm94IG1h Y2hpbmUgJyR7bWFjaGluZX0nIHNraXBwZWQuIgoJCQkJY29udGludWUKCQkJCTs7CgkJCWVzYWMK CQkJL3Vzci9sb2NhbC9ldGMvcmMuZC92Ym94dm0gJDEgJHttYWNoaW5lfQoJCQlyZXRjb2RlPSIk PyIKCQkJaWYgWyAiMCR7cmV0Y29kZX0iIC1uZSAwIF07IHRoZW4KCQkJCWZhaWxlZD0iJHttYWNo aW5lfSAoJHtyZXRjb2RlfSkgJHtmYWlsZWQ6LX0iCgkJCWVsc2UKCQkJCXN1Y2Nlc3M9IiR7bWFj aGluZX0gJHtzdWNjZXNzOi19IgoJCQlmaQoJCWRvbmUKCQlleGl0IDAKCWZpCmZpCgpzdGFydF9j bWQ9InZib3h2bV9zdGFydCIKc3RvcF9jbWQ9InZib3h2bV9zdG9wIgpzdGF0dXNfY21kPSJ2Ym94 dm1fc3RhdHVzIgpleHRyYV9jb21tYW5kcz0ic3RhdHVzIgoKdmJveHZtX3N0YXJ0KCkKewogICAg ZWNobyAiVkJveCBtYWNoaW5lICcke3Zib3h2bV9uYW1lfScgcG93ZXJpbmcgdXAuIgogICAgaWYg WyAieCR7dmJveHZtX3ZuY3BvcnR9IiAhPSAieCIgXTsgdGhlbgogICAgICAgaWYgWyAieCR7dmJv eHZtX3ZuY3Bhc3N3b3JkfSIgPSAieCIgXTsgdGhlbgogICAgICAgICAgdm5jb3B0cz0iLS12bmMg LS12bmNwb3J0ICR7dmJveHZtX3ZuY3BvcnR9IgogICAgICAgZWxzZQogICAgICAgICAgdm5jb3B0 cz0iLS12bmMgLS12bmNwb3J0ICR7dmJveHZtX3ZuY3BvcnR9IC0tdm5jcGFzcyAke3Zib3h2bV92 bmNwYXNzd29yZH0iCiAgICAgICBmaQogICAgZmkKICAgIGlmIFsgIngke3Zib3h2bV9sb2d9IiAh PSAieCIgXTsgdGhlbgogICAgICAgbG9nb3B0cz0iMT4ke3Zib3h2bV9sb2d9IDI+JjEiCiAgICBm aQogICAgY21kPSJleGVjIC91c3IvbG9jYWwvYmluL1ZCb3hIZWFkbGVzcyAke3ZuY29wdHN9IC1z ICR7dmJveHZtX25hbWV9ICR7bG9nb3B0c30gJiIKICAgIHN1IC1sICR7dmJveHZtX3VzZXJ9IC1j ICIke2NtZH0iCn0KCnZib3h2bV9zdG9wKCkKewogICAgZWNobyAiVkJveCBtYWNoaW5lICcke3Zi b3h2bV9uYW1lfScgcG93ZXJpbmcgZG93bi4iCiAgICBzdSAtbCAke3Zib3h2bV91c2VyfSAtYyAi ZXhlYyAvdXNyL2xvY2FsL2Jpbi9WQm94TWFuYWdlIGNvbnRyb2x2bSAke3Zib3h2bV9uYW1lfSBh Y3BpcG93ZXJidXR0b24iCn0KCnZib3h2bV9zdGF0dXMoKQp7CiAgICBydW5uaW5ndm1zPSJgc3Ug LWwgJHt2Ym94dm1fdXNlcn0gLWMgJ2V4ZWMgL3Vzci9sb2NhbC9iaW4vVkJveE1hbmFnZSBsaXN0 IHJ1bm5pbmd2bXMnYCIKICAgIG15dm09ImBlY2hvICR7cnVubmluZ3Ztc30gfCBncmVwIC1jICR7 dmJveHZtX25hbWV9YCIKICAgIGlmIFsgIiR7bXl2bX0iIC1uZSAiMCIgXTsgdGhlbgogICAgICAg ZWNobyAiVkJveCBtYWNoaW5lICcke3Zib3h2bV9uYW1lfScgaXMgcnVubmluZy4iCiAgICBlbHNl CiAgICAgICBlY2hvICJWQm94IG1hY2hpbmUgJyR7dmJveHZtX25hbWV9JyBpcyBwb3dlcmVkIGRv d24uIgogICAgZmkKfQoKcnVuX3JjX2NvbW1hbmQgIiQxIgo= --_002_634914A010D0B943A035D226786325D422B76F91CAEXVMBX02012ex_--