I've made a start on amending the chef recipes to work on a VPS. As was mentioned the main task was moving away from the vagrant user, I chose rukosan (as in the Japanese honorific) as there is a rukouser used by the dynohost that has different privileges. Of course this also meant updating the integration tests to refer to the new user.
I've been running them on an Ubuntu 12.04 64bit Linode instance. They don't work completely unfortunately. The first thing is getting nvm (and thus npm and node) recognised in non-interactive sessions. For some reason, that I cannot fathom, /etc/profile.d/nvm.sh is always sourced in vagrant but not on the VPS. So for instance, `bash <some_script.sh>' will not have access to nvm, npm or node :( I've tried all sorts of things but have just had to resort to sourcing nvm.sh every time it is needed by chef, which feels like a hack. But from what I can gather it is expected behaviour for non-interactive shells to not source any profile or rc files, so vagrant is doing something special perhaps?
Anyway, everything installs and the integration-tests pass up to the point of deploying the first repo. I've debugged the issue to LXC not launching the build container, the offending log lines are;
lxc-start 1357075274.909 ERROR lxc_conf - Device or resource busy - failed to mount a new instance of '/dev/pts'
lxc-start 1357075274.909 ERROR lxc_conf - failed to setup the new pts instance
lxc-start 1357075274.909 ERROR lxc_start - failed to setup the container
lxc-start 1357075274.909 ERROR lxc_sync - invalid sequence number 1. expected 2
lxc-start 1357075274.909 ERROR lxc_start - failed to spawn 'a4b351ed-0759-e4a7-cd26-842086b811d4'
I have no idea how to debug this any further :(
Max, you said to remind you to share your attempt at porting the chef scripts, maybe you've had more luck?
Thanks,
tom :)