2012-06-24 03:31:37 +00:00
|
|
|
==============================
|
|
|
|
Writing Cloud Provider Modules
|
|
|
|
==============================
|
|
|
|
|
|
|
|
Salt cloud runs on a module system similar to the main Salt project. The
|
|
|
|
modules inside saltcloud exist in the ``saltcloud/clouds`` directory of
|
|
|
|
the salt-cloud source.
|
|
|
|
|
|
|
|
Adding a provider requires that a cloud module is created. The cloud module
|
|
|
|
needs to only impliment a single function ``create``, which will accept a
|
|
|
|
single virtual machine data structure. Whatever functions need to be called
|
|
|
|
to execute the create function can and should be included in the provider
|
|
|
|
module.
|
|
|
|
|
|
|
|
A good example to follow for writing a cloud provider module is the module
|
2012-11-16 21:50:51 +00:00
|
|
|
provided for Linode:
|
2012-06-24 03:31:37 +00:00
|
|
|
|
2012-11-16 21:50:51 +00:00
|
|
|
https://github.com/saltstack/salt-cloud/blob/master/saltcloud/clouds/linode.py
|
2012-06-24 03:31:37 +00:00
|
|
|
|
|
|
|
If possible it is prefered that libcloud is used to connect to public cloud
|
|
|
|
systems, but if libcloud support is not available or another system makes more
|
|
|
|
sense then by all means, use the other system to connect to the cloud provider.
|