The current network setup at my job has made it difficult to deploy Ruby web applications. We are running our production RHEL servers in an air gap network with no access to the public internet. My workstation is obviously able to transfer packages & files to the servers via SSH, but tools like RVM are almost impossible to install without direct internet access.
Gem dependencies are also horrible to deal with. This can be partially remedied with bundler, but if a gem relies on a package that needs to be compiled it won't work since I develop (and bundle) on OSX.
I have thought of a two possible solutions, but was wanting someone with more expertise to lend me some pointers. Here are my ideas:
- Install the Ruby application on a local VM in my workstation. When everything has been set up, somehow take a diff of the file system (git maybe?) that will be transferred to the production server and extracted.
- Setup a reverse SSH tunnel to gain internet access on the production server temporarily (is this even possible?).
Do either of these ideas sound viable? If so, which one would you recommend and how would I go about implementing it?
Thanks for the help!