描述
基于华为云CLI,以shell脚本模板形式集成CLI调用命令,对弹性负载均衡ELB进行管理和配置。
关于华为云CLI更多使用帮助请参考用户指南。
场景介绍
本示例以以创建并配置弹性负载均衡ELB为主,同时以注释的形式提供了弹性负载均衡ELB相关操作的其他命令,具体如下:
弹性负载均衡ELB相关:创建、查询、更新、删除负载均衡器,以及查询负载均衡状态树;
后端云服务器组相关:创建、查询、更新、删除后端云服务器组;
后端云服务器相关:创建、查询、更新、删除后端云服务器;
健康检查相关:创建、查询、更新、删除健康检查;
监听器相关:创建、查询、更新、删除监听器;
转发策略相关:创建、查询、更新、删除转发策略;
转发规则相关:创建、查询、更新、删除转发规则。
前提条件
下载安装HCloud CLI
HCloud CLI的下载安装请参考安装指南。
获取认证相关的信息
1.AK/SK 访问密钥
请在华为云控制台“我的凭证-访问密钥”页面上创建和查看您的AK/SK。更多信息请查看访问密钥。
2.region 当前可调用的区域
华为云各服务应用区域和各服务的终端节点请查看地区和终端节点。
3.project-id 云服务所在项目ID
根据需要操作的项目所属区域选择对应的项目ID 。
配置(删除配置)HCloud CLI
hcloud configure set --profile=cliProfile --project-id={project_id} --region={region} --mode=AKSK --access-key={AK} --secret-key={SK} --read-timeout=60 --connect-timeout=30
hcloud configure delete --profile=cliProfile
获取负载均衡器相关的参数
vip_subnet_id:负载均衡器所在的子网ID
可通过执行hcloud VPC ListSubnets/v2 --vpc_id={vpc_id}
命令获取。
开发说明
本模板以创建并配置弹性负载均衡ELB为主线,过程中如遇异常将逆向释放相关云资源。同时,以注释的形式提供了弹性负载均衡ELB相关操作的其他命令。使用时请根据实际需要略过相关过程、或修改部分参数内容。执行完模板后,建议您检查帐户中的资源,以确保资源已经全部释放。
示例代码
使用如下代码管理弹性负载均衡ELB,调用前请根据实际情况修改或替换部分参数内容。
Copied!
# Creating a load balancer
hcloud ELB CreateLoadbalancer/v2 --loadbalancer.name="loadbalancer20210819" --loadbalancer.description="simple of balancer" --loadbalancer.vip_subnet_id={subnet_id}
# Querying Load Balancers
hcloud ELB ListLoadbalancers/v2
# Querying Details of a Load Balancer
hcloud ELB ShowLoadbalancer/v2 --loadbalancer_id=$loadbalancer_id
# Querying the Status Tree of a Load Balancer
hcloud ELB ShowLoadbalancersStatus/v2 --loadbalancer_id={loadbalancer_id}
# Updating a Load Balancer
hcloud ELB UpdateLoadbalancer/v2 --loadbalancer_id={loadbalancer_id} --loadbalancer.name={loadbalancer_name} --loadbalancer.description={loadbalancer_description}
# Deleting a Load Balancer
hcloud ELB DeleteLoadbalancer/v2 --loadbalancer_id={loadbalancer_id}
使用如下代码管理后端云服务器组,调用前请根据实际情况修改部分参数内容。
Copied!
# Creating a Backend Server Group
hcloud ELB CreatePool/v2 --pool.protocol="HTTP" --pool.session_persistence.type="SOURCE_IP" --pool.loadbalancer_id={loadbalancer_id} --pool.name="server-group-in-cn-north-4" --pool.lb_algorithm="ROUND_ROBIN" --pool.description="simple of server group"
# Querying Backend Server Groups
hcloud ELB ListPools/v2 --name={pool_name}
# Querying Details of a Backend Server Group
hcloud ELB ShowPool/v2 --pool_id={pool_id}
# Updating a Backend Server Group
hcloud ELB UpdatePool/v2 --pool_id={pool_id} --pool.name={pool_name} --pool.session_persistence.persistence_timeout=30 --pool.session_persistence.type="HTTP_COOKIE" --pool.session_persistence.cookie_name={cookie_name} --pool.lb_algorithm="LEAST_CONNECTIONS" --pool.description={pool_description}
# Deleting a Backend Server Group
hcloud ELB DeletePool/v2 --pool_id={pool_id}
使用如下代码管理后端云服务器,调用前请根据实际情况修改或替换部分参数内容。
Copied!
# Adding a Backend Server
hcloud ELB CreateMember/v2 --pool_id={pool_id} --member.address={member_address} --member.protocol_port=80 --member.name={member_name} --member.subnet_id={subnet_id} --member.weight=1
# Querying Backend Servers
hcloud ELB ListMembers/v2 --pool_id={pool_id}
# Querying Details of a Backend Server
hcloud ELB ShowMember/v2 --member_id={member_id} --pool_id={pool_id}
# Updating a Backend Server
hcloud ELB UpdateMember/v2 --member_id={member_id} --pool_id={pool_id} --member.name={member_name} --member.weight=2
# Removing a Backend Server
hcloud ELB DeleteMember/v2 --member_id={member_id} --pool_id={pool_id}
使用如下代码管理健康检查,调用前请根据实际情况修改部分参数内容。
Copied!
# Creating a Health Check
hcloud ELB CreateHealthmonitor/v2 --healthmonitor.delay=10 --healthmonitor.max_retries=5 --healthmonitor.name="heath-monitor-in-cn-north-4" --healthmonitor.type="HTTP" --healthmonitor.pool_id={pool_id} --healthmonitor.timeout=8 --json-filter=healthmonitor.id
# Querying Health Checks
hcloud ELB ListHealthmonitors/v2 --name={healthmonitor_name}
# Querying Details of a Health Check
hcloud ELB ShowHealthmonitors/v2 --healthmonitor_id={healthmonitor_id}
# Updating a Health Check
hcloud ELB UpdateHealthmonitor/v2 --healthmonitor_id={healthmonitor_id} --healthmonitor.name={healthmonitor_name} --healthmonitor.domain_name={domain_name} --healthmonitor.delay=8 --healthmonitor.max_retries=5 --healthmonitor.monitor_port=10 --healthmonitor.type="HTTP" --healthmonitor.timeout=20 --healthmonitor.expected_codes="200-204"
# Deleting a Health Check
hcloud ELB DeleteHealthmonitor/v2 --healthmonitor_id={healthmonitor_id}
使用如下代码管理监听器,调用前请根据实际情况修改部分参数内容。
Copied!
# Creating a Listener
hcloud ELB CreateListener/v2 --listener.protocol="HTTP" --listener.loadbalancer_id={loadbalancer_id} --listener.protocol_port=80 --listener.name={listener_name} --listener.description={listener_description}
# Querying Listeners
hcloud ELB ListListeners/v2 --name={listener_name}
# Querying Details of a Listener
hcloud ELB ShowListener/v2 --listener_id={listener_id}
# Updating Details of a Listener
hcloud ELB UpdateListener/v2 --listener_id={listener_id} --listener.name={listener_name} --listener.default_pool_id={pool_id} --listener.description={listener_description} --listener.connection_limit=10 --listener.client_ca_tls_container_ref={container_ref}
# Deleting Details of a Listener
hcloud ELB DeleteListener/v2 --listener_id={listener_id}
使用如下代码管理转发策略,调用前请根据实际情况修改部分参数内容。
Copied!
# Creating a Forwarding Policies
hcloud ELB CreateL7policy/v2 --l7policy.listener_id={listener_id} --l7policy.name={policy_name} --l7policy.action="REDIRECT_TO_POOL" --l7policy.description="sample policy" --l7policy.redirect_pool_id={policy_id} --l7policy.rules.1.compare_type="EQUAL_TO" --l7policy.rules.1.type="HOST_NAME" --l7policy.rules.1.value="/abc.com"
# Querying Forwarding Policies
hcloud ELB ListL7policies/v2 --name={policy_name}
# Querying Details of a Forwarding Policy
hcloud ELB ShowL7policy/v2 --l7policy_id={policy_id}
# Updating a Forwarding Policy
hcloud ELB UpdateL7policies/v2 --l7policy_id={policy_id} --l7policy.name={policy_name} --l7policy.description={policy_description} --l7policy.redirect_listener_id={listener_id} --l7policy.redirect_pool_id={pool_id}
# Deleting a Forwarding Policy
hcloud ELB DeleteL7policy/v2 --l7policy_id={policy_id}
使用如下代码管理转发规则,调用前请根据实际情况修改部分参数内容。
Copied!
# Creating a Forwarding Rules
hcloud ELB CreateL7rule/v2 --l7policy_id={policy_id} --rule.compare_type="REGEX" --rule.type="PATH" --rule.value="/aa/bbb.html"
# Querying Forwarding Rules
hcloud ELB ListL7rules/v2 --l7policy_id={policy_id}
# Querying Details of a Forwarding Rule
hcloud ELB ShowL7rule/v2 --l7policy_id={policy_id} --l7rule_id={rule_id}
# Updating a Forwarding Rule
hcloud ELB UpdateL7rule/v2 --l7policy_id={policy_id} --l7rule_id={rule_id} --rule.compare_type="STARTS_WITH" --rule.value="/aa"
# Deleting a Forwarding Rule
hcloud ELB DeleteL7rule/v2 --l7policy_id={policy_id} --l7rule_id={rule_id}
运行示例
运行时首先通过sudo ln -s CLI工具所在目录 /usr/local/bin/
命令配置华为云CLI工具环境变量,或将脚本模板放置在华为云CLI工具所在目录,并在hcloud开头的相关命令前加“./”。其次,根据实际情况修改部分参数内容、或注释无关的命令,最后执行sh elb-instance-related.sh
命令运行脚本。
运行结果
脚本执行成功后,控制台打印云服务器详情列表信息。
Copied!
{
"loadbalancer": {
"id": "6ed3345a-xxxx-xxxx-xxxx-xxxxx13ad051",
"tenant_id": "4ff018xxxxxxxxxxxxxx4936df31948",
"project_id": "4ff018xxxxxxxxxxxxxx4936df31948",
"name": "loadbalancer20210819",
"description": "simple of balancer",
"vip_subnet_id": "eaed5131-xxxx-xxxx-xxxx-xxxxxf97f9cd",
"vip_port_id": "e608d222-xxxx-xxxx-xxxx-xxxxx2a7487c",
"provider": "vlb",
"vip_address": "192.168.20.164",
"listeners": [
{
"id": "09a17fd3-xxxx-xxxx-xxxx-xxxxxb30c1df"
}
],
"pools": [
{
"id": "90d1daf7-xxxx-xxxx-xxxx-xxxxx55c7d62"
}
],
"provisioning_status": "ACTIVE",
"operating_status": "ONLINE",
"admin_state_up": true,
"tags": [],
"created_at": "2021-08-20T02:04:53",
"updated_at": "2021-08-20T02:04:54",
"enterprise_project_id": "0"
}
}
参考
关于华为云CLI的更多信息请参考:https://support.huaweicloud.com/productdesc-hcli/hcli_01.html
修订记录
发布日期 |
文档版本 |
修订说明 |
2021-08-23 |
1.0 |
文档首次发布 |
描述
基于华为云CLI,以shell脚本模板形式集成CLI调用命令,对弹性负载均衡ELB进行管理和配置。
关于华为云CLI更多使用帮助请参考用户指南。
场景介绍
本示例以以创建并配置弹性负载均衡ELB为主,同时以注释的形式提供了弹性负载均衡ELB相关操作的其他命令,具体如下:
弹性负载均衡ELB相关:创建、查询、更新、删除负载均衡器,以及查询负载均衡状态树;
后端云服务器组相关:创建、查询、更新、删除后端云服务器组;
后端云服务器相关:创建、查询、更新、删除后端云服务器;
健康检查相关:创建、查询、更新、删除健康检查;
监听器相关:创建、查询、更新、删除监听器;
转发策略相关:创建、查询、更新、删除转发策略;
转发规则相关:创建、查询、更新、删除转发规则。
前提条件
下载安装HCloud CLI
HCloud CLI的下载安装请参考安装指南。
获取认证相关的信息
1.AK/SK 访问密钥
请在华为云控制台“我的凭证-访问密钥”页面上创建和查看您的AK/SK。更多信息请查看访问密钥。
2.region 当前可调用的区域
华为云各服务应用区域和各服务的终端节点请查看地区和终端节点。
3.project-id 云服务所在项目ID
根据需要操作的项目所属区域选择对应的项目ID 。
配置(删除配置)HCloud CLI
hcloud configure set --profile=cliProfile --project-id={project_id} --region={region} --mode=AKSK --access-key={AK} --secret-key={SK} --read-timeout=60 --connect-timeout=30
hcloud configure delete --profile=cliProfile
获取负载均衡器相关的参数
vip_subnet_id:负载均衡器所在的子网ID
可通过执行
hcloud VPC ListSubnets/v2 --vpc_id={vpc_id}
命令获取。开发说明
本模板以创建并配置弹性负载均衡ELB为主线,过程中如遇异常将逆向释放相关云资源。同时,以注释的形式提供了弹性负载均衡ELB相关操作的其他命令。使用时请根据实际需要略过相关过程、或修改部分参数内容。执行完模板后,建议您检查帐户中的资源,以确保资源已经全部释放。
示例代码
使用如下代码管理弹性负载均衡ELB,调用前请根据实际情况修改或替换部分参数内容。
使用如下代码管理后端云服务器组,调用前请根据实际情况修改部分参数内容。
使用如下代码管理后端云服务器,调用前请根据实际情况修改或替换部分参数内容。
使用如下代码管理健康检查,调用前请根据实际情况修改部分参数内容。
使用如下代码管理监听器,调用前请根据实际情况修改部分参数内容。
使用如下代码管理转发策略,调用前请根据实际情况修改部分参数内容。
使用如下代码管理转发规则,调用前请根据实际情况修改部分参数内容。
运行示例
运行时首先通过
sudo ln -s CLI工具所在目录 /usr/local/bin/
命令配置华为云CLI工具环境变量,或将脚本模板放置在华为云CLI工具所在目录,并在hcloud开头的相关命令前加“./”。其次,根据实际情况修改部分参数内容、或注释无关的命令,最后执行sh elb-instance-related.sh
命令运行脚本。运行结果
脚本执行成功后,控制台打印云服务器详情列表信息。
{ "loadbalancer": { "id": "6ed3345a-xxxx-xxxx-xxxx-xxxxx13ad051", "tenant_id": "4ff018xxxxxxxxxxxxxx4936df31948", "project_id": "4ff018xxxxxxxxxxxxxx4936df31948", "name": "loadbalancer20210819", "description": "simple of balancer", "vip_subnet_id": "eaed5131-xxxx-xxxx-xxxx-xxxxxf97f9cd", "vip_port_id": "e608d222-xxxx-xxxx-xxxx-xxxxx2a7487c", "provider": "vlb", "vip_address": "192.168.20.164", "listeners": [ { "id": "09a17fd3-xxxx-xxxx-xxxx-xxxxxb30c1df" } ], "pools": [ { "id": "90d1daf7-xxxx-xxxx-xxxx-xxxxx55c7d62" } ], "provisioning_status": "ACTIVE", "operating_status": "ONLINE", "admin_state_up": true, "tags": [], "created_at": "2021-08-20T02:04:53", "updated_at": "2021-08-20T02:04:54", "enterprise_project_id": "0" } }
参考
关于华为云CLI的更多信息请参考:https://support.huaweicloud.com/productdesc-hcli/hcli_01.html
修订记录