blob: df5b703c05e3a89c8bb8d8b0fa46004a1081bdf9 [file]
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
uid = "arn:aws:iam::123456789012:server-certificate/servercert"
print(driver.ex_create_balancer_listeners(name="MyLB", listeners=[[1024, 65533, "HTTPS", uid]]))
# set the listeners policies for the balancers
print(
driver.ex_set_balancer_policies_listener(
name="MyLB", port=80, policies=["MyDurationStickyPolicy"]
)
)
if __name__ == "__main__":
main()