2ee34891ff
Batch update of minor fixes, updates, grammar corrections, and formatting improvements for all devref documents. Change-Id: Ifb73bccf9788c11b60473891170b8cf55a0a5fb6
24 lines
1.2 KiB
ReStructuredText
24 lines
1.2 KiB
ReStructuredText
Pluggable Provisioning Mechanism
|
|
================================
|
|
|
|
Sahara can be integrated with 3rd party management tools like Apache Ambari
|
|
and Cloudera Management Console. The integration is achieved using the plugin
|
|
mechanism.
|
|
|
|
In short, responsibilities are divided between the Sahara core and a plugin as
|
|
follows. Sahara interacts with the user and uses Heat to provision OpenStack
|
|
resources (VMs, baremetal servers, security groups, etc.) The plugin installs
|
|
and configures a Hadoop cluster on the provisioned instances. Optionally,
|
|
a plugin can deploy management and monitoring tools for the cluster. Sahara
|
|
provides plugins with utility methods to work with provisioned instances.
|
|
|
|
A plugin must extend the `sahara.plugins.provisioning:ProvisioningPluginBase`
|
|
class and implement all the required methods. Read :doc:`plugin.spi` for
|
|
details.
|
|
|
|
The `instance` objects provided by Sahara have a `remote` property which
|
|
can be used to interact with instances. The `remote` is a context manager so
|
|
you can use it in `with instance.remote:` statements. The list of available
|
|
commands can be found in `sahara.utils.remote.InstanceInteropHelper`.
|
|
See the source code of the Vanilla plugin for usage examples.
|