swills / docker-machine-driver-bhyve Goto Github PK
View Code? Open in Web Editor NEWDocker Machine driver for Bhyve
License: Other
Docker Machine driver for Bhyve
License: Other
My system is panicking with 13-CURRENT r354057
. I was following the instructions at in the toplevel readme but its resulting in a panic on my Lenovo x230. It compiles fine and the driver is recognized by docker-machine
when its present in the $PATH
. I put docker-machine
into debug mode and it consistently crashes while its trying to pull down the docker image. Im wondering if theres anything obvious that Im missing?
Heres the debug output:
rherna@current docker-machine-driver-bhyve $ echo $PATH
/home/rherna/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/home/rherna/bin:/home/rherna/workspace/docker-machine-driver-bhyve
rherna@current docker-machine-driver-bhyve $ docker-machine --debug create -d bhyve robstest
Docker Machine Version: 0.16.2, build HEAD
Found binary path at /home/rherna/workspace/docker-machine-driver-bhyve/docker-machine-driver-bhyve
Launching plugin server for driver bhyve
Plugin server listening at address 127.0.0.1:43280
() Calling .GetVersion
Using API Version 1
() Calling .SetConfigRaw
() Calling .GetMachineName
(flag-lookup) Calling .GetMachineName
(flag-lookup) Calling .DriverName
(flag-lookup) Calling .GetCreateFlags
Found binary path at /home/rherna/workspace/docker-machine-driver-bhyve/docker-machine-driver-bhyve
Launching plugin server for driver bhyve
Plugin server listening at address 127.0.0.1:51859
() Calling .GetVersion
Using API Version 1
() Calling .SetConfigRaw
() Calling .GetMachineName
(robstest) Calling .GetMachineName
(robstest) Calling .DriverName
(robstest) Calling .GetCreateFlags
(robstest) Calling .SetConfigFromFlags
Reading certificate data from /home/rherna/.docker/machine/certs/ca.pem
Decoding PEM data...
Parsing certificate...
Reading certificate data from /home/rherna/.docker/machine/certs/cert.pem
Decoding PEM data...
Parsing certificate...
Running pre-create checks...
(robstest) Calling .PreCreateCheck
(robstest) DBG | Checking kmods
(robstest) DBG | kmod vmm is loaded
(robstest) DBG | kmod nmdm is loaded
(robstest) DBG | kmod ng_ether is loaded
(robstest) DBG | Checking IP forwarding
(robstest) DBG | IP forwarding not enabled, enabling
(robstest) DBG | EXEC: sudo sysctl net.inet.ip.forwarding=1
(robstest) DBG | STDOUT: net.inet.ip.forwarding: 0 -> 1
(robstest) DBG |
(robstest) DBG | STDERR:
(robstest) DBG | Checking interface em0
(robstest) DBG | Checking interface lo0
(robstest) DBG | Interface em0 has address 192.168.88.85 and looks like a good candidate
(robstest) DBG | Setting up 192.168.99.1/24 on bridge0, aliased to 192.168.88.85 on em0
(robstest) DBG | EXEC: sudo ifconfig bridge0 create
(robstest) DBG | STDOUT:
(robstest) DBG | STDERR:
(robstest) DBG | EXEC: sudo ifconfig bridge0 192.168.99.1/24
(robstest) DBG | STDOUT:
(robstest) DBG | STDERR:
(robstest) DBG | EXEC: sudo ifconfig bridge0 up
(robstest) DBG | STDOUT:
(robstest) DBG | STDERR:
(robstest) DBG | EXEC: sudo ngctl mkpeer em0: nat lower in
(robstest) DBG | STDOUT:
(robstest) DBG | STDERR:
(robstest) DBG | EXEC: sudo ngctl name em0:lower em0_NAT
(robstest) DBG | STDOUT:
(robstest) DBG | STDERR:
(robstest) DBG | EXEC: sudo ngctl connect em0: em0_NAT: upper out
(robstest) DBG | STDOUT:
(robstest) DBG | STDERR:
(robstest) DBG | EXEC: sudo ngctl msg em0_NAT: setdlt 1
(robstest) DBG | STDOUT:
(robstest) DBG | STDERR:
(robstest) DBG | EXEC: sudo ngctl msg em0_NAT: setaliasaddr 192.168.88.85
(robstest) DBG | STDOUT:
(robstest) DBG | STDERR:
(robstest) DBG | Starting DHCP Server
(robstest) Calling .GetConfigRaw(robstest) DBG | Checking kmods
(robstest) DBG | kmod vmm is loaded
(robstest) DBG | kmod nmdm is loaded
(robstest) DBG | kmod ng_ether is loaded
(robstest) DBG | Checking IP forwarding
(robstest) DBG | IP forwarding not enabled, enabling
(robstest) DBG | EXEC: sudo sysctl net.inet.ip.forwarding=1
(robstest) DBG | STDOUT: net.inet.ip.forwarding: 0 -> 1
(robstest) DBG |
(robstest) DBG | STDERR:
(robstest) DBG | Checking interface em0
(robstest) DBG | Checking interface lo0
(robstest) DBG | Interface em0 has address 192.168.88.85 and looks like a good candidate
(robstest) DBG | Setting up 192.168.99.1/24 on bridge0, aliased to 192.168.88.85 on em0
(robstest) DBG | EXEC: sudo ifconfig bridge0 create
(robstest) DBG | STDOUT:
(robstest) DBG | STDERR:
(robstest) DBG | EXEC: sudo ifconfig bridge0 192.168.99.1/24
(robstest) DBG | STDOUT:
(robstest) DBG | STDERR:
(robstest) DBG | EXEC: sudo ifconfig bridge0 up
(robstest) DBG | STDOUT:
(robstest) DBG | STDERR:
(robstest) DBG | EXEC: sudo ngctl mkpeer em0: nat lower in
(robstest) DBG | STDOUT:
(robstest) DBG | STDERR:
(robstest) DBG | EXEC: sudo ngctl name em0:lower em0_NAT
(robstest) DBG | STDOUT:
(robstest) DBG | STDERR:
(robstest) DBG | EXEC: sudo ngctl connect em0: em0_NAT: upper out
(robstest) DBG | STDOUT:
(robstest) DBG | STDERR:
(robstest) DBG | EXEC: sudo ngctl msg em0_NAT: setdlt 1
(robstest) DBG | STDOUT:
(robstest) DBG | STDERR:
(robstest) DBG | EXEC: sudo ngctl msg em0_NAT: setaliasaddr 192.168.88.85
(robstest) DBG | STDOUT:
(robstest) DBG | STDERR:
(robstest) DBG | Starting DHCP Server
(robstest) Calling .GetConfigRaw
Creating machine...
(robstest) Calling .Create
(robstest) No default Boot2Docker ISO found locally, downloading the latest release...
(robstest) Latest release for github.com/boot2docker/boot2docker is v19.03.4
(robstest) Downloading /home/rherna/.docker/machine/cache/boot2docker.iso from https://github.com/boot2docker/boot2docker/releases/download/v19.03.4/boot2docker.iso...
<CRASH>
Thats as far as it gets. Ill continue to do some debugging, but happy to hear if you have any ideas.
uname
:
rherna@current docker-machine-driver-bhyve $ uname -a
FreeBSD current 13.0-CURRENT FreeBSD 13.0-CURRENT #0 r354057: Fri Oct 25 05:24:01 UTC 2019 [email protected]:/usr/obj/usr/src/amd64.amd64/sys/GENERIC amd64
kldstat
:
rherna@current docker-machine-driver-bhyve $ kldstat
Id Refs Address Size Name
1 38 0xffffffff80200000 1f05138 kernel
2 2 0xffffffff82106000 ba48 opensolaris.ko
3 1 0xffffffff82112000 44fb48 zfs.ko
4 1 0xffffffff82720000 4b40 ng_ubt.ko
5 7 0xffffffff82725000 b8e8 netgraph.ko
6 2 0xffffffff82731000 a1e8 ng_hci.ko
7 3 0xffffffff8273c000 25a8 ng_bluetooth.ko
8 1 0xffffffff8273f000 f200 ng_l2cap.ko
9 1 0xffffffff8274f000 1acb8 ng_btsocket.ko
10 1 0xffffffff8276a000 38e0 ng_socket.ko
11 1 0xffffffff8276e000 31c8 ng_ether.ko
12 1 0xffffffff82772000 53b420 vmm.ko
13 1 0xffffffff82cae000 217c nmdm.ko
sudoers
:
rherna@current docker-machine-driver-bhyve $ sudo cat /usr/local/etc/sudoers
## sudoers file.
##
## This file MUST be edited with the 'visudo' command as root.
## Failure to use 'visudo' may result in syntax or file permission errors
## that prevent sudo from running.
##
## See the sudoers man page for the details on how to write a sudoers file.
##
##
## Host alias specification
##
## Groups of machines. These may include host names (optionally with wildcards),
## IP addresses, network numbers or netgroups.
# Host_Alias WEBSERVERS = www1, www2, www3
##
## User alias specification
##
## Groups of users. These may consist of user names, uids, Unix groups,
## or netgroups.
# User_Alias ADMINS = millert, dowdy, mikef
##
## Cmnd alias specification
##
## Groups of commands. Often used to group related commands together.
# Cmnd_Alias PROCESSES = /usr/bin/nice, /bin/kill, /usr/bin/renice, \
# /usr/bin/pkill, /usr/bin/top
# Cmnd_Alias REBOOT = /sbin/halt, /sbin/reboot, /sbin/poweroff
##
## Defaults specification
##
## Uncomment if needed to preserve environmental variables related to the
## FreeBSD pkg utility and fetch.
# Defaults env_keep += "PKG_CACHEDIR PKG_DBDIR FTP_PASSIVE_MODE"
##
## Additionally uncomment if needed to preserve environmental variables
## related to portupgrade
# Defaults env_keep += "PORTSDIR PORTS_INDEX PORTS_DBDIR PACKAGES PKGTOOLS_CONF"
##
## You may wish to keep some of the following environment variables
## when running commands via sudo.
##
## Locale settings
# Defaults env_keep += "LANG LANGUAGE LINGUAS LC_* _XKB_CHARSET"
##
## Run X applications through sudo; HOME is used to find the
## .Xauthority file. Note that other programs use HOME to find
## configuration files and this may lead to privilege escalation!
# Defaults env_keep += "HOME"
##
## X11 resource path settings
# Defaults env_keep += "XAPPLRESDIR XFILESEARCHPATH XUSERFILESEARCHPATH"
##
## Desktop path settings
# Defaults env_keep += "QTDIR KDEDIR"
##
## Allow sudo-run commands to inherit the callers' ConsoleKit session
# Defaults env_keep += "XDG_SESSION_COOKIE"
##
## Uncomment to enable special input methods. Care should be taken as
## this may allow users to subvert the command being run via sudo.
# Defaults env_keep += "XMODIFIERS GTK_IM_MODULE QT_IM_MODULE QT_IM_SWITCHER"
##
## Uncomment to use a hard-coded PATH instead of the user's to find commands
# Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
##
## Uncomment to send mail if the user does not enter the correct password.
# Defaults mail_badpass
##
## Uncomment to enable logging of a command's output, except for
## sudoreplay and reboot. Use sudoreplay to play back logged sessions.
# Defaults log_output
# Defaults!/usr/bin/sudoreplay !log_output
# Defaults!/usr/local/bin/sudoreplay !log_output
# Defaults!REBOOT !log_output
##
## Runas alias specification
##
##
## User privilege specification
##
root ALL=(ALL) ALL
## Uncomment to allow members of group wheel to execute any command
# %wheel ALL=(ALL) ALL
## Same thing without a password
# %wheel ALL=(ALL) NOPASSWD: ALL
## Uncomment to allow members of group sudo to execute any command
# %sudo ALL=(ALL) ALL
## Uncomment to allow any user to run sudo if they know the password
## of the user they are running the command as (root by default).
# Defaults targetpw # Ask for the password of the target user
# ALL ALL=(ALL) ALL # WARNING: only use this together with 'Defaults targetpw'
## Uncomment to show on password prompt which users' password is being expected
# Defaults passprompt="%p's password:"
## Read drop-in files from /usr/local/etc/sudoers.d
## (the '#' here does not indicate a comment)
#includedir /usr/local/etc/sudoers.d
rherna ALL=(ALL) NOPASSWD: ALL
rherna
group:
rherna@current docker-machine-driver-bhyve $ id
uid=1001(rherna) gid=1001(rherna) groups=1001(rherna),0(wheel)
devfs.rules
:
rherna@current docker-machine-driver-bhyve $ sudo cat /etc/devfs.rules
[system=10]
add path 'nmdm*' mode 0660
rherna@current docker-machine-driver-bhyve $ sudo cat /etc/rc.conf | grep devfs
devfs_system_ruleset="system"
pkg info
:
rherna@current docker-machine-driver-bhyve $ sudo pkg info
bash-5.0.11 GNU Project's Bourne Again SHell
ca_root_nss-3.47 Root certificate bundle from the Mozilla Project
curl-7.66.0 Command line tool and library for transferring data with URLs
cvsps-2.1_2 Create patchset information from CVS
dnsmasq-2.80_4,1 Lightweight DNS forwarder, DHCP, and TFTP server
docker-machine-0.16.2 Tool to create Docker hosts
expat-2.2.8 XML 1.0 parser written in C
gettext-runtime-0.20.1 GNU gettext runtime libraries and programs
git-2.23.0 Distributed source code management tool
gmp-6.1.2_1 Free library for arbitrary precision arithmetic
go-1.13.3,1 Go programming language
grub2-bhyve-0.40_7 Grub-emu loader for bhyve
indexinfo-0.3.1 Utility to regenerate the GNU info page index
libevent-2.1.11 API for executing callback functions on events or timeouts
libffi-3.2.1_3 Foreign Function Interface
libidn2-2.2.0 Implementation of IDNA2008 internationalized domain names
libnghttp2-1.39.2 HTTP/2.0 C Library
libunistring-0.9.10_1 Unicode string library
nettle-3.5.1_1 Low-level cryptographic library
p5-Authen-SASL-2.16_1 Perl5 module for SASL authentication
p5-CGI-4.44 Handle Common Gateway Interface requests and responses
p5-Clone-0.43 Clone - recursively copy Perl datatypes
p5-Clone-Choose-0.010 Choose appropriate clone utility
p5-Digest-HMAC-1.03_1 Perl5 interface to HMAC Message-Digest Algorithms
p5-Error-0.17028 Error/exception handling in object-oriented programming style
p5-GSSAPI-0.28_1 Perl extension providing access to the GSSAPIv2 library
p5-HTML-Parser-3.72 Perl5 module for parsing HTML documents
p5-HTML-Tagset-3.20_1 Some useful data table in parsing HTML
p5-Hash-Merge-0.300 Merges hashes
p5-IO-Socket-INET6-2.72_1 Perl module with object interface to AF_INET6 domain sockets
p5-IO-Socket-SSL-2.066 Perl5 interface to SSL sockets
p5-Mozilla-CA-20180117 Perl extension for Mozilla CA cert bundle in PEM format
p5-Net-SSLeay-1.85 Perl5 interface to SSL
p5-Socket6-0.29 IPv6 related part of the C socket.h defines and structure manipulators
pcre-8.43_2 Perl Compatible Regular Expressions library
perl5-5.30.0 Practical Extraction and Report Language
pkg-1.12.0 Package manager
python36-3.6.9 Interpreted object-oriented programming language
readline-8.0.0 Library for editing command lines as they are typed
stow-2.3.1 GNU version of Carnegie Mellon's "Depot" program
sudo-1.8.28p1 Allow others to run commands as root
tmux-2.9a_1 Terminal Multiplexer
utf8proc-2.4.0 UTF-8 processing library
vim-console-8.1.2108 Improved version of the vi editor (console only)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.