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 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.