The BOSH director can be set up using bosh-deployment, as is officially documented here: https://bosh.io/docs/init.html.
There are some additions:
Please add these Options to your create-env call:
The first ops file will enable you to ssh to the BOSH director. While this is already possible on IaaS providers like AWS, you would not be able to become root on the VM without it. The second ops file enables local-dns, which improves the behaviour of BOSH links in dynamic networks.
Adding a Cloud Config
The Cloud config is relatively straightforward. If there is already a cloud config with the same IaaS underneath, you can base your cloud-config on this cloud config. If you write a new one, please make sure the following resources are defined:
public(not neccessary when only deploying Service framework)
elastic(not neccessary when only deploying Service framework)
static(network for staticly assigned IPs)
dynamic(network for dynamically allocated IPs)
Hint: You do not need to make completely separated networks. If the network
dynamic is from the type
dynamic can have the same netmask with non-overlapping IP ranges.