vagrant-smartos / vagrant-smartos-zones

Manage SmartOS local zones in Vagrant
MIT License
54 stars 9 forks source link

Works on Windows? #34

Closed fire closed 9 years ago

fire commented 9 years ago

Does the plugin work on Windows 7/8/10?

sax commented 9 years ago

I have not tried to use this in Windows, and do not have any test systems to check. I would definitely accept a pull request that adds support, however.

I imagine that you will run into issues downloading external resources. The plugin downloads (minimally) a checksum file and a SmartOS platform image ISO into the vagrant configuration directory ($HOME/.vagrant.d on Mac and Linux). Right now it checks for either curl or wget.

I've switched over a few things internally to use the downloader class within Vagrant itself, but there might be holdovers.

If you see other issues, I can help with fixes or can do some quick fixes myself. I'm fairly time constrained in the next few weeks to do any major refactoring, however.

fire commented 9 years ago

Here's the tail end of the vm creation. It's breaking when sshing?

==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
    default: Warning: Connection timeout. Retrying...
    default: Warning: Connection timeout. Retrying...
    default: Warning: Remote connection disconnect. Retrying...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
    default: No guest additions were detected on the base box for this VM! Guest
    default: additions are required for forwarded ports, shared folders, host only
    default: networking, and more. If SSH fails on this machine, please install
    default: the guest additions and repackage the box to continue.
    default:
    default: This is not an error message; everything may continue to work properly,
    default: in which case you may ignore this message.
==> default: Installing vnic in global zone
The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!

pfexec svcadm enable -s create-gz-vnic

Stdout from the command:

Stderr from the command:

svcadm: Instance "svc:/vagrant/create-gz-vnic:default" is in maintenance state.
fire commented 9 years ago

The global zone starts in Windows, but support services inside of zone are not working.

sax commented 9 years ago

Oh, interesting. Is there anything in the smf log that indicates what is going wrong?

cat $(svcs -L create-gz-vnic)

I think I've seen that fail when the vnic conflicts with the VirtualBox network or with the host networking. If that's the problem, you can configure how the plugin defines the internal network as so: https://github.com/vagrant-smartos/vagrant-smartos-zones#network

fire commented 9 years ago

[ Sep  9 00:10:22 Method "start" exited with status 126. ]
[ Sep  9 00:11:29 Leaving maintenance because clear requested. ]
[ Sep  9 00:11:29 Enabled. ]
[ Sep  9 00:11:29 Executing start method ("/opt/custom/method/create_gz_vnic"). ]
/sbin/sh[1]: exec: /opt/custom/method/create_gz_vnic: cannot execute [Permission denied]

Seems like permissions are lost on windows as expected. Would need a chmod +x.

sax commented 9 years ago

I've just pushed 0.2.2 to rubygems with a fix for this. Can you update your installed version and see if that fixes it for you?

fire commented 9 years ago

sudo chmod +x /opt/custom/method/zonegate/zone* and reloading shows the new zone in vmadm. Actually I should try the new plugin.

sax commented 9 years ago

Yeah, I also added a bit to chmod everything in /opt/custom/method/zonegate.

sax commented 9 years ago

Also, this is extremely exciting! Thank you for testing this... I thought it would take a lot more work to get this working on Windows.

sax commented 9 years ago

If there was anything special you needed do to either configure your machine, vagrant or this plugin to make it work on Windows, let me know and I'll add it to the wiki.

fire commented 9 years ago

It seems to run fine. There's future chef integration, but for the standard case it loads vagrant.

At the end I was able to use vagrant ssh.

Note that using the git installer and adding unix utilities to the path was the easiest way to have the ssh executable. There's a message in vagrant about this and the other two choices though.