Beispiel #1
0
def create_lc(commands, argv):
    "Create a new launch configuration"
    u = """%s [options] <launch configuration name> <image name>""" % (argv[1])

    parser = OptionParser(usage=u)

    all_opts = []
    opt = bootOpts("size", "s", "The allocation size", "m1.small")
    all_opts.append(opt)
    opt.add_opt(parser)
    opt = bootOpts("keyname", "k", "The name of the key to use with this launch configuration", None)
    all_opts.append(opt)
    opt.add_opt(parser)
    opt = bootOpts("securitygroup", "g", "The name of the security group to use with this launch configuration", None)
    all_opts.append(opt)
    opt.add_opt(parser)
    opt = bootOpts("userdata", "u", "The user data to associate with this launch configuration", None)
    all_opts.append(opt)
    opt.add_opt(parser)

    (options, args) = parser.parse_args(args=argv[2:])
    if len(args) < 2:
        raise Exception('You must specify a configuration name and an image name')
    lcname = args[0]
    ami = args[1]

    sg = []
    if options.securitygroup:
        sg = [options.securitygroup,]

    con = get_phantom_con()
    lc = boto.ec2.autoscale.launchconfig.LaunchConfiguration(con, name=lcname, image_id=ami, key_name=options.keyname, security_groups=sg, user_data=options.userdata, instance_type=options.size)
    con.create_launch_configuration(lc)

    print_display(options, 1, str(lc))
Beispiel #2
0
def create_asg(commands, argv):
    "Create a new autoscale group"
    u = """%s [options] <launch configuration name> <group name> <initial size>""" % (argv[1])

    parser = OptionParser(usage=u)

    all_opts = []
    opt = bootOpts("availabilityzone", "a", "The availabilty zone to use", "us-east")
    all_opts.append(opt)
    opt.add_opt(parser)

    (options, args) = parser.parse_args(args=argv[2:])
    if len(args) < 2:
        raise Exception('You must specify a launch configuration name and a group name')
    lcname = args[0]
    group_name = args[1]
    ds = int(args[2])

    con = get_phantom_con()

    lcs = con.get_all_launch_configurations(names=[lcname,])
    if not lcs and len(lcs) != 1:
        raise Exception('The launch configuration name %s is unknown' % (lcname))
    lc = lcs[0]
    asg = boto.ec2.autoscale.group.AutoScalingGroup(launch_config=lc, connection=con, group_name=group_name, availability_zones=[options.availabilityzone], min_size=0, max_size=512, desired_capacity=ds)
    con.create_auto_scaling_group(asg)