-
Notifications
You must be signed in to change notification settings - Fork 1
Home
Welcome to the dropship wiki!
Dropship needs to be able to access the other VMs it configures on the same network, thus it needs to be in its own VM. This VM is called the commander VM. Dropship is tested on an instance of Alpine Linux with a Python 3 venv.
- Needs to have
ip_forward
enabled. - Needs to have IP masquerading (NAT) setup for external access. The commander VM acts as a internet-connected router during portions of the build-out.
- Needs to have
sudo
installed with the following rules (replace<DROPSHIP_USER>
with the user that will run Dropship):
<DROPSHIP_USER> ALL=(ALL) NOPASSWD: /usr/sbin/dnsmasq
<DROPSHIP_USER> ALL=(ALL) NOPASSWD: /sbin/ip
- Needs to have
dnsmasq
installed. - Needs to have Python 3 installed with venv support. Run pip with
pip3 install -r requirements
to install the Python dependencies.
The Provider is the class that interacts with a hypervisor system, such as Proxmox. Keeping interactions generic allows for other hypervisors (Such as VMware) to be added the future much more easily.
Modules consist of a Python class, Ansible task files, and templates.
All Ansible files are expected to be a list of importable tasks using
include_tasks
Each module references an Image in their __IMAGE__
field. Images in Dropship are generic references to a template, which are mapped to real VMs in the config.json
file vm_map
key.
"vm_map": {
"linux.vyos": 129
...
Dropship will tell the provider to clone the real VM when a module utilizes it.
This template should be accessible Ansible through the provided credentials in config.json
file credentials
key.
"credentials": {
"networking.vyos": "<USERNAME>:<PASSWORD>",
...
Inherently, a Dropship image holds no limitations on the template and there are no pre-built images for a given Image, unless provided by somebody else. This means you that if you provide a module to somebody else, you should indicate how they should build their template for the module. Dropship does not do that part for you. If you have a very unique template, make a unique Image name.
Guidelines for generic templates may be provided in the future.