I think you are looking for Topology and Orchestration Specification for Cloud Applications (TOSCA) [1] which allows you not only to create one node but a cluster, their drives, network rules, autoscalling etc.
There is also another project which is cloud-init [2] that defines an standard way of mounting the initial data, and provision the shh keys.
Cloud Formation is aws implementation of this and is quite good. You can create define a template of how your application should be deployed and parameters for the end user like Heroku button.
You can check a good example of these technologies on the coreos landing page [4].