| from libcloud.loadbalancer.base import Member, Algorithm |
| from libcloud.loadbalancer.types import Provider |
| from libcloud.loadbalancer.providers import get_driver |
| |
| |
| ACCESS_ID = 'your access id' |
| SECRET_KEY = 'your secret key' |
| |
| |
| def main(): |
| cls = get_driver(Provider.ELB) |
| driver = cls(key=ACCESS_ID, secret=SECRET_KEY) |
| |
| print(driver.list_balancers()) |
| |
| # members associated with the load balancer |
| members = (Member(None, '192.168.88.1', 8000), |
| Member(None, '192.168.88.2', 8080)) |
| # creates a new balancer named 'MyLB' |
| new_balancer = driver.create_balancer( |
| name='MyLB', |
| algorithm=Algorithm.ROUND_ROBIN, |
| port=80, |
| protocol='http', |
| members=members) |
| print(new_balancer) |
| |
| # create load balancer policy |
| print driver.ex_create_balancer_policy( |
| name='MyLB', |
| policy_name='EnableProxyProtocol', |
| policy_type='ProxyProtocolPolicyType', |
| policy_attributes={'ProxyProtocol': 'true'}) |
| |
| # delete load balancer policy |
| print driver.ex_delete_balancer_policy( |
| name='MyLB', |
| policy_name='EnableProxyProtocol') |
| |
| # set load balancer policies for backend server |
| print driver.ex_set_balancer_policies_backend_server( |
| name='MyLB', |
| port=80, |
| policies=['MyDurationStickyPolicy']) |
| |
| # create the listeners for the balancers |
| print driver.ex_create_balancer_listeners( |
| name='MyLB', |
| listeners=[[1024, 65533, 'HTTPS', |
| 'arn:aws:iam::123456789012:server-certificate/servercert']]) |
| |
| # set the listeners policies for the balancers |
| print driver.ex_set_balancer_policies_listener( |
| name='MyLB', |
| port=80, |
| policies=['MyDurationStickyPolicy']) |
| |
| |
| if __name__ == '__main__': |
| main() |