Connecting Atomia to OpenStack
Atomia by default offers connectivity to any flavor of the OpenStack installation. This enables Atomia to automatically provision and execute billing tasks upon the actions from your end customers.
For Atomia to be able to perform these actions, Atomia connects to different end points (API) of your OpenStack installation. Atomia utilizes following OpenStack modules / API:
Module | Description | API End Point |
keystone | Used by Atomia to manage identity of your end users in your OpenStack installation | http://hostname-of-keystone:35357 |
nova | Used to handle all compute node related information regarding your end users running virtual machines | http://hostname-of-nova:8774 |
neutron | Handling networking parts of virtual machines of your end customers | http://hostname-of-neutron:9696 |
ceilometer | Collecting all metered values as you have defined them, which are then being automatically billed by Atomia to your end customer |
http://hostname-of-ceilometer:8777 |
cinder | For management of storage for your end customers (snapshots, volumes and so on) |
http://hostname-of-cinder:8776 |
To connect Atomia to your existing OpenStack environment - just one XML file needs to be edited, which looks like this:
<?xml version="1.0" encoding="utf-8"?> <resourceDescription xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> <bindings xdt:Locator="XPath(//bindings[moduleList/module/@name='Atomia.Provisioning.Modules.OpenStack.OpenStack'])"> <moduleList> <module name="Atomia.Provisioning.Modules.OpenStack.OpenStack" resourceAsignmentPolicy="RoundRobin" /> </moduleList> <resourceList> <resource name="OpenStack1" xdt:Transform="Insert"> <property name="AdminUser">admin</property> <property name="AdminPassword">admin</property> <property name="OSDomain">Default</property> <property name="IdentityUri">http://hostname-of-keystone:35357</property> <property name="ComputeUri">http://hostname-of-nova:8774</property> <property name="NetworkUri">http://hostname-of-neutron:9696</property> <property name="CeilometerUri">http://hostname-of-ceilometer:8777</property> <property name="CinderUri">http://hostname-of-cinder:8776</property> <property name="Hypervisor">kvm</property> <property name="ExternalGatewayId">2185b388-f4ad-4925-a1a0-155ea17aac66</property> </resource> </resourceList> </bindings> </resourceDescription>
Once this is done - you can start defining products in Atomia which your end customer can than purchase.
More information on OpenStack configuration can be found here.