-
Florian Sesser authored
... if you are reading this not in the repo, but from the web page, you might not know where to go to make all those nice commands work.
Florian Sesser authored... if you are reading this not in the repo, but from the web page, you might not know where to go to make all those nice commands work.
Set up and use a network of local development VMs
... using Vagrant to manage VirtualBox VMs. (The author of this documentation wasted a lot of time trying to get Vagrant to work with KVM/libvirt. Issues with networking that looked like guest misconfigurations vanished after changing to the better-tested combination of Vagrant and VirtualBox.)
Use the local development environment
-
Enter the morph local grid directory:
cd morph/grid/local
-
Enter the project's nix-shell:
nix-shell ../../../shell.nix
-
Build and start the VMs:
VAGRANT_DEFAULT_PROVIDER=virtualbox vagrant up
-
Then, add the Vagrant SSH configuration to your user's
~/.ssh/config
file:install -d ~/.ssh ; vagrant ssh-config >> ~/.ssh/config
-
Edit the generated configuration: Add the
publicIP
addresses fromgrid.nix
to ssh config Host match blocks (not HostName) so theHost
lines all read like:Host payments1 192.168.67.21 HostName 127.0.0.1 User vagrant [...]
From version 1.5.0 Morph honors the SSH_CONFIG_FILE
environment variable since 3f90aa88 (March 2020, v 1.5.0), so in the future this will get a bit more convenient.
-
Add your SSH key to
users.nix
so you'll be able to log in after deploying the new configuration:$EDITOR secrets/users.nix
-
Then, build and deploy our software to the Vagrant VMs:
morph build grid.nix morph push grid.nix morph deploy grid.nix boot vagrant halt vagrant up morph upload-secrets grid.nix
You should now be able to log in with the users and keys you set in your users.nix
file.