Skip to main content

Rackspace Auto Scale made easy

Project description

RAX-AUTOSCALER


Uses the rackspace APIs to allow for scaling based on aggregate metrics
across a cluster.
Can be used and installed on the auto-scale group members or on a
dedicated management instance.

- GitHub repository
- PyPI package

[Stories in Ready]

ATTENTION! _rax-autoscaler_ is in a very early development stage.


Installation

pip install RAX-AutoScaler

Configuration

Edit config.json adding the following:

- API username
- API key
- Region name
- Autoscaling group section should contain:
- AutoScale Group UUID
- Scale Up Policy UUID
- Scale Down Policy UUID
- Check Type (agent.cpu, agent.load_average...)
- Metric Name (depends on the check type)
- Scale Up Threshold
- Scale Down Threshold
- Webhooks Url (Pre & Post commit url(s) for scale up/down)


Usage

Once configured you can invoke the autoscaler.py script with the
following required argument --as-group:

- --as-group must refer to a section in the config.json file

You can also invoke the script with the --cluster option this should be
used when this script actually runs on auto-scale group members.
Otherwise if it is running on a dedicated management instance you do not
require this option.

Once tested you should configure this script to run as a cron job either
on a management instance or on all cluster members


Cloud Init

You can use the cloud-config file to auto-install RAX-Autoscaler on new
servers. For example to do so on Rackspace cloud using supernova

supernova <region> boot --user-data ./cloud-config --image <image id/name> --flavor <flavor id/name> --config-drive=true <server name>

To use this with autoscale you would want to set the userdata of your
launch configuration to the base64 encoded string of the file:

"launchConfiguration": {
"args": {
"server": {
"config_drive" : true,
"flavorRef": "general1-1",
"imageRef": "CentOS 6.5 (PVHVM)",
"key_name" : "MY_SSH_KEY",
"user_data" : "I2Nsb3VkLWNvbmZpZwoKcGFja2FnZXM6CiAgLSBweXRob24tcGlwCgpydW5jbWQ6CiAgLSBbIHBpcCwgaW5zdGFsbCwgUkFYLUF1dG9TY2FsZXIgXQo=",
"name": "test-autoscale"
}
},
"type": "launch_server"
}

This has been tested on these images:

- Ubuntu 14.04 LTS (PVHVM)
- CentOS 6.5 (PVHVM)

Note

RAX-AutoScaler depends on Rackspace Monitoring Agent to get the data
from nodes in scaling group.
If the agent is not installed please read: Install the Cloud Monitoring
Agent


Contributing

- Fork it
- Create your feature branch (git checkout -b my-new-feature)
- Commit your changes (git commit -am 'Add some feature')
- Push to the branch (git push origin my-new-feature)
- Create new Pull Request


License

Copyright 2014 Rackspace US, Inc.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rax-autoscaler-0.2.14.tar.gz (12.9 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page