Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 14 Next »

The platform populates the billing dashboard widgets using scripts that obtain the billing information from the cloud providers. So first you will need to configure programmatic access to billing in the cloud providers. Then you will need to install the billing packages and configure and the scripts so they can obtain the billing data and add it to Abiquo. 

Configure programmatic billing in cloud providers

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/

  1. Create an S3 bucket and note down the name, for example, "programmaticbilling". Next we will configure AWS to write the programmatic billing data to this bucket. 
  2. 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/*"
        }
      ]
    }
  3. Open Billing preferences and select the option to "Receive billing reports". Enter the name of your bucket
  4. Create a new user for programmatic billing (you can give it any name - we used "programmaticbilling" again!). Assign the AmazonS3ReadOnlyAccess policy to your user

Azure

  1. Grant access to billing records to the app role created in Azure
  2. Obtain the OfferDurableID from the offer agreement for your enterprise by going to your subscription → Administer. 
  3. Also, obtain the Currency, Locale and RegionInfo.

Reference for Azure billing: https://docs.microsoft.com/es-es/azure/billing/billing-usage-rate-card-partner-solution-cloudyn 

Install and configure billing packages

You will need a server with MariaDB running with access to the Abiquo API, Abiquo database, and public cloud providers. 

  1. Install the billing packages. The package name for Azure is "abiquo-billing-arm" and the package name for Amazon is "abiquo-billing-ec2".
  2. 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
  3. Grant privileges to a user for the local billing databases

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

    1. The billing database is the one you created in the above steps, so it can be hosted on localhost

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

  5. On the Abiquo database, grant select privileges from this host to the abiquo_database user that will run the bililng scripts 
  6. In Abiquo, check that the Abiquo API user has the Manage bills privilege
  7. In Abiquo, configure Enterprise properties with the name of billing properties 
    AWS
    • Configure the "billing_bucket" property, with a value of the name of the billing bucket you created
    Azure 
    • OfferDurableID
    • Currency, the default is "USD"
    • Locale, the default is "en-US"
    • RegionInfo, the default is "US"
  8. Assign Abiquo users the privileges to Display hybrid dashboard tab, View bills, and optionally to Display VM cost view widget (hybrid tab)

  • No labels