Amazon
See the AWS documentation about how to configure programmatic billing for AWS EC2 - https://aws.amazon.com/blogs/aws/new-programmatic-access-to-aws-billing-data/
Assign the following policy to the S3 bucket. Replace "programmaticbilling" with the name of your bucket
{ "Version": "2008-10-17", "Id": "Policy1335892530063", "Statement": [ { "Sid": "Stmt1335892150622", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::386209384616:root" }, "Action": [ "s3:GetBucketAcl", "s3:GetBucketPolicy" ], "Resource": "arn:aws:s3:::programmaticbilling" }, { "Sid": "Stmt1335892526596", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::386209384616:root" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::programmaticbilling/*" } ] } |
Azure
Reference for Azure billing: https://docs.microsoft.com/es-es/azure/billing/billing-usage-rate-card-partner-solution-cloudyn
You will need a server with MariaDB running with access to the Abiquo API, Abiquo database, and public cloud providers.
Create the local billing databases and import schemas
AWS:
mysql -e "create database ec2_billing" mysql -h -p -u ec2_billing < /opt/abiquo-billing-ec2/lib/app/schema.sql |
Azure:
mysql -e "create database arm_billing" mysql -h -p -u arm_billing < /opt/abiquo-billing-arm/lib/app/schema.sql |
Grant privileges to a user for the local billing databases
Configure the billing packages, edit the config.yml file. By default for AWS, this is file is located at /opt/abiquo-billing-ec2/config/config.yml and the following example file shows the values that must replace.
abiquo_database: host: 10.10.10.36 user: user password: password port: 3306 billing_database: host: 10.10.10.38 user: user password: password port: 3306 abiquo: api_url: http://10.10.10.32/api user: admin password: xabiquo seed: |
Notes:
The billing database is the one you created in the above steps, so it can be hosted on localhost
"seed" is the name of a custom seed that encrypts the Abiquo database. Copy the custom seed into the same directory as the config.yml file for each provider