This repo uses cloud images with cloud-init to configure my user and ssh access. All of this happens when the nomad job is run.
Windows is currently WIP and not working, hence the empty job file. TBD whether I do this because I'd be running Windows ARM and we do not publish windows ARM binaries, and neither does Consul or Vault.
The ansible script sets up Nomad, Consul, and Vault. The output of the Ansible script will
give instructions for starting and unsealing Vault. Run nomad setup vault and nomad setup consul
to finish setting up all the necessary ACL's.
Theres quite a bit of Ansible specific to my local bash setup that can be removed or replaced.
I run Nomad development clusters on a Nomad dev instance, and the included job files for this
are in the /dev-cluster-jobs directory. These work with the given ansible playbook and will just need
some minor customization for the correct ssh keys and such. These jobs should work for most Mac users.
Nomad needs to be run with sudo in order for the VM networking to work correctly.
A little about networking.. The QEMU VM's are configured to use vmnet-shared (refer to https://developer.apple.com/documentation/vmnet/operating_modes_t/vmnet_shared_mode?language=objc.
This creates an interface for all the VM's to join, and they can reach the internet via NAT. They use DHCP to get
an IP, and I have my local Mac DHCP server set to give them static IP's via /etc/bootptab:
%%
# hostname hwtype hwaddr ipaddr bootfile
debian-nomad 1 ae:8c:e1:2e:83:a6 192.168.105.100
debian-nomad 1 de:83:c4:cc:eb:ac 192.168.105.101
debian-nomad 1 8e:fd:fe:1d:f7:2e 192.168.105.102
debian-nomad 1 ee:e3:bb:cd:bc:3e 192.168.105.103
debian-nomad 1 4e:cb:9d:d0:ec:e9 192.168.105.104
If you are using something other than a Debian instance and networking is not working, it may be because the cloud init is configured to work for systemd-networkd
This repo is a bit messy and is a work in progress.