aws
来源:互联网 发布:淘宝异地登录有提示吗 编辑:程序博客网 时间:2024/06/08 15:44
如果在aws的某一个zone里面,删掉默认的vpc,然后自己新建,那么当使用脚本去,例如boto,创建instance以及security groups的时候,会遇到:
The parameter groupName cannot be used with the parameter subnet
都是由于没有默认vpc惹的祸,网上有人说可以找AWS帮忙恢复默认的vpc,不过这样慢了一些,既然没有了默认vpc,但是我们有自己建立的vpc呀,难道就不能用boto生成security groups和 instances了么?
#!/usr/bin/env python#coding:utf-8import boto.ec2import reimport jsonimport time# 读取变量## boto2conn = boto.ec2.connect_to_region("us-west-2",aws_access_key_id='123',aws_secret_access_key='123/1sXcGipZXMo1GGGDY',debug=2)def create_instance(info=[]): # 创建seuciryt instance_vpcid = "vpc-1e733579" security_name = "security-%s"%info[0] security_ports = info[7].split("__") # 下面新加了vpc_id这个变量。 !!!!!!!!!!!!!!!!!!!!!! web = conn.create_security_group(security_name, security_name, vpc_id = instance_vpcid) for security_port in security_ports: web.authorize('tcp', security_port, security_port, '0.0.0.0/0') web.authorize('-1',-1,-1,'10.0.0.0/8') # 创建instance instance_name = info[0] instance_type = info[1] instance_disksize = info[2] instance_imageid = info[4] #instance_keyname = info[5] instance_keyname = "zzlyzq" instance_count = int(info[6]) instance_placements = [ info[3]+'b',info[3]+'c', info[3] + 'a'] #instance_placements = [ 'subnet-c2a33ea7', 'subnet-d242948b'] if info[8] == "public": # 公有子网,每个可用区一个 instance_subnetids = [ 'subnet-e0d54a87', 'subnet-89ece6d1', 'subnet-a0f647e9' ] elif info[8] == "private": # 私有子网,每个可用区一个 instance_subnetids = [ 'subnet-d7d54ab0', 'subnet-a1ece6f9', 'subnet-56f9481f'] ## 准备磁盘 dev_sda1 = boto.ec2.blockdevicemapping.EBSBlockDeviceType() dev_sda1.size = instance_disksize # size in Gigabytes dev_sda1.volume_type = "gp2" bdm = boto.ec2.blockdevicemapping.BlockDeviceMapping() bdm['/dev/sda1'] = dev_sda1 # 绑定security到instance for count in range(instance_count): instance_placement = instance_placements[count%3] instance_subnetid = instance_subnetids[count%3] print "instance subnetid: %s"%instance_subnetid print "security Name : %s"%security_name #reservation = conn.run_instances(image_id=instance_imageid, key_name=instance_keyname,instance_type=instance_type, placement = instance_placement, subnet_id = instance_subnetid, security_groups = [security_name], block_device_map = bdm ) # 下面和上面的写法主要是 sec group 是name还是id, 如果我们没有默认vpc,最后下面使用 security_group_ids reservation = conn.run_instances(image_id=instance_imageid, key_name=instance_keyname,instance_type=instance_type, placement = instance_placement, subnet_id = instance_subnetid, security_group_ids = [web.id], block_device_map = bdm ) # 添加tag为主机名 instance = reservation.instances[0] status = instance.update() while status == 'pending': time.sleep(10) status = instance.update() if status == 'running': instance.add_tag("Name", instance_name) else: print('Instance status: ' + status) return Nonedef main(): with open("./instances.csv") as f: for line in f: #print line info = [] info = line.replace("\r","").replace("\n","").split(",") print info if len(info) == 9: create_instance(info) else: print "该行不满足执行条件!" continuemain()#create_security()
0 0
- aws
- AWS
- AWS
- aws
- AWS
- aws
- aws
- aws
- AWS
- AWS
- Amazon AWS
- AWS扫盲
- aws 价格
- AWS ***************NAT
- "分享:AWS
- aws试用
- Amazon AWS
- AWS EC2
- socket 网络编程
- aws
- java编程思想 -- 接口
- python常用类库系列---cPickle模块
- Team 更新或提交失败3
- aws
- Intellij IDEA 2017 debug断点调试技巧与总结详解篇
- POJ 1035 Spell checker (字符串)
- cmake设置mfc编译项目
- 选择排序、插入排序、希尔排序和冒泡排序-Java实现
- Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'inform
- Java多线程系列--“基础篇”06之 线程让步
- 程序包解析错误解决办法
- Windwos下MySQL压缩包的安装方法