阿里云可以通过API自动化管理ECS实例,包括创建、启动、停止、释放、分配IP等操作,对于自动化的运维来说非常方便。
官方文档中给出了通过Python SDK创建和批量创建ECS的示例代码,虽有点小问题,但基本上可以用。
首先是硬盘类型的选择,cloud_ssd
基本不可用了,会报错,改为企业级固态,即cloud_essd
,代码如下
request.set_SystemDiskCategory('cloud_essd')
虚拟交换机也可不指定,随机分配即可,即注释掉这一行
request.set_VSwitchId(vsw_vswitch_id)
好了问题来了,创建好的ECS只有内网IP,没有公网的,所以还要给它分配公网IP。
首先在创建ECS时加一行代码,设置最大带宽,这里设置为5M:
request.set_InternetMaxBandwidthOut(5)
ECS创建好检查状态为可用后,再通过AllocatePublicIpAddress
传instance_id
来分配公网IP,代码如下
from aliyunsdkecs.request.v20140526.AllocatePublicIpAddressRequest import AllocatePublicIpAddressRequest
# 分配公网IP
def allocate_public_ip(instance_id):
request = AllocatePublicIpAddressRequest()
request.set_InstanceId(instance_id)
response = _send_request(request)
ip_address = response.get('IpAddress')
logging.info("instance %s ip address allocated successfully ", ip_address)
return ip_address
# 调用
ip = allocate_public_ip(instance_id)
print(ip)
只有分配好了公网IP,ECS才算真的可用了。